Universitatea Politehnica Bucuresti, Facultatea de Electronica

Download Report

Transcript Universitatea Politehnica Bucuresti, Facultatea de Electronica

Universitatea Politehnica Bucuresti,
Facultatea de Electronica,
Telecomunicatii si Tehnologia Informatiei
Sisteme de operare avansate
Tema curs: Sistemul de operare mobil
Android
Coordonator:
Prof. Dr. Ing. Stefan Stancescu
Masterand:
Alexandru Ionita
Arhitectura sistemului:
2
Caracteristici :
1) Cadru de aplicatii care să permită reutilizarea şi înlocuirea componentelor
2) Maşina virtuală folosita este Dalvik optimizata pentru dispozitive mobile
3) Browser-ul integrat bazat pe open-source WebKit motor
4) Grafica optimizata bazata pe o bibliotecă grafica 2D personalizată; grafica
3D este bazată pe OpenGL ES 1.0
5) SQLite pentru stocarea datelor structurale
6) Suport media pentru fisierele audio, video, şi imagini (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
7) Telefonie GSM
8) Bluetooth, EDGE, 3G si WiFi
9) Suport pentru aparat de fotografiat, GPS, busola, şi accelerometru
Mediu bogat de dezvoltare, inclusiv un emulator de dispozitiv, instrumente
pentru depanare, profilare de memorie şi de performanţă, precum şi un plugin pentru Eclipse IDE
3
Managementul fisierelor :
In functie de versiunea sistemului de operare, Android-ul foloseste unul din
urmatoarele sisteme de fisiere:
- YAFFS (pana la versiunea 2.2 inclusiv)
- EXT4 (de la versiunea 2.3 inclusiv)
4
Ext4
Structura:
-Continutul directoarelor : Linked list, hashed B-tree
Limite:
-Dimensiunea maxima a fisierului: 16 TiB
-Dimensiunea maxima a volumului: 1 EiB
-Caracterele permise in numele fisierelor :Toate cu esceptia a NULL
('\0') si '/‘
-Numarul maxim de fisiere: 4 billion
Caracteristici :
-Date inregistrate :modificare (mtime), atribute de modificare (ctime),
de acces (atime), de sters (dtime), de creare (crtime)
-Intervalul de date: 14 December 1901 - 25 April 2514
5
Ext4(2)
- Sistemul de fisiere ext4 este compatinbil cu ext2/3
-Ext4 foloseste o noua comanda fallocate(), care aloca un spatiu continuuu,
astefel imbuantateste performatele fisierelor video si a bazelor de date
- Limita numarului de subdirectoare, pentru ext4 a crescut la 64000, fata de
predecesorul lui pentru care era de 32000, iar pentru a imbunatii performantele
si dimensiunile directoarelor, acestea sunt indexate in H-tree (hashed B-tree,
versiune modificate de b-tree).
-Acesta utilizeaza o tehnica de sporire a performantei, numita alocare intarziata,
si reprezinta intarzierea alocarii spatiului pe disc pana cand datele sunt pregatite
pentru a fi scrise pe disc. Aceasta tehnica reduce fragmentarea, deoarece
deciziile de alocare a blocurilor se bazeaza pe dimensiunea reala a fisierului
6
Ext4(3)
Asa cum este ilustrat in graficul de mai jos, verificarea sistemului de fisiere pentru
ext4 este mult mai rapida decat predecesorul lui, ext3, asta datorita faptului ca
grupurile de blocuri si sectiuni nealocate din tabelul de indexare sunt marcate ca
atare, astfel functia de verificare le omite, reducand considerabil tipul de
verificare a sistemului de fisiere,
7
Managementul proceselor
Atunci când prima dintre componentele unei aplicaţii trebuie să fi rulata, Android
începe un proces de Linux pentru aceasta cu un singur fir de execuţie. În mod
implicit, toate componentele aplicaţiei ruleza în acest proces şi fir.
Procesul în cazul în care o componentă se execută este controlată de fişierul
manifest.
8
Managementul proceselor(2)
Fire de proces
Deoarece interfaţa cu utilizatorul trebuie să fie întotdeauna rapidă pentru a
răspunde la acţiunile utilizatorului, firul care găzduieşte o activitate nu ar trebui
gazduiasca, de asemenea, operaţiunile de consumatoare de timp.Orice lucru care
nu pot fi realizate rapid este atribuit unui fir diferit.
Apelul procedurilor la distanţă
Android are un mecanism uşor pentru apelurile de procedură la distanţă (RPCs) în cazul în care o metodă se declara la nivel local, dar este executată la distanţă
(într-un alt proces). Acest lucru presupune descompunerea apelul metodei şi
toate datele sale inerente la un nivel la care sistemul de operare poate înţelege.
O interfaţă RPC pot include numai metode. În mod implicit, toate metodele sunt
executate sincron, chiar dacă nu există nici o valoare de întoarcere.
9
Ciclurile de viata ale componentelor
Componentele aplicaţiei au un ciclu de viaţă - un început atunci când
Android le instanţiază să răspundă până la capăt atunci când instanţele sunt
distruse. Între, ele pot fi, uneori, active sau inactive, sau, în cazul activităţilor,
vizibile pentru utilizator sau invizibile.
O activitate are, în esenţă, trei stări:
1) activă sau executată atunci când este în prim planul ecranului (în partea de sus
a stivei de activităţi pentru sarcina curentă
2) întreruptă, dar este încă vizibila pentru utilizator. O activitate intrupta este
completa (menţine toate informaţiile de stare şi ale membrului şi rămâne ataşata
managerului de ferestre), dar pot fi ucisa de către sistem in situatii extreme de
memorie redusa.
3)oprită în cazul în care este complet acoperită de către o altă activitate. Acesta
îşi păstrează încă toate informaţiile de stare şi membru. Cu toate acestea, ea nu
mai este vizibila pentru utilizator, astfel fereastra sa este ascunsa şi va fi de multe
ori ucisa de sistem atunci când este nevoie de memorie in altă parte.
10
Ciclurile de viata ale proceselor
Sistemul Android încearcă să menţină procesul unei aplicatii pentru cat
mai mult posibil, dar în cele din urmă vechile procese trebuiesc eliminate atunci
cand memoria este scăzuta. Pentru a determina care procese trebuiesc să
păstrate şi care ucise, Androidul acorda locuri pentru fiecare proces într-o
"ierarhie de importanţă", bazata pe componentele ce funcţioneaza în ea şi starea
acestor componente. Procese cu cea mai mica importanţa sunt eliminate în
primul rând, apoi următoarele cu cel mai mica, şi aşa mai departe. Există cinci
niveluri în ierarhie. Lista de mai jos le prezintă în ordinea importanţei:
1) Un proces de prim-plan este unul care este necesar pentru ceea ce utilizatorul
face în prezent. Un proces este considerat a fi în prim-plan dacă indeplineste
oricare dintre următoarele condiţii:
-Acesta se execută o activitate cu care utilizatorul interacţionează.
-Acesta găzduieşte un serviciu care este legat de activitatea cu care
utilizatorul interacţionează.
-Detine un obiect de tip Service care executa unul dintre Callbacks-urile
ciclului său de viaţă
-Detine un obiect de tip BroadcastReceiver care executa metoda de
receptie.
11
Ciclurile de viata ale proceselor(2)
Doar câteva procese de prim-plan pot exista la un moment dat. Ele sunt ucise
numai in ultimă instanţă - în cazul în care memoria este atât de mică încât să nu
poate continua să le ruleze toate. În general, în acel moment, dispozitivul a atins
o stare de paginare a memoriei, astfel încât uciderea unor procese de prim-plan
este necesară pentru a păstra interfaţă pentru utilizator receptivă.
2) Un proces vizibil este unul care nu are toate componentele in prim-plan, dar
încă mai pot afecta ceea ce utilizatorul vede pe ecran. Un proces este considerat
a fi vizibil dacă oricare dintre următoarele condiţii sunt indeplinite:
-Acesta găzduieşte o activitate care nu se află în prim-plan, dar este încă
vizibila pentru utilizator.
-Acesta găzduieşte un serviciu de care este legat la o activitate vizibilă.
Un proces vizibil este considerat important şi nu va fi ucis excepţia cazului în care
acest lucru este necesar pentru a păstra toate procesele care rulează in primplan.
12
Ciclurile de viata ale proceselor(3)
3) Un proces de servicii este unul care execută un serviciu care nu se încadrează
în una dintre cele două categorii mai mari. Deşi procesele de servicii nu sunt
direct legate de orice interfata cu utilizatorul, ele fac, în general, lucruri de care
utilizatorului ii pasa, astfel încât sistemul le menţine, cu excepţia cazului în care
nu este de ajunsa memorie pentru a le menţine, împreună cu toate procesele de
prim-plan şi vizibile.
4) Un proces de fundal este unul care deţine o activitate care nu este în prezent
vizibila pentru utilizator. Aceste procese nu au un impact direct asupra
experienţei utilizatorului, si poate fi ucis în orice moment pentru a recupera
memorie pentru un proces de prim-plan, vizibil, sau de serviciu. De obicei, există
mai multe procese care in rulează fundal, astfel încât acestea sunt ţinute într-o
lista LRU (Least Recently Used = cel mai puţin recent folosit) pentru a se asigura
că procesul cu activitatea cea mai recent vazuta de catre utilizator este ultimul
care urmează să fie ucis.
13
Ciclurile de viata ale proceselor(4)
5) Un proces gol este unul care nu deţine componentele active ale unei
aplicaţie. Singurul motiv pentru a menţine un astfel de proces este pentru a
îmbunătăţi timpul de pornire data viitoare cand o componentă are nevoie pentru
a rula în el. Sistemul ucide adesea aceste procese, în scopul de a echilibra
resursele generale ale sistemului de cache între proces şi cache care stau la baza
kernel-ului.
14