Sisteme pe mai multe niveluri - stadopedie

Tendințe în construcția structurală a sistemelor de operare

În cazul general, "structura" unui sistem monolit este absența unei structuri. Sistemul de operare este scris ca un set de proceduri, fiecare dintre acestea putând să-i cheme pe alții când are nevoie de ele.





Folosind această tehnică, fiecare procedură de sistem are o interfață bine definită în ceea ce privește parametrii și rezultatele și fiecare este liber să cheme pe oricare altul pentru a efectua o muncă utilă necesară pentru aceasta.







Pentru a construi un sistem monolit, trebuie să compilați toate procedurile individuale și apoi să le îmbinați într-un singur fișier obiect utilizând linkerul (exemple sunt versiunile anterioare ale kernelului UNIX sau Novell NetWare). Fiecare procedură vede orice altă procedură (spre deosebire de o structură care conține module în care cea mai mare parte a informațiilor este locală pentru modul, iar procedurile modulului pot fi apelate numai prin puncte de intrare definite).

Cu toate acestea, chiar și astfel de sisteme monolitice pot fi ușor structurate. La accesarea apelurilor sistem suportate de sistemul de operare, parametrii sunt plasate în locuri bine definite, cum ar fi registre sau stivă și apoi se execută o comandă de întrerupere specială, cunoscut ca un apel nucleu sau apel supervizor. Această comandă comută aparatul de la modul utilizator la modul kernel, numit și modul supervizor și transferă controlul OS. Apoi sistemul de operare verifică parametrii apelului pentru a determina ce apel de sistem ar trebui executat. După aceea, sistemul de operare indexează tabelul care conține referințele la proceduri și solicită procedura corespunzătoare. O astfel de organizare a OS presupune următoarea structură:

a) programul principal care solicită procedurile de service necesare;

b) un set de proceduri de serviciu care implementează apelurile de sistem.

B) un set de utilități care servesc procedurilor de service.

O generalizare a abordării anterioare este organizarea OS ca o ierarhie a nivelurilor. Nivelurile sunt formate din grupuri de funcții ale sistemului de operare - sistemul de fișiere, gestionarea proceselor și dispozitivelor și așa mai departe. Fiecare nivel poate interacționa numai cu vecinul său imediat - deasupra sau sub nivelul. Programele de aplicație sau modulele sistemului de operare înseși transmit cereri în sus și în jos aceste niveluri.

Primul sistem construit în acest mod a fost sistemul simplu de pachete THE, construit de Dijkstra și studenții săi în 1968. Sistemul a avut 6 nivele. Nivelul 0 sa ocupat de alocarea timpului procesorului, de comutarea proceselor prin întrerupere sau după expirarea timpului. Nivelul 1 a controlat spațiul RAM alocat memoriei și spațiul de pe tamburul magnetic pentru acele părți ale proceselor (paginile) pentru care nu a existat niciun loc în OP, adică stratul 1 a efectuat funcții de memorie virtuală. Nivelul 2 a controlat comunicarea dintre consola operator și procesele. Cu acest nivel, fiecare proces are consola proprie de operare. Nivelul 3 dispozitive I / O controlate și fluxuri de informații tamponate către și de la acestea. Folosind nivelul 3, fiecare proces, în loc să lucreze cu dispozitive specifice, cu diferitele lor funcții, a apelat la dispozitivele I / O abstracte care au caracteristici ușor de utilizat. La nivelul 4, au existat programe de utilizator care nu aveau nevoie de îngrijorare cu privire la procesele, memoria, consola sau gestionarea dispozitivelor I / O. Procesul operatorului de sistem a fost localizat la nivelul 5.

În sistem, schema pe mai multe niveluri a servit, în principal, în scopuri de dezvoltare, deoarece toate părțile sistemului au fost apoi asamblate într-un modul de obiect comun.

A fost utilizată de asemenea o abordare pe mai multe niveluri pentru implementarea diferitelor versiuni ale sistemului de operare UNIX.

Deși această abordare structurală a funcționat de obicei, de obicei, a fost percepută din ce în ce mai mult ca fiind monolitică. În sistemele care au o structură pe mai multe niveluri, nu a fost ușor să se îndepărteze un strat și să se înlocuiască cu altul datorită multiplicității și neclarității interfețelor dintre straturi.







Articole similare

Trimiteți-le prietenilor: