CATEGORII DOCUMENTE |
CLASIFICAREA SISTEMELOR DE OPERARE
Clasificarea SO se poate face dupa doua crirerii importante :
Arhitectura interna a SO
Modul de acces al utilizatorului la serviciile oferite de SO
1 CLASIFICAREA DUPA ARHITECTURA INTERNA
Clasificarea SO dupa arhitectura interna este de fapt clasificarea dupa tipul nucleului sistemului de operare. In continuare vor fi prezentate mai multe tipuri de nuclee, si sistemele de operare din care fac parte.
1.1 NUCLEUL SISTEMULUI DE OPERARE
Ce este nucleul so:
cea mai importanta parte a SO;
o colectie de functii (apeluri sistem - system calls) care pot fi apelate de procesele utilizator ;
un
interpretor, care ofera instructiuni (apelurile sistem) pentru
uzul tuturor proceselor.
Exemplu:
ideea de nucleu ca limbaj de interpretare a fost implementata la masinile LISP,
la care limbajul LISP este folosit pe post de nucleu al SO
Caracteristicile nucleului
are privilegii maxime si executa pentru procesele utilizator acele operatii care nu sunt permise acestora;
codul nucleului este reentrant, poate fi executat simultan in contextul mai multor procese.
Localizarea nucleului:
se
incarca in memoria interna (MI) la boot-area SO (partial sau in totaliitate rezident in MI);
Exemplu: la MS-DOS nucleul are mai multe
componente, dintre care una este BIOS-ul, o suita de functii inscrise in
memoriile nevolatile (unele chiar pe placile de interfata cum ar fi placa
video); alte parti ale nucleului se incarca in MI din fisierele msdos.sys si io.sys.
zona de memorie in care se afla nucleul devine (vizibila) proceselor numai atunci cind ele invoca serviciile acestuia, in rest fiind invizibila (inaccesibila) pentru ele.
Functiunile nucleului:
asigura controlul executiei programelor, managementul proceselor ;
asigura executia simultana a proceselor, multiprogramarea :
multiprogramare reala, cind exista mai multe procesoare in sistem;
multiprogramare simulata (time-sharing), cind exista un singur procesor;
asigura planificarea proceselor (scheduling-ul);
implementeaza notiunea de spatiu de adrese virtual (memoria virtuala), prin translatarea adreselor din codul proceselor la executia acestora (address mapping);
realizeaza gestiunea memoriei :
mentine lista zonelor libere si ocupate din MI;
pentru fiecare proces mentine o lista cu zonele de memorie la care are acces.
Tipuri de nuclee
CLASIFICARE A nucleelor dupa modul de implementare al serviciilor oferite proceselor utilizator :
in spatiul procesului care foloseste serviciul, ca o bibl. de functii;
in interiorul nucleului, accesate prin apeluri sistem: nuclee monolitice;
in gestiunea unor procese separate, denumite procese server : micro-nucleele (micro-kernel).
Observatie: practic fiecare SO foloseste toate cele trei moduri de implementare a serviciilor, dar clasificarea se face dupa gradul lor de folosire si nu dupa natura serviciului.
NUCLEE DE TIP BIBLIOTECA DE FUNCTII
Biblioteca paratajata = colectie de functii care se pot lega la programe:
static, la sfirsitul compilarii (static linking) ;
dinamic, pe parcursul executiei (dynamic linking) .
Caracteristici:
legarea la biblioteca se face o singura data;
eficienta
(cererea de servicii este un apel
obisnuit de functie, deci se executa cu viteza mare);
Observatie: codul bibliotecilor partajate care se incaraca dinamic poate sa fie
mai ineficient decit codul obisnuit, deoarece trebuie sa fie de tip PIC (Position Independent Code).
Exemple:
1. MS-DOS = poate fi considerat o biblioteca de functii:
apelul functiilor DOS se face prin intreruperi software (INT xxh), nu prin plasarea argum. pe o stiva;
functia DOS este un rudiment de apel sistem;
functia DOS este eficienta (rapida), neexistind memorie virtuala, deci nici translatie de adrese.
2. Win NT = desi este micro-nucleu, plaseaza serviciile cel mai frecvent solicitate in bibl. utilizator (in special serviciile grafice).
EXOKERNEL = SO in care nucleul este aproape complet inlocuit cu biblioteci gigantice care se pot lega la procesele utilizator, sau cu masini virtuale pentru diversele tipuri de aplicatii.
1.3 Nuclee monolitice
Caracteristici:
nucleul furnizeaza serviciile cu utilizare frecventa;
nucleul este relativ inflexibil; greu de modificat;
nucleul asigura o separatie neta intre spatiul propriu de adrese si cel al proceselor utilizator;
nucleul are un control strins al operatiilor efectuate de procese si impune respectarea politicilor de alocare resurse.
Exemple Win 95, UNIX, VMS, JavaOS.
Arhitectura UNIX
UNIX este un exemplu tipic de SO cu nucleu monolitic. Categoriile de servicii oferite de nucleul UNIX sunt :
operatii cu procese: depanarea si masurarea (profiling) proceselor; planificarea si executia proceselor;
comunicatia inter-proces: conducte, semnale, memorie partajata, semafoare, mesaje;
accounting si tarifare dupa consumul resurselor;
gestiunea memoriei virtuale si alocarea /eliberarea memoriei;
mecanisme de protectie si securitate.
Serviciile anterioare sunt obligatoriu incluse in orice nucleu, indiferent daca daca este monolitic sau micro-nucleu.
Servicii suplimentare care la SO UNIX se afla in nucleu:
managementul perifericelor si operatiile cu fisierele;
protocoale de comunicatie in retea (TCP/IP);
timere, alarme si legarea dinamica.
1.4 Micro-nuclee
Caracteristici:
nucleul furnizeaza un minim de servicii proceselor si are dimensiune redusa;
marea majoritate a serviciilor sunt asigurate de procese "server", care indeplinesc solicitarile unor procese "client";
comunicatia intre procesele server si procesele client se face prin mesaje, prin intermediul nucleului SO (modul in care un serviciu este invocat de catre client este trimiterea unui mesaj ce este interceptat si directionat de nucleul SO catre un server);
comunicatia inter-procese este eficienta si flexibila.
Un (proces) server lucreaza astfel:
asteapta in starea blocat cereri de la clienti;
la aparitia unei cereri, creeaza un thread, caruia ii paseaza mesajul primit spre prelucrare;
thread-ul fiu decodifica mesajul, executa operatia, raspunde si se incheie.
Serverul poate executa astfel mai multe cereri simultan si nu consuma resurse deoarece asteapta in starea blocat.
Avantajele micro-nucleelor:
modularitate: interactiunea inter-procese se face prin interfete bine precizate (mesaje), nu prin variabile globale => consistenta codului nucleului;
scalabilitate: pot fi adaugate procese server pentru servicii suplim.;
distribuire facila: pentru un micro-nucleu poate sa nu conteze pe ce masina este serverul apelat de clientul de pe masina locala;
adaptibilitate: procesele server pot fi adaugate in functie de necesitatile aplicatiilor care vor rula pe masina respectiva ("platesti numai pentru ce folosesti").
Dejavantajele micro-nucleelor
costul serviciilor este prea ridicat:
- prea multe apeluri sistem pentru
manipularea mesajelor;
- impachetarea si despachetarea argumentelor
in cazul RPC;
mesajele sunt copiate de mai multe ori inainte de a fi livrate.
SO distribuite
SO distribuite sunt colectii de micro-nuclee ce ruleaza pe echipamente de calcul interconectate in retea.
Lansarea unei cereri de serviciii in cadrul SO distribuite se poate face prin mecanismul denumit RPC, apel de procedura la distanta (Remote Procedure Call).
Cum functioneaza apelurile RPC :
se face localizarea (binding) serverului care ofera serviciul;
sunt construite automat functiile de manipulare mesaj pentru client si server (stub-urile), pe baza la specificatiilor oferite de server pentru procedura apelata;
Stub-urile, care sunt apelate de procesul client:
sunt generate de compilatoare din descrierea interfetei lor (tipul argumentelor si al rezultatelor);
impacheteaza argumentele procedurii intr-un mesaj (marshalling);
trimit mesajul;
despacheteaza (demashalling) raspunsul la receptia unui mesaj.
1. clientul
cheama stub-ul 2. impachetare
(marshalling) stub-ul client trimite mesaj 4. despachetare
(demarshalling) 5.apelul
procedurii in server 6. executia
procedurii in server 7. procedura
serverului se intoarce 8. stub-ul impacheteaza rezultatele 9. rezultatele sunt transmise la client 10. stub-ul client despacheteaza 11. stub-ul client se intoarce
ARHITECTURA WinNT
Win NT - sistem de operare bazat pe un micro-nucleu, care include insa unele servicii suplimentare:
serverul de ecran, care se ocupa de grafica si afisare face parte din nucleu SO;
serverul Win95 (pentru rularea aplic. Win 95) face parte din nucleu.
Comunicatia intre procesele server si cele client se face in WinNT prin LPC (Local Procedure Call) un apel RPC simplificat, cele doua procese fiind pe acceasi masina.
Caracteristici LPC:
este eliminata conversia datelor (marshalling);
este evitata copierea argumentelor mari,care ducea la risipa de timp si spatiu, prin folosirea unor zone de memorie partajate, pe baza mecanismului de memorie virtuala furnizat de nucleu:
clientul depune datele intr-o zona de mem., transmitind descrierea ei:
zona partajata in care clientul depune date devine vizibila pentru server, prin modific. tab. sale de translatare a adreselor;
procesul server prelucreaza datele din zona partajata;
la incheiere zona partajata devine din nou "invizibila" pentru server;
Observatie: tehnica memoriei partajate este folosita si anumite implementari ale serverelor de ferestre X Windows, in care clientii locali transmit descrerierea unei zone de memorie si nu continutul ei.
Win NT foloseste de asemenea tehnica prealocarii resurselor:
nu mai este creat un thread pentru fiecare serviciu, thread care este apoi sa fie distrus;
pentru fiecare client foarte activ este creat cite un thread special, care va executa numai cererile acelui client si care "supavietuieste" cit timp clientul este activ;
o zona de memorie partajata este alocata permanent pentru client si thread-ul care serveste acel client, astfel tabela de pagini pentru memoria partajata nu mai este modificata;
un "intrerupator" numit pereche de evenimente (event‑pair) este alocat intre cei doi , pentru semnalizare reciproca.
Concluzii despre micro-nuclee
SO avind un micro-nucleu plaseaza majoritatea serviciilor in procese externe, denumite server. Aceasta implica:
simplificarea activitatii de gestiune a proceselor nivelul nucleului;
ineficienta din cauza numeroaselor granite de trecut intre diversele procese autonome, server si client.
fragmentarea unui serviciu oferit in mod traditional de nucleu in mai multe servicii oferite de servere diferite.
SO WinNT este o arhitectura de micro-nucleu in care:
serverele ocupa un loc central;
se incearca recuperarea eficientei prin plasarea unor servicii in nucleu, WinNT capatind astfel caracteristici de monolit.
Ideea de a folosi procese server exterioare nucleului pentru furnizarea unor servicii este implementata si in cazul SO monolitice, nu numai la micro-nuclee. Sub UNIX ruleaza servere binecunoscute:
serverul NFS (Network File System), ptr. accesul fis. la distanta;
super-serverul inetd, care poate porni la cerere alte servere:
servere de acces la distanta: telnet, rlogin, rsh, rexec;
servere de posta electronica: smtp, uucp;
servere de transfer fisiere: ftp.
serverul de WWW (World Wide Web);
serverul de nume named;
serverele de raportare erori: syslogd, klogd;
serverul de fereste: X.
Observatie: exista si o solutie de arhitectura a nucleului in care nimeni nu poseda nimic, denumita fara servere (serverless). In cadrul acestei solutii s-a incercat (uneori fara succes!) rezolvarea problemei "gituirii" (bottleneck) in accesul la resurse. Aceasta solutie a fost aplicata la sistemele de calcul paralele si distribuite, la care SO implementeaza conceptul de memorie distribuita partajata (Distributed Shared Memory, DSM). In acest caz toate calculatoarele dintr-o retea partajeaza un spatiu de memorie foarte mare, care nu este memorat fizic intr-un loc fixat si ale carui locatii se "deplaseaza" intre masinile care il folosesc.
REZUMAT
Toate cele trei arhitecturi posibile pentru nucleul SO rezolva intr-un fel particular urmatoarele doua probleme:
Ce resursa trebuie acordata unui proces utilizator ?
(pentru rezolvarea unei cereri de servicii catre SO) :
o biblioteca de functii;
nucleul SO;
un proces server;
Unde trebuie plasat un serviciu? (insusirile unui serviciu depind in mod esential de plasarea sa):
intr-o biblioteca de functii;
in nucleul SO;
intr-un proces server
Diferente intre solutia cu biblioteci si cea cu nucleu monolit:
durata de viata a informatiei:
daca informatia este intr-o biblioteca, locala unui proces, ea nu poate supravietui la incheierea procesului;
siguranta informatiilor globale din intregul sistem:
este mentinuta de nucleul SO, care supravietuieste tuturor proceselor utilizator;
in
solutia cu biblioteci exista o mare dificultate in implementarea
protocoalelor de retea cum ar fi TCP/IP.
Exemplu: in standard-ul TCP/IP se impune
ca dupa inchiderea unei conexiuni de retea, unul din capete sa mentina
identificatorul conexiunii o vreme nefolosit (30 sec), astfel incit el sa nu
fie insusit de o alta conexiune, caz in care pachetele intirziate ale conexiunii
anterioare vor fi livrate altui destinatar. La UNIX lista conexiuniloe poate fi
vazuta cu comanda netstat, iar cele
care sunt in starea TIME_WAIT sunt de acest gen: terminate, dar memorate. Un
server Web trebuie sa mentina numeroase astfel de conexiuni.
Diferente intre solutia cu nucleu monolit si cea de micro-nucleu (bazata pe servere distribuite in retea):
siguranta gestionarii cererilor
in cadrul solutiei cu nucleu monolit, daca acesta functioneaza, el raspunde cererile proceselor;
la micro-nuclee, daca serverul se gaseste pe alta masina, nu exista garantia ferma ca el va raspunde la aceasta cerere;
legitimitatea cererilor de servicii
la micro-nuclee cu servere distribuite in retea trebuie adaugat un mecanism de verificare a identitatii clientului care a lansat o cerere, lucru nenecesar in cazul nucleelor monolit.
1.6 ALTE TIPURI DE ARHITECTURI ALE SISTEMELOR DE OPERARE
Sistemele de operare ierarhizate
Caracteristici:
incearca o modularizare si o grupare a componentelor SO prin structurarea lor pe mai multe nivele;
fiecare nivel este construit pe baza celui inferior lui.
Nivelul = o incapsulare a unor structuri de date si a unor operatii ce se pot efectua asupra acestor date.
Nivelul = un set de rutine ce furnizeaza servicii niv. imediat sup.
Nivelul = cunoaste serviciile furnizate de nivelul inferior, fara sa cunoasca modul de implementare a acestora.
Primul SO ierahizat pe nivele a fost THE, realizat de E.W. Dijsktra si elevii sai la Eindhoven in Olanda, in anul 1968.
Programele utilizator |
|
Gestiunea operatiilor de I/E |
|
Comunicatia cu consola sistem |
|
Gestiunea memoriei |
|
Multipropgramarea unitatii centrale |
|
Hardware |
Nivelul 0 - reprezenta masina fizica (componenta hardware);
Nivelul 1 - continea modulele pentru multiprogramarea UC si realiza planificare proceselor dupa un algoritm bazat pe prioritati, precum si sincronizarea proceselor prin semafoare;
Nivelul 2 - continea modulele de gestiune ale memoriei
- implementa mecanismul de memorie virtuala:
- memoria era impartita in pagini de 512 cuvinte ce puteau sa fi evacuate/reincarcate pe disc;
Nivelul 3 - cuprindea driverul pentru consola operator si efectua comunicatia proceselor cu consola;
Nivelul 4 - se ocupa cu gestiunea operatiilor de I/E;
- realiza schimburile de informatie prin bufferat; deasupra acestui nivel DP apareau utilizatorului ca dispozitive abstracte cu care se efectuau operatii logice;
Nivelul 5 - continea programele utilizatorilor; careutilizatorilor nu trebuiau sa cunoasca nimic despre functionarea nivelelor inferioare.
Exemplu: MULTICS , sistem de operare ierarhizat clasic realizat prin colaborarea MIT cu laboratoarele Bell si implementat pe calculatoarele produse de General Electrics. Era organizat logic ca o colectie de inele concentrice la care nucleul SO era forma inelele interioare iar procesele utilizatorilor alcatuiau invelisul exterior.
Caracteristici:
apelul unei proceduri de nivel inferior se facea printr-o instructiune TRAP cu transmitere de parametri;
SO era vazut de proc. utiliz. ca parte din spatiul de adrese propriu;
pentru prevenirea acceselor neautorizate existau mec. hardware de protectie la citire/scriere/executie a segmentelor de mem;
ierarhizarea proceselor pe nivele putea exista si in programele utilizatorilor.
Avantaje: modularitatea, ceea ce simplifica activitatea de depanare a SO.
Dezavantaje:
dificultati in definirea adecvata a continutul fiecarui nivel, astfel incit sa existe un optim in functionarea SO;
apelurile sistem se efectuau mai lent; ele parcurgeau succesiv mai multe nivele pina la modulul dorit, fiecare nivel ducind la o supraincarcare a apelului sistem.
Aceste dezavantaje au provocat un recul al implementarii modelului de organizare pe nivele ierarhice; intre sistemele de operare moderne, OS/2 poseda o structura interna organizata pe nivele.
Masina virtuala
Caracteristici:
este un alt model posibil de organizare interna;
se bazeaza pe ideea ca functia de multiprogramare a UC poate fi separata de celelalte functii ale SO;
Monitor de masina virtuala este denumirea unui SO de tip masina virtuala.
Monitorul de masina virtuala:
un nucleu software minimal ce furniza mai multe copii ale masinii fizice;
copiile erau numite masini virtuale;
fiecare masina virtuala putea simula modul de lucru supervizor/utilizator si sistemul de intreruperi.
Pe o masina virtuala :
se putea implementa nucleul unui SO;
se putea prezenta utilizat. pentru lucru o masina extinsa dotata cu sistem de fisiere si alte facilitati obisnuite. .
VM370
a fost primul SO monitor de masina virtuala;
a fost realizat de o echipa de la Centrul de cercetare IBM Cambridge in ul 1970;
furniza mai multe copii ale hardware-ului masinii;
simula existenta pe acelasi calculator a mai multor procesoare care lucreaza simultan si separat;
pe aceste copii ale masinii fizice era implementat un alt SO apartinind IBM, CMS, un sistem monoutilizator interactiv.
Monitor de masina virtuala VM/370
Masina fizica IBM 370
Dezavantaje:
modelul de masina virtuala este dificil de implementat;
Avantaje:
fiecare masina virtuala este complet izolata de celelalte, deci problemele de securitate sunt practic inexistente;
este mediul de lucru ideal pentru dezvoltarea/depanarea altor SO.
Concluzii: in ultimii ani modelul de masina virtuala a fost revitalizat pentru a putea transporta aplicatiile intre echipamente de calcul cu UC diferit.
Exemplu: Sun Microsistem sau DEC, care produc calculatoare de alt tip decit IBM-PC, au implementat modele de masini virtuale Intel (care simuleaza functionarea unui procesor cu chip Intel 80x86) ptr a putea rula pe echipamentele proprii aplicatiile MS‑DOS.
2 CLASIFICAREA SO DUPA MODUL DE ACCES
Modul de acces = felul in care utilizatorul pune in lucru serviciile SO.
2.1 SISTEME DE OPERARE CU PRELUCRARE PE LOTURI
Caracteristici:
primele in ordine istorica;
utilizatorul era complet izolat de sistemul de calcul.
intervalul de timp intre predarea unei lucrari si primirea rezultatelor putea fi destul de mare.
Fluxul parcurs de o lucrare era alcatuit din mai multe etape:
Etapa 1 = prezentarea lucrarii la calculator (cartele/suport magnetic);
Etapa 2 = introducerea lucrarii intru-un lot aflat sub forma unui fisier pe disc; acest fisier va fi prelucrat prin spooling;
Etapa 3 = executia lucrarii (cf. unei planificari automate/manuale);
Etapa 4 = imprimarea rezultatelor din fis. de iesire al lotului pe hirtie;
Etapa 5 = predarea rezultatelor lucrarii utilizatorului.
Concluzie:
prelucrarea pe loturi exista sub forma fisierelor de comenzi la si la SO moderne;
fisierele de comenzi sunt de fapt seturi de comenzi care se executa cu inlantuire in mod automata, ca si lucrarile dintr-un lot.
2.2 SO CU ACCES CONVERSATIONAL (INTERACTIV)
Caracteristici:
permit interactiunea directa a utilizatorului cu calculatorul, prin intermediul unor terminale. de la care sunt emise (tastate) comenzi catre SO;
comenzile sunt executate intr-un timp convenabil de SO.
timpul de raspuns al SO este suficient de mic pentru a crea impresia de executie instantanee a comenzilor.
Observatie:
La asfel de sisteme exista inafara terminalelor utilizatorilor si o consola sistem, care este de fapt un terminal cu regim privilegiat.
De la consola sistem se demareaza SO si tot aici sunt afisate unele mesaje de interes general (mesaje de stare sistem, mesaje de eroare, avertismente).
2.3 SISTEMELE DE OPERARE IN TIMP REAL
Caracteristici:
sunt implementate de obicei pe calculatoare implicate nemijlocit in functionarea unor instalatii tehnologice;
limitele de timp pentru pentru producerea raspunsurilor SO sunt mult mai stricte si sunt dictate de natura procesului tehnologic;
legatura calculatorului cu procesul tehnologic se face prin intermediul unor interfete specializate dirijate de module (drivere) din cadrul SO.
Sisteme de operare in timp real rigid
Caracteristici:
garanteaza efectuarea unor prelucrari critice intr-un anumit timp.
majoritatea caract. evoluate ale SO nu sunt implermentate;
separarea de hardware-ul masinii nu este dorita deoarece ea duce la imposibilitatea de a aprecia durata unor operatii sau prelucrari.
Implicatii:
limitarea tuturor activitatilor proprii ale SO;
eliminarea unor componente hardware a caror functionare se face cu un consum mai mare timp (memoria disc este inexistenta sau foarte redusa);
stocarea datelor se face in memoria interna si nu suporta partajarea UC.
Concluzii:
SO in timp real rigid sunt proiectate strict pentru o anumita aplicatie sau un echipament de calcul specia si nu sunt foarte cunoscute;
sunt foarte raspindite in conducerea proceselor industriale si in robotica.
Sisteme de operare in timp real suplu
Caracteristici:
mai putin restrictive, dar activit. SO sunt pe cit posibil scurtate;
exista in cadrul lor anumite operatii care cunosc limitari de timp si care sunt executate cu prioritate sporita;
includ facilitati evoluate cum ar fi partajarea UC, memoria virtuala, lucrul interactiv, etc.
Sunt folosite ca:
suport pentru aplicatii multimedia sau realitate virtuala;
suport software in proiecte stiintifice legate de cercetarea submarina si zborurile cosmice.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 5472
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved