stst.elia.pub.rostst.elia.pub.ro/news/so/teme_so_2014_15/1_bonciumi... · web viewdefinitie 1 un...

16
Universitatea Polithenica Bucuresti, Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei Structura Sistemelor de Operare Studenti: Profesor Indrumator: 1

Upload: others

Post on 03-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Universitatea Polithenica Bucuresti,

Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei

Structura Sistemelor de Operare

Studenti: Profesor Indrumator:

Bonciu Mihaela Prof. Dr. Ing. Stefan Stancescu

Cristache Cristian

Duna Robert

Grupa: 431A

1

Page 2: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Cuprins

1)Nucleul (kernel)

Cristache Cristian

1.1) Sisteme monolitice

1.2) Sisteme stratificate

Duna Robert

1.3) Exokernel

1.4) Model client-server (microkernel)

Bonciu Mihaela

1.5) Kernel modular

1.6) Nanokernel

2) Bibliografie

2

Page 3: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

1) Nucleul (kernel)

Definitie 1: Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera utilizatorului posibilitatea folosirii eficiente a sistemului de calcul, concurand la dezvoltarea programelor de aplicatie.

Definitie 2: Nucleul este componenta principala celor mai multe sisteme de operare si functioneaza ca o punte intre aplicatii si procesarea efectiva a datelor la nivel hardware. Scopul principal al nucleului este de a administra resursele calculatorului si de a permite altor programe sa ruleze si sa foloseasca aceste resurse. Prin resurse intelegem:

● procesor (CPU)

Nucleul decide care dintre programele care ruleaza la un moment dat ar trebui alocata procesorului.

● memoria calculatorului

Memoria este utilizata pentru a stoca atat instructiuni de programe, cat si date. Adesea multe programe solicita mai multa memorie decat este disponibila. Nucleul trebuie sa decida ce memorie poate utiliza fiecare proces si ce este de facut atunci cand nu e suficienta memorie disponibila.

● orice dispozitiv de intrare/iesire

Nucleul aloca cererile aplicatiilor de a executa instructiuni de intrare/iesire unui dispozitiv corespunzator si furnizeaza metodele convenabile pentru utilizarea dispozitivului.

3

Page 4: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Tipurile de nuclee folosite sunt:

1.1) Sisteme monolitice

Un nucleu monolitic este o arhitectură de nucleu în care întregul nucleu se rulează în spațiul nucleului și în mod administrator. Spre deosebire de micronucleu în care sunt implementate minimul necesar de funcții pentru rularea acestuia, în nucleul monolitic toate driverele sunt compilate împreună pentru a forma un singur program. Avantajele acestuia sunt optimizarea codului realizată de către compilator. Dezavantajele sunt spațiul de memorie comun; o eroare în unul dintre drivere poate bloca întregul nucleu.

De departe cea mai intalnita forma de organizare, aceasta abordare poate fi intitulata foarte bine „Marea Harababura”. Structura este aceea ca nu exista o structura. Sistemul de operare este scris ca o colectie de proceduri, dintre care poate sa apeleze pe oricare dintre celelalte de cate ori are nevoie. Cand este folosita aceasta tehnica, fiecare procedura din sistem are o interfata bine definita din punct de vedere al parametrilor si rezultatelor si fiecare este libera sa cheme pe oricare alta, daca aceasta ofera vreun calcul util pentru prima.

Un model simplu de structurare a unui sistem monolitic

Pentru a construi programul obiect efectiv al sistemului de operare cand este folosita aceasta abordare, trebuie compilate mai intai toate procedurile individual, sau fisierele care contin procedurile si apoi reunite intr-un singur fisier obiect folosind editorul de legaturi al sistemului. Din

4

Page 5: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

perspectiva ascunderii de informatie, aceasta practic nu se face – fiecare procedura este vizibila pentru oricare alta (spre deosebire de o structura ce contine module sau pachete, in care mare parte din informatie este ascunsa in interiorul modulelor si numai punctele de intrare desemnate in mod oficial pot fi apelate din exteriorul modulului).

Chiar si in sistemele monolitice, totusi, este posibil sa avem macar putina structurare. Serviciile (apeluri de sistem) oferite de sistemul de operare sunt cerute punand parametrii intr-un loc bine definit (de exemplu pe stiva) si apoi executand o instructiune trap.

Sistem de operare bazat pe un nucleu monolitic

Aceasta instructiune face ca sistemul sa treaca din mod utilizator in mod nucleu si transfera controlul sistemului de operare. Sistemul de operare preia apoi parametrii si determina care apel de sistem trebuie executat. Dupa aceasta, cauta intr-un tabel indexat care contine la pozitia k o referinta la procedura care se ocupa de tratarea apelului de sistem k.

Aceasta organizare sugereaza o structura de baza pentru sistemul de operare:

● Un program principal care invoca procedura de serviciu ceruta.

● Un set de proceduri de servicii care se ocupa cu tratarea apelurilor sistem.

● Un set de proceduri utilitare care ajuta procedurile de servicii.

5

Page 6: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Din cauza necesitatii prelucrarii complexe a datelor, structura sistemelor de operare este din ce in ce mai complexa pentru a satisface nevoile utilizatorului final. Totusi aceasta structura este partitionata in parti mici in asa fel incat sa se mentina specializarea componentelor. Astfel fiecare componenta are o functie bine definita si o metoda specifica de rezolvare a cerintelor.

1.2) Sisteme stratificate (structurate pe nivele)

Acest sistem consta in organizarea sistemului de operare ca o ierarhie de nivele, fiecare construit deasupra celui de sub el.

Ofera o constructie mai clara si o administrare mai facila a sistemului deoperare, cu anumite neajunsuri:

● Definirea diferitelor nivele trebuie realizata cat mai clar inaintea conceperii efective a sistemului de operare.

● realizarea de apeluri sistem din nivelele superioare nevesita un overhead mare pentru a putea identifica nivelul tinta si nivelul de origine al apelului sistem.

Exemplu de sistem stratificat pentru Mac

6

Page 7: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

1.3) Exokernel

Model grafic al unui exokernel

Este un sistem care ofera fiecarui utilizator o clona a calculatorului efectiv, dar avand la dispozitie un subset de resurse. Astfel, o masina virtuala poate primi blocurile disc de la 0 la 1023, urmatoarea poate primi blocurile de la 1024 la 2047 s.a.m.d. La nivelul cel mai de jos, ruland in mod nucleu, se alfa un program numit exokernel.

Sarcina sa este de a aloca resurse pentru masinile virtuale si apoi de a verifica incercarile de utilizare a resurselor altcuiva. Fiecare masina virtuala de la nivelul utilizator poate rula propriul sau sistem de operare propriu, cu diferenta ca fiecare este obligat sa foloseasca numai resursele pe care le-a cerut si care i s-au alocat.

Avantajul modelului exokernel este acela ca face sa dispara un nivel de punere in corespondenta. In alte modele, fiecare masina virtuala crede ca are propriul disc, cu blocuri de la 0 la un maxim oarecare, deci monitorul masinilor virtuale trebuie sa intretina tabele de repunere in corespondenta a adreselor de pe disc (si a tuturor celorlalte resurse).

Avand exokernel-ul, nu este necesara aceasta repunere in corespondenta. Aceasta metoda pastreaza avantajul de a separa multiprogramarea de codul sistemului de operare utilizator, dar cu o supraincarcare mai mica, deoarece tot ce trebuie sa faca exokernel-ul este sa impiedica masinile virtuale sa se incurce reciproc.

7

Page 8: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Exokernel-ul are dimensiuni foarte mici intrucat functionalitatea sa consta numai in asigurarea protectiei si multiplexarea resurselor.

1.4) Modelul client-server (microkernel)

Sistem de operare bazat pe microkernel

In acest model tot ceea ce face nucleul este de a gestiona comunicatia intre clienti si servere. Prin divizarea sistemului de operare in mai multe parti, fiecare dintre acestea gestionand o singura fateta a sistemului, cum ar fi serviciul de fisiere, serviciul de gestiune a proceselor, serviciul care se ocupa de terminal sau serviciul de gestiune a memoriei, fiecare parte devine mica si usor de administrat. Mai mult, pentru ca toate serverele ruleaza ca procese in modul utilizator si nu in modul nucleu, ele nu au acces direct la hard.

In consecinta, daca se activeaza o eroare in serverul de fisiere, serviciul de fisiere s-ar putea sa cada, dar acest lucru nu va face sa cada de obicei intreaga masina.

8

Page 9: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Imaginea ilustrata mai sus a unui nucleu care se ocupa doar de transportul mesajelor de la clienti la servere si inapoi nu este total realista. Unele functii ale sistemului de operare sunt dificil, daca nu imposibil de realizat de catre programe aflate in spatiul utilizator.

O solutie a acestei probleme este implementarea unui minimum de mecanism in nucleu, dar de a lasa serverelor din spatiul utilizator deciziile legate de politica.

Modelul client-server intr-un sistem distribuit

Referitor la dimensiunea codului, majoritatea nucleelor tip microkernel au sub 10000 de linii de cod; mult mai putin decat sistemele monolitice. De exemplu, MINIX 3 are mai putin de 6000 de linii de cod.

1.5) Kernel modular

Un kernel modular este un tip de arhitectura al nucleului unui sistem de operare, care combina caracteristicile si avantajele microkernel-ului si al sistemului monolitic.

Sistemul este structurat pe module cu functionalitati bine precizate. Nucleul are o structura similara microkernel-ului, dar este implementat in acelasi mod ca si sistemele monolitice. Acesta executa anumite instructiuni in spatiul nucleului pentru a reduce solicitarea ampla, caracteristica microkernelului. In acelasi timp executa codul kernel ca server in spatiul utilizatorului.

9

Page 10: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Exemplu grafic al structurii unui nucleu modular

● Exemple de sisteme de operare pe baza de nucleu modular:

a)

10

Arhitectura sistemului de operare NT

Page 11: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Sistemele de operare Windows de tip NT sunt clasificate ca un macrokernel (kernel hibrid), deoarece subsistemele functioneaza in cadrul spatiului dictat de utilizator („User mode”).

b)

● Avantaje ale nucleului modular:

- capacitatea de functionare a driverelor in cadrul modulelor este mai rapida. Nu este necesara repornirea calculatorului pentru testare.

- nucleul nu trebuie recompilat pentru a adauga drivere sau subsisteme noi.

- integrarea rapida a tehnologiilor de tip „third party”.

1.6) Nanokernel

Un nanokernel este un nucleu de dimensiuni mici, care face legatura intre componentele hardware si cele software, dar fara ajutorul serviciilor de sistem. Nucleele mai mari ofera mai multe optiuni si au o capacitate de interfatare mai mare. Intrucat si nucleele tip microkernel nu au servicii de sistem, cele doua tipuri sunt adeseori folosite in acelasi context.

11

Solaris – un sistem de operare Unix modular

Page 12: stst.elia.pub.rostst.elia.pub.ro/news/SO/Teme_SO_2014_15/1_BonciuMi... · Web viewDefinitie 1 Un sistem de operare consta dintr-o colectie integrata de programe de sistem, ce ofera

Caracteristici:

- volumul de cod al nucleului este foarte mic- prezinta un nivel de virtualizare sub sistemul de operare, numit

„hypervisor”.- initial, termenul de nanokernel a fost folosit pentru a descrie un

nucleu capabil de a suporta o rezolutie la o perioada de o nanosecunda a ceasului sistemului.

Un exemplu grafic al straturilor ce formeaza un sistem de operare

2) Bibliografie:

- Andrew Tanenbaum, Modern Operating Systems 3'rd edition, Pearson Education Inc., 2008 (pag. 3-58)

- http://ro.scribd.com/doc/13597643/Sisteme-de-Operare#scribd - http://en.wikipedia.org/wiki/Operating_system - http://ro.wikipedia.org/wiki/Nucleu_monolitic - http://en.wikipedia.org/wiki/Microkernel - http://ro.scribd.com/doc/13597643/Sisteme-de-Operare#scribd - http://stst.elia.pub.ro/news/SO/SO_2012_pdf/

1_BabarusGe_VoicuAd_OS%20STRU.pdf

12