Documente Academic
Documente Profesional
Documente Cultură
ARHITECTURA SO
Arhitectura unui sistem software, deci i a sistemului de operare, descrie
componentele sistemului software i relaiile dintre acestea.
Exist mai multe variante de structurare a sistemelor de operare, plecnd de la
sistemele de operare monolitice, nestructurate, pn la SO moderne caracterizate de
arhitecturi complexe.
proceduri servicii
proceduri utilitare
...
Interfaa nivelului k
Nivel intermediar,
cu module ale SO
Nivel k
...
Sistemul de
operare
Niv. 0 - hardware
O perspectiv mai detaliat a relaiei dintre dou nivele adiacente ilustreaz faptul c
fiecare nivel ofer n general operaii noi, realizate prin utilizarea celor ale nivelului inferior,
dar poate oferi i acces direct la operaii oferite de nivelul inferior.
operaii noi
nivel M
nivel M-1
Un alt exemplu este SO MULTICS care era organizat pe o structur inelar n care
nivelele sunt organizate ca inele concentrice. Operaiile se pot face n ambele sensuri, dar pe
fiecare sens exist anumite restricii de acces funcie de privilegiile pe care le are nivelul
respectiv. Inelul interior are privilegii maxime.
1
2
Propus de Djikstra.
overhead
Procese
API
API
procese
procese
procese
SO1
SO2
SOk
MV1
MV2
MVk
SO
Hardware
Hardware
(a)
(b)
Fig. X.x Modele de sisteme fr (a) i cu (b) implementarea conceptului de main virtual n sens IBM
Fig.x.x
Maina virtual Java
Sistem gazd
Modulul ncrctor ncarc n sistemul gazd fiierele ce conin cod Java executabil
(*.class) ale aplicaiei i ale bibliotecilor utilizate de aceasta.
Modulul de verificare este responsabil cu corectitudinea codului din fiierele ncrcate,
verificnd totodat i faptul c nu se depete capacitatea stivei.
Interpretorul este modulul care execut codul. El poate fi un modul software care
interpreteaz instruciune cu instruciune acest cod, sau poate fi un compilator JIT (just in
time) care transform codul n limbajul nativ al mainii gazd i care asigur astfel o
cretere a performanei. Cele mai performante execuii de cod Java au loc pe procesoarele
fizice care implementeaz hardware interpretorul Java.
Ansamblul acestor module realizeaz adaptarea codului executabil Java (bytecode) la
diferite sisteme gazd, asigurnd astfel independena i portabilitatea sa. Pentru aceasta
exist implementri ale JVM pentru diferite platforme hard-soft. O platform hard-soft este
caracterizat de procesor i de sistemul de operare instalat. JVM ofer programelor Java o
interfa independent de arhitectura platformei.
n concluzie, JVM ofer o main virtual pentru limbajul Java. Aceasta este un
context de execuie a programelor Java care le ofer securitate, eficien, orientare obiect,
portabilitate i independen de platform.
microKernel
spaiul nucleu
Apelul unui serviciu din spaiul utilizator de ctre un proces client se face prin
intermediul componentei microkernel, avnd la baz un mecanism pentru transfer de
mesaje.
Serviciu SO n
spaiul utilizator
Proces client
microkernel
Aplicaie POSIX
Aplicaie Win32
Server Win32
Server OS/2
Aplicaie POSIX
Server POSIX
kernel
n fig. anterioar este ilustrat arhitectura unui sistem software compus din SO
Windows, aplicaii instalate pe acesta i clieni ai acestor aplicaii. Fiecare tip de aplicaie
utilizeaz un server corespunztor tipului su, server ce se execut n spaiul utilizator i
care este accesat prin intermediarea nivelului kernel al SO.
Un alt avataj major al arhitecturilor cu microkernel este acela al extensibilitii acestora
la sistemele distribuite. n acest caz modulul microkernel include i funcia de transfer n
reea, iar mecanismul de comunicare ntre componente este acelai mecanism de transfer
de mesaje. n figura de mai jos se observ utilizarea mai multor calculatoare legate n reea
pentru a asigura funciile unui sistem distribuit. Pe fiecare main se instaleaz
componenente microkernel identice pentru a se crea un sistem unitar.
Maina 1
Maina k
Maina k+1
Maina n
Client
Server fiiere
Server procesare
Server terminal
microkernel
microkernel
microkernel
microkernel
3.6 Exemple
3.6.1 Structura unui sistem de tip UNIX
Spaiul utilizator
SHELL
Proces utilizator
Proces utilizator
Spaiul kernel
Sistemul de fieiere
Bloc memorie
intermediar
Driver-e dispozitive
Hardware
Gestiunea proceselor
IPC
Planificare
Semnale
Gestiunea memoriei
Spaiul utilizator
Subsistem POSIX
Subsistem Win32
Subsistem OS/2
Interfa sistem
Spaiul kernel
Sistemul
de
fiiere
Securitate
Procese i fire
de execuie
Memorie
virtual
Memorie cache
pentru fiiere
I/E
Executiv
Serviciile sistem
Gestiunea obiectelor
Drivere dispozitive
Microkernel
Hardware
4.3 Implementarea SO
SO sunt implementate n mod tradiional n limbaj de asamblare. SO moderne sunt
ns dezvoltate n limbaje de nivel superior, cum ar fi C i C++.
Avantajele utilizrii limbajelor de nivel superior sunt legate de uurina crescut n
programare, structurarea compact a codului, faptul c acesta este mai uor de neles i de
depanat. n plus, evoluiile tehnologice n domeniul compilatoarelor mbuntesc generarea
codului pentru ntreg sistemul de operare prin simpl recompilare. De asemena, un SO
dezvoltat ntr-un limbaj independent de procesor poate fi portat, cu adaptri minime, pe
diferite maini fizice.
Dezavantajele acestei abordri se refer la o vitez de execuie mai redus i la
cerina pentru capaciti de memorare mai mari. Aceste dezavantaje pot fi ns compensate
pe de o parte de tehnicile de optimizare a execuilor oferite de compilatoare i de procesoare
i pe de alt parte de posibilitatea de a utiliza structuri de date i algoritmi performani. n
plus, se poate msura timpul de execuie a unor secvene de cod n raport cu altele. Mai
genereal, tot prin msurtori asupra timpilor de execuie se pot determina zonele n care se
produc gtuiri ale execuiilor. S-a observat c n jur de 80% din timpul procesor se
consum pe aprox. 20% din codul programelor, deci se va aciona la acele secvene de cod
cu timpi mari de execuie i dimensiuni reduse ale codului n sensul rescrierii lor n limbaj de
asamblare.
Prin calcularea i afiarea rezultatelor msurtorilor de performan, administratorul
are la dispoziie detalii despre comportamentul diferitelor componente ale sistemului i poate
lua decizii de modificare a acestuia n timp real.