4.GESTIUNEA MEMORIEI PE ANDROID
Android este cel mai utilizat sistem de operare folosit pe platformele mobile, atingand un numar de 900 de milioane de utilizatori in intreaga lume.
Acesta este dezvoltat de Google pe kernelul de Linux, versiunea 2.6.
Versiuni Android
- Android beta , 5 noiembrie 2007
- Android 1.0 , 23 septembrie 2008
- Android 1.1 , 9 februarie 2009
- Android 1.5 – Cupcake, 30 aprilie 2009
- Android 1.6 – Donut , 15 septembrie 2009
- Android 2.0 /2.1 – Eclair, 26 octombrie 2009
- Android 2.2.x - Froyo, 20 mai 2010
- Android 2.3.x – Gingerbread, 6 decembrie 2010
- Android 3.x – Honeycomb, 22 februarie 2011
- Android 4.0.x – Ice Cream Sandwich , 19 octombrie 2011
- Android 4.1 – Jelly Bean, 27 iunie 2012
- Android 4.2 – Jelly Bean , 13 noiembrie 2012
-Android 4.3-Key Lime Pie 2013
Linux 2.6 implementeaza pe Android servicii legate de securitate, gestiunea memoriei, gestionarea proceselor, reţea, drivere.
Ashmem (Android shared memory driver) este componenta care permite aplicatiilor sa partajeze memoria la nivel de kernel. Aceasta suporta mai bine dispozitivele cu putina memorie, deoarece se poate debarasa de unitatile de memorie partajata in cazul in care este nevoie.
Ashmem este implementat in mm/ashmem.c. Contine doua structuri pentru a putea suporta memoria partajata.
Una dintre ele este ashmem_ area si aceasta contine o lista a memoriilor partajate cu dimensiunile lor si informatiile referitoare la mecanismele de protectie.
Cea de-a doua este denumita ashmem_ range, si contine o lista cu toate regiunile de memorie partajata care au pagini libere.
PMEM (process memory allocator)
Ashmem si Pmem sunt niste tehnici de alocare a memoriei destul de asemanatoare, ambele fiind folosite pentru a impartii memoria intre procese. Ashmem foloseste memoria virtuala in timp ce Pmem foloseste memoria fizica invecinata. O importanta diferenta intre cele doua este faptul ca Ashmem foloseste un mecanism „ref-counted object ”, ce poate fi impartit in mod intre procese. Spre exemplu daca doua procese impart acelasi buffer ashmem, referinta buffer-ului dispare in momentul in care ambele procese si au eliminat toate referintele prin inchiderea fisierelor de descriptori.
PMEM - Process memory allocator
Este implementat la: drivers/misc/pmem.c ce include fisierul: include/linux/android_pmem.h
„The pmem driver is used to manage large (1-16+MB) physically contiguous regions of memory shared between userspace and kernel drivers (dsp, gpu, etc). It was written specifically to deal with hardware limitations of the MSM7201A , but could be used for other chipsets as well. For now, you're safe to turn it off on x86.”
Brian Swetland
Android foloseste pentru gestionarea memoriei propria masina virtuala si propriul “run-time” pentru a gestiona aplicatiile de memorie. De asemenea gestioneaza si timpul de viata al proceselor. El opreste procesele care nu mai sunt necesare pentru a elibera resurse pentru aplicatiile cu prioritate mai ridicata.
Dalvik si “run-time-ul” Androidului sunt cap de lista al kernelelor Linux care folosesc hardware low-level, incluzand driver si managementul memoriei.
Bibliografie
http://en.wikipedia.org/wiki/Memory_management_(operating_systems)
lab04-slides.pdf
http://stst.elia.pub.ro/news/TEME_SOIII_2010/GEMEM/Gestiunea%20Memoriei.pdf
http://www.scribd.com/doc/21981688/27/Structura-ierarhic%C4%83-de-organizare-a-memoriei
http://en.wikipedia.org/wiki/Memory_hierarchy
http://web.info.uvt.ro/~fortis/LICENTA/SO/Lectures/SistemeOperare2009_Memorie_1.pdf
http://so-usb.blogspot.ro/p/gestiunea-memoriei.html
http://webhost.uoradea.ro/cpopescu/so/Cursul8.pdf
http://documentatieandroid.ro/
https://docs.google.com/presentation/d/1WafUlAVLuGOqmBeulOEE3XKeURHYqip_PHCZWZWQaGA/present#slide=id.i49
http://www.it.iitb.ac.in/frg/wiki/images/f/f4/113050076_Rajesh_Prodduturi_Stage-01_report_8_113050076_stage01.pdf
http://etc.unitbv.ro/~csaba.kertesz/so/curs/SO-curs08.pdf
MODERN OPERATING SYSTEMS THIRD EDITION Andrew S. Tanenbaum
https://cs.curs.pub.ro/wiki/si/lab/2013/android
http://developer.android.com/training/displaying-bitmaps/manage-memory.html
http://cs736-android.pbworks.com/w/page/5834465/ASHMEM
http://helios.utcluj.ro/mobile/cursuri_datm/Curs_4_DATM.pdf
II. Apeluri de sistem - Comparatie Linux si Windows (Banica Ioana-Alina 431A) 1.Introducere
Un sistem de operare trebuie sa realizeze urmatoarele servicii fundamentale: gestiunea timpului procesorului, gestiunea spatiului de memorie si managementul operatiilor de intrare/iesire.
Gestiunea spatiului de memorie trebuie realizata foarte atent pentru ca sistemul de calcul sa functioneze conform cerintelor. Memoria are un rol foarte important, fiind cea mai importanta resursa a unui sistem de calcul.
O simpla arhitectura a sistemului de operare ar fi urmatoarea:
Sursa: http://www.sal.ksu.edu/faculty/tim/ossg/Introduction/struct.html
In arhitectura unui sistem de calcul intalnim urmatoarele tipuri de memorie:
-memorie cache, aflata in apropierea CPU-ului pentru a creste performantele sisitemului de calcul;
- memorie RAM, ce reprezinata memoria principala a sistemului de calcul;
- memorie ROM, o memorie non-volatila ce permite pastrarea informatiillor pe termen lung;
Sistemul de operare controleaza si coordoneaza utilizarea hardware-ului intre diferite programe de aplicatii ale utilizatorului. Gestionarea memoriei de catre sistemul de operare se realizeaza cu ajutorul a mai multi algoritmi.
Pentru ca un proces sa fie sa fie lansat in executie trebuie ca intregul sau spatiu de adresare logica sa fie incarcat in memorie, de aceea dimensiunea unui program nu trebuie sa depaseasca dimensiunea memoriei fizice, tindandu-se astfel seama de arhitectura hardware a sisitemului de calcul.
Dostları ilə paylaş: |