CATEGORII DOCUMENTE |
Structura sistemului UNIX
Sistemul de operare UNIX sustine ideea ca fisierele au locuri, iar procesele au viata. Cele doua entitati: fisierele si procesele, sunt cele doua concepte de referinta ale sistemului de operare UNIX.
Figura 2.1. Diagrama bloc a nucleului sistem
Diagrama din figura 2.1 prezinta modulele nucleului si relatiile dintre ele. Sunt prezen24tate cele doua componente de baza ale nucleului:
subsistemul de fisiere (in stanga) si subsistemul de control al proceselor (in dreapta). Diagrama ofera o schema logica de principiu a nucleului, desi in realitate nucleul se abate de la acest model datorita interactiunii unor module cu operatiile interne ale altor module. Figura prezinta trei nivele: utilizator, nucleu si hardware. Apelurile sistem si biblioteca de interfata repezita frontiera intre programele utilizator si nucleul prezentat in figura 1.1. Apelurile sistem sunt similare apelurilor de functii obisnuite din programele C, iar biblioteca asociaza aceste apeluri de functii primitivelor care permit intrarea in sistemul de operare (pentru detalii vezi cap. 6). Programele in limbaj de asamblare pot invoca apelurile sistem direct, fara a avea nevoie de biblioteca de apeluri sistem. Pentru a permite o folosire mai complexa a apelurilor sistem, programele utilizeaza frecvent alte biblioteci, precum biblioteca standard de I/O. La compilare bibliotecile sunt legate cu programele (linkeditate), devenind astfel parte a programului utilizator. Aceste aspecte vor fi ilustrate de un exemplu ulterior.
Dupa cum reiese si din figura, o parte din setul de apeluri sistem interactioneaza cu subsistemul de fisiere, iar o parte cu subsistemul de control al proceselor. Subsistemul de fisiere gestioneaza fisierele alocandu-le spatiu, administrand spatiul liber, controland accesul la fisiere si regasind datele solicitate de utilizatori. Procesele interactioneaza cu subsistemul de fisiere printr-un set specific de apeluri sistem cum ar fi: open, close, read, write, stat, chown si chmod (acestea si altele vor fi tratate in capitolul 5).
Subsistemul de fisiere acceseaza datele utilizand un mecanism de buffer-are care regleaza fluxul de date intre nucleu si dispozitivele de memorie secundara. Mecanismul de buffer-are interactioneaza cu driverele de I/O ale dispozitivelor bloc pentru a initia transferul de date la si de la nucleu. Driverele de dispozitiv sunt module nucleu care controleaza operatiile dispozitivelor periferice. Dispozitivele bloc de I/O sunt dispozitive de memorare cu acces aleator, iaca nu sunt, driverele lor le fac sa apara a fi pentru restul sistemului. De exemplu, un driver de banda magnetica poate permite nucleului sa trateze o unitate de banda ca un dispozitiv de memorare cu acces aleator. De asemenea, subsistemul de fisiere interactioneaza direct cu driverele dispozitivelor de I/O fara interventia mecanismului de buffer-are. Astfel de dispozitive, numite si dispozitive caracter, includ toate dispozitivele care nu sunt dispozitive bloc.
Subsistemul de control al proceselor raspunde de sincronizarea proceselor, comunicarea intre procese, gestiunea memoriei, si planificarea proceselor. Subsistemul de fisiere si subsistemul de control al proceselor interactioneaza cand se incarca un fisier in memorie pentru executie (vezi capitolul 7):subsistemul de control al proceselor citeste in memorie fisierul executabil inainte de a-l executa.
Cateva din apelurile sistem pentru controlul proceselor sunt: fork (creaza un proces nou), exec (suprapune imaginea unui program peste procesul aflat in executie), exit (termina executia unui proces), wait (sincronizeaza executia procesului cu terminarea unui proces creat anterior prin fork), brk (controleaza dimensiunea memoriei alocate procesului) si signal (controleaza raspunsul procesului la evenimente deosebite).
Modulul de gestiune a memoriei controleaza alocarea memoriei. Daca la un moment dat sistemul nu are destula memorie fizica pentru toate procesele, nucleul le muta intre memoria principala si cea secundara astfel incat toate procesele sa aiba aceeasi sansa de a se executa. Capitolul 11 va descrie doua politici de gestiune a memoriei: swapping si paginare la cerere. Procesul incarcator (swapper) este numit uneori planificator deoarece 'planifica' alocarea memoriei pentru procese si determina modul de planificare a ocuparii U.C.P. Pentru a evita confuzia cu planificatorul U.C.P., se va utiliza denumirea de proces incarcator.
Modulul planificator (scheduler) aloca U.C.P. proceselor. Acesta planifica procesele sa ruleze pana cand ele hotarasc sa elibereze U.C.P. pentru a astepta o resursa, sau pana cand nucleul le avertizeaza ca si-au depasit cuanta de timp alocata. Apoi, planificatorul alege pentru executie procesul cu prioritatea cea mai mare: procesul initial va rula din nou atunci cand va fi eligibil si va avea prioritatea cea mai mare. Exista cateva forme de comunicare intre procese, de la semnalizarea asincrona a evenimentelor pana la transmisia sincrona de mesaje intre procese.
Controlul hardware-ului raspunde de tratarea intreruperilor si de comunicarea cu masina. Dispozitive ca discurile sau terminalele pot intrerupe U.C.P. pe durata executiei unui proces, nucleul putand continua executia procesului intrerupt dupa tratarea intreruperii. Intreruperile nu sunt tratate de procese speciale, ci de functii speciale ale nucleului, apelate in contextul procesului aflat in executie in momentul aparitiei intreruperii.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1089
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved