Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Calculatoare


Index » educatie » » informatica » Calculatoare
» Notiunea de sistem de operare


Notiunea de sistem de operare


NOTIUNEA DE SISTEM DE OPERARE

Capitolul prezinta sintetizator problematica sistemelor de operare, Incepand cu definirea conceptului de sistem de operare (1) si a caracteristicilor sale (2). Sunt trecute in revista principalele functii ale sistemelor de operare (3) si sunt clasificate sistemele de operare din punct de vedere structural (4).



1. DEFINITII

Sistemele de operare sunt:

Masini virtuale construite cu ajutorul limbajelor de programare (de asamblare sau de nivel inalt) care permit utilizatorului sa controleze, programeze si sa extinda posibilitatile masinii hardware pe care sunt implementate. Este usor de inteles si programat de catre utilizator, detaliile pentru comanda dispozitivelor hardware fiind ascunse utilizatorilor;

Sistemul de operare este administratorul resurselor (resource manager): procese, memorii, discuri, terminale, imprimante. Un exemplu, devenit clasic, este sistemul de operare Unix, care initial a fost conceput ca un gestionar de fisiere (file manager). Sistemul de operare gestioneaza cereri (cozi de asteptare rezolvate dupa anumite criterii) si rezolva situatii conflictuale. Cu timpul conceptul a evoluat, in sensul ca sistemele de operare au fost extinse sa controleze resurse din ce in ce mai complicate si din afara cadrului restrans al unei singure masini hardware: sisteme multiprocesor, sisteme distribuite, sisteme de retele de calculatoare, sisteme de operare globale;

Un ansamblu de programe de control si servicii care ghideaza calculatorul in executarea sarcinilor sale si care asista programele utilizatorilor prin apeluri la anumite functiuni.

2. CARACTERISTICILE SISTEMELOR DE OPERARE

Punerea in evidenta a unor atribute ale sistemului de operare constituie modalitatea normala de a obtine termeni de comparatie pentru diverse sisteme de operare, cat si posibilitatea de a le clasifica.

Fara a avea un caracter exhaustiv, discernem urmatoarele caracteristici:

Eficienta: masoara capacitatea unui sistem de a utiliza sau de a pune in valoare in mod optim resursele de care dispune;

Fiabilitatea: exprima proprietatea unui sistem de a cadea foarte rar prin defectarea uneia sau mai multor componenete ale sale. Acest atribut poate fi interpretat ca necesitatea de a avea o fiabilitate totala, dar poate fi si ca o toleranta la defectiuni, asigurand o degradare lenta a performantelor;

Generalitatea, flexibilitatea, extensibilitatea: masoara gradul in care un sistem poate fi folositor si adaptabil unui context specific, precum si gradul in care se pot include in sistem noi componente hardware si software fara eforturi de proiectare si programare suplimentare;

Partajarea si protectia: caracterizeaza nivelul la care utilizatorii au posibilitatea sa utilizeze in comun informatia prezenta in sistem si nivelul la care pot comunica intre ei, in deplina siguranta (in sensul evitarii accesului neautorizat si/sau a alterarii intentionate sau accidentale a informatiei);

Simultaneitatea utilizarii: masoara gradul in care sistemul poate sa lucreze in acelasi timp pentru mai multi utilizatori sau sa execute mai multe lucrari pentru un acelasi utilizator. Din alt punct de vedere, aceasta caracterisitica reprezinta capacitatea de a multiplexa un singur procesor sau de a utiliza mai multe procesoare in paralel;

Timpul de raspuns: exprima durata intervalului de timp intre lansarea unei cereri de serviciu si achitarea de catre sistemul de operare;

Transparenta si vizibilitate: exprima pe de o parte proprietatea unui sistem ca ceea ce se afla sub interfata unui sistem de operare sa fie invizibil utilizatorului, iar pe de alta parte exprima capacitatea sistemului de operare de a permite utilizatorilor accesul la informatii care sa-l ajute la obtinerea unor utilizari mai eficiente.

3. FUNCTIILE UNUI SISTEM DE OPERARE

Putem privi din mai multe unghiuri functiile pe care trebuie sa le indeplineasca sistemul de operare.

Din punct de vedere al utilizatorului, rolul sau este exclusiv de a asigura rularea in bune conditii a programelor de aplicatii. Se desprinde de aici ideea ca sistemul de operare nu este un scop in sine, ci un mijloc pentru atingerea altor scopuri.

Pentru programatorul de aplicatii, sistemul de operare este in principal un furnizor de servicii la care poate apela pentru rezolvarea problemelor intalnite. Practic, sistemul de operare pune la dispozitia aplicatiilor un set de functii predefinite, care fie sunt dificil de scris si de aceea nu este eficient sa fie implementate de fiecare program in parte, fie pur si simplu nu pot fi lasate in seama aplicatiilor din motive de siguranta in functionare a sistemului in ansamblul sau. Aplicatiile pot folosi aceste servicii, conformandu-se regulilor impuse de sistemul de operare.

Pentru a indeplini aceste cerinte, proiectantul unui sistem de operare trebuie sa realizeze urmatoarele actiuni:

sa asigure buna functionare a componentelor hardware, precum si comunicarea si cooperarea intre acestea;

sa previna interferentele nedorite intre diferitele programe de aplicatii, inclusiv sa impiedice pe cat posibil propagarea efectelor erorilor unui program asupra celorlalte.

Sistemul de operare este raspunzator de administrarea resurselor sistemului. In acest scop, el se ocupa de:

Alocarea resurselor sistemului, aratand CE trebuie folosit prin intermediul componentei denumite supervizor (numit si monitor, nucleu sau Kernel). Acesta decide:

ce programe ale sistemului de operare vor fi incarcate pentru executarea functiilor solicitate de utilizator,

preda controlul pe rand acestora pentru a-si indeplini functiile,

comunica cu utilizatorul/programatorul printr-un limbaj de comanda ("job control language"), adica o colectie de comenzi si de regului de utilizare a comenzilor. Exemple de comenzi sunt:

cautare, copiere, salvare fisier

activarea unor resurse intrare/iesire

specificarea limbajului de programamre utilizat

definirea formatelor de intrare/iesire a datelor

Interpretarea comenzilor este facuta de un program translator al limbajului de comanda.

Programarea (planificarea) resurselor si joburilor, aratand CAND trebuie utilizate acestea. Sunt realizate urmatoarele actiuni:

planificarea etapelor de executie a fiecarui job,

"semaforizarea" accesului la diferite module de calcul,

stabilirea de prioritati si cozi de asteptare,

desincronizarea operatiilor rapide (de exemplu cele executate de UC) de altele mai lente (transferuri cu periferice de I/E)

Monitorizarea activitatilor, arata CUM trebuie sa se desfasoare activitatile in cadrul sistelui. Sistemul de operare trebuie sa:

urmareasca si sa inregistreze toate actiunile desfasurate de sistemul de calcul pentru executia unui program,

furnizeze informatii utilizatorilor despre succesul/insuccesul unor activitati fie din proprie initiativa, fie la cerere,

alcatuiasca statistici pornind executia si anume referitor la parametrii de performanta ai calculatorului si costurile implicate de procesare.

4. TIPURI DE SISTEME DE OPERARE

Din punct de vedere structural intern, sistemele de operare se impart in mai multe categorii, dintre care mentionam urmatoarele patru categorii importante:

Sisteme monolitice

Sistemele de operare monolitice sunt scrise ca o colectie de proceduri care au definita o interfata in termenii parametrilor de intrare si iesire si se pot apela unele pe altele in functie de necesitati. Ele se compileaza separat si se linkediteaza intr-un singur fisier obiect.

tabela dispecer

 

Figura 1. Apelul unei functii sistem

In unele sisteme de operare monolitice se pot gasi si germenii unor structuri incipiente. Serviciile oferite utilizatorilor de catre sistemul de operare (apelurile sistem) constau in punerea unor parametri in registrii sau pe stiva si executarea unor instructiuni speciale de derutare (devieri), numite apel nucleu sau apel supervisor (vezi Figura 1).

Aceasta instructiune face comutarea din modul utilizator in modul nucleu (supervizor) si transfera controlul sistemului de operare.

Fazele de executie ale acestei devieri sunt:

sistemul de operare examineaza parametrii apelului pentru a vedea care functie a sistemului este ceruta;


sistemul indexeaza o tabela dispecer cu valoarea K a apelului cerut;


se obtine adresa procedurii de serviciu care va executa functia solicitata;


se reda controlul programului utilizator.

Structura de baza a acestui tip de sistem de operare cuprinde:

a)      un program principal, care apeleaza procedura de serviciu;

b)      o multime de proceduri de serviciu care trateaza apelurile sistemului;

c)      o multime de proceduri utilitare, care ajuta procedurile de serviciu.

Procedurile corespunzatoare sistemului de operare se impart in 3 niveluri:


Figura 2. Structura sistemului de operare monolitic

Sisteme ierarhizate sunt constituite dintr-o ierarhie de niveluri, fiecare construit pe nivelul anterior nivelului respectiv.

Fiecare nivel (i) al acestei structuri stratificate furnizeaza un set de functii (servicii) nivelului (i+1) si foloseste serviciile nivelului inferior (i-1).

In Tabelul 1 este prezentata o structura ierarhica propusa de E. W. Dijkstra pentru sistemul de operare THE.

Masini virtuale

"Inima" sistemului este monitorul de masina virtuala, care se executa pe hardware calculator si furnizeaza multiprogramarea mai multor masini virtuale. Masinile virtuale sunt aflate pe nivele superioare, nu sunt masini extinse cu fisiere si alte facilitati, ci sunt copii exacte ale hardware-ului, care includ modul de lucru nucleu/utilizator, I/E, intreruperi si cam tot ce are o masina in timp real.

Tabelul 1 Structura ierarhica a sistemului de operare THE

Operator

Programe utilizator

Gestiune I/E

Gestioneaza perifericele de I/E

Comunicare operator - proces

gestioneaza comunicarea intre procesor si consola operatorului

Gestiunea memoriei

aloca spatiu pentru procese in memoria interna si externa

Multiprogramarea si alocarea procesorului

comutarea intre procese la aparitia unor intreruperi externe sau expirarea cuantei timp

Deoarece fiecare masina virtuala este identica cu hardware-ul de baza, pe fiecare din ele se pot executa sisteme de operare diferite.

Aceasta structura de system de operare este utilizata de Windows, OS/2 si alte sisteme de operare pentru a rula programe MS-DOS. Aceste programe sunt pornite in modul virtual 8086. Atata timp cat se executa instructiuni normale, rularea se face pe hardware-ul de baza. Cand programul incearca sa faca o derutare spre sistemul de operare pentru a face un apel sistem sau incearca sa efectueze direct operatiuni de I/E protejate, are loc un salt spre monitorul de masina virtuala.

4. Modele client - server

Acest tip de structura de sisteme de operare urmareste ideea de a deplasa codul in nivelele superioare, reducand sistemul de operare la un nucleu minimal ("kernel"). Majoritatea functiilor sistemului de operare este implementata ca procese utilizator. Pentru a cere un serviciu, un process utilizator (denumit in aceasta situatie process client) trimite creerea unui process server, care efectueaza serviciul solicitat si returneaza raspunsul procesului client solicitant.

In acest model, prezentat in Figura 3, nucleul se ocupa doar de facilitarea comunicatiilor intre clienti si servere. Prin impartirea sistemului de operare in parti, fiecare din ele se ocupa doar de un anumit tip de servicii si are, in plus, o dimensiune mica si usor de manevrat. In plus, serverele lucreaza in mod utilizator si nu au deci acces la hardware, deci nu pot cauza caderea sistemului.

mod nucleu

 

mod utilizator

 


clienti

 
Proces client

clientii obtin servicii trimitand mesaje proceselor server

 
Proces client

nucleu

Proces server

gestioneaza comunicatiile intre clienti

si executanti

(primeste mesaje)

 
(minimal)

Server pentru terminal

Procese server

= executanti

nu au acces

doar*** la hard

(mod utilizator)

 

Server pentru fisiere

Server pentru memorie

Figura 3 Modelul client - server

Un alt avantaj al modelului client - server este adaptabilitatea la sistemele distribuite, deoarece, daca clientul comunica cu serverul prin mesaje, el nu trebuie sa stie daca mesajul este preluat local sau la distanta, printr-o retea de teleprelucrare. Din punct de vedere client, in ambele cazuri se intampla acelasi lucru: se transmite o cerere si se primeste un raspuns (vezi Figura 4).

Anumite functii ale sistemelor de operare (cum ar fi incarcarea comenzilor in registrii dispozitivelor fizice de I/E) sunt dificil de realizat, daca nu imposibil, din spatial programelor utilizator. Exista doua moduri de a rezolva aceasta problema:

existenta catorva procese executant (cum au si driverele de I/E), care se executa in modul nucleu cu acces complet la hardware si comunica cu celelalte procese prin mesaje;

Figura 4 Modelul client - server intr-un system distribuit

implementarea in nucleu a unui mecanism minimal, care recunoaste ca mesajele catre anumite adrese se preiau de nucleu, urmand a fi lansate operatiile de I/E cu perifericele. Deciziile si gestiunea se fac la nivelul proceselor executant.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate