Obiectivele
si functiile unui sistem de operare
Obiectivele generale ale unui sistem de operare sunt:
 - automatizarea
     operatiilor standard in toate etapele de exploatare a sistemului de
     calcul;
 
 - minimizarea
     efortului uman pentru utilizarea sistemului de calcul; 
 
 - optimizarea utilizarii
     resurselor sistemului de calcul; 
 
 - cresterea
     eficientei globale in utilizarea sistemului de calcul prin: 
 
 
  - cresterea vitezei de executie a
      prelucrarilor 
 
  - reducerea timpului de raspuns al sistemului
      la solicitarile utilizatorilor  
 
  - cresterea gradului de utilizare a resurselor prin
      utilizarea lor la capacitate maxima. 
 
 
Functiile prin intermediul carora sistemul
de operare realizeaza aceste obiective sunt:
 
 - functia
     de instalare automata a unui nou sistem de operare pe un sistem de
     calcul;
 
 - functia
     de incarcare in memoria interna a sistemului de operare, la
     pornirea sistemului de calcul; 
 
 - functia de configurare dinamica a sistemului de operare, conform cu
     modificarile intervenite in structura hardware sau cu
     necesitatile de exploatare a sistemului. De exemplu, sistemul de
     operare DOS se poate configura dinamic prin intermediul fisierului
     CONFIG.SYS care se consulta la fiecare incarcare a sistemului de
     operare si care permite instalarea altor drivere de echipamente decat
     cele standard si definirea unor parametri de functionare ai
     sistemului, permitand astfel modificarea, extinderea sau
     imbunatatirea capacitatilor de functionare
     ale sistemului de operare, in cadrul arhitecturii de baza a
     sistemului de calcul;  
 
 - efectuarea operatiilor de intrare / iesire la nivel fizic, pentru
     a permite utilizatorului tratarea echipamentelor periferice la nivel
     logic, adica independent de caracteristicile constructive ale lor.
     Aceasta functie permite degrevarea utilizatorului de sarcina
     tratarii specifice a fiecarui tip de echipament periferic in
     parte. De exemplu, orice tip de imprimanta este tratat in
     acelasi mod de catre utilizator; caracteristicile specifice
     fiecarui tip in parte sunt tratate de programul specializat de
     accesare la nivel fizic al echipamentului, numit driver de imprimanta
     si de componenta sistemului de operare care trateaza
     operatiile de iesire prin intermediul imprimantei: driverul
     portului paralel ;  
 
 - oferirea
     unei interfete cu utilizatorul, prin intermediul unui limbaj specific,
     numit limbajul de comanda al sistemului de operare; prin intermediul
     acestui limbaj, utilizatorul transmite comenzi sistemului de operare; ele
     sunt traduse si lansate in executie de programul interpretor de
     comenzi al sistemului de operare. In sistemele de operare mai noi,
     interfata cu utilizatorul este asigurata folosind metode grafice
     evoluate si principii noi de comunicare, rezultatul fiind o
     modalitate mult mai "prietenoasa" de dialog cu utilizatorul; o astfel
     de interfata se numeste interfata grafica cu
     utilizatorul (Graphical User Interface);
 
 - controlul
     executiei programelor: sistemul de operare incarca programul in
     memoria interna, pentru executie, il lanseaza in
     executie, urmareste executia in toate etapele sale
     si incheie executia programului; 
 
 - gestionarea alocarii resurselor sistemului de calcul: sistemul de
     operare gestioneaza alocarea timpului UCP, a memoriei interne,
     accesul la fisiere, accesul la echipamentele periferice,etc. pe
     toata durata executiei unui program, in scopul utilizarii cat
     mai eficiente a acestor resurse. In cazul in care este posibila
     executarea simultana a mai multor programe, sistemul de operare
     realizeaza alocarea resurselor intre programe pe baza unor criterii
     de alocare, in scopul optimizarii executiei programelor, conform
     obiectivelor de eficienta de mai sus;
 
 - asigurarea protectiei
     intre utilizatori, acolo unde sistemul de operare permite accesul
     concomitent al mai multor utilizatori (programe) la resursele sistemului
     de calcul, si asigurarea protectiei intre programe, fie ca
     este vorba de programe utilizator sau programe ale sistemului de operare.
     Aceasta protectie se refera la evitarea cazurilor de
     interferenta intre mai multe programe in executie, care ar
     putea duce la alterarea zonelor de program din memoria interna sau la
     alterarea, de catre un program, a datelor utilizate de un alt
     program;  
 
 - tratarea erorilor: sistemul
     de operare poate trata erori la nivelul masinii fizice (de exemplu:
     erori de citire / scriere in memoria externa, erori de acces la un
     echipament periferic, lipsa din configuratia sistemului de calcul a
     unui echipament, etc.) sau erori logice, care pot sa apara in
     timpul executarii unui program (de exemplu: operatii interzise,
     ca impartirea la 0, tentativa de acces in zone protejate ale
     memoriei interne, tentativa de executie a unor instructiuni
     privilegiate, etc.);  
 
 - functii auxiliare, cum
     ar fi: contabilizarea activitatii sistemului de calcul,
     jurnalizarea comenzilor adresate interpretorului de comenzi al sistemului
     de operare, jurnalizarea erorilor, etc.  
 
 
2.5. Clasificarea sistemelor
de operare din punctul de vedere al executiei proceselor 
In general, programele
utilizeaza in mod diferit resursele unui sistem de calcul (unele
ocupa mai putina memorie interna decat altele, unele
executa mai multe operatii de intrare/iesire, timp in care UCP
este utilizata mai putin, altele fac prelucrari complexe asupra
datelor, utilizand intens unitatea aritmetico-logica, etc). 
Pentru utilizarea
eficienta a resurselor sistemului de calcul, unele sisteme de operare pot
gestiona executia concurenta a mai multor procese,
asigurand proceselor din sistem accesul concurent la resursele
sistemului sau partajarea resurselor. Aceasta inseamna
ca, la un moment dat, in sistem se pot afla in executie mai multe
procese care concureaza intre ele pentru accesul la resursele sistemului
iar sistemul de operare gestioneaza resursele sistemului pentru
satisfacerea cat mai multor cereri ale acestor procese pentru alocarea de
resurse.  
O caracteristica
importanta a unui sistem de operare este masura in care poate asigura
executia concurenta a proceselor. Dupa acest criteriu, sistemele
de operare pot fi: 
 - monotasking, care nu
     asigura executia concurenta si nici partajarea
     resurselor intre mai multe procese. Sub controlul unui sistem de operare
     monotasking, la un moment dat, in sistemul de calcul se poate executa un
     singur program; acesta ramane activ din momentul lansarii lui in
     executie si pana la terminarea lui completa; cat timp
     este in executie, programul are acces la toate resursele sistemului
     de calcul. 
 
Exemplu: sistemele de operare
MS-DOS si CP/M sunt sisteme de operare monotasking; in timpul
executarii unui program, sistemul de operare pierde controlul asupra
sistemului, in favoarea programului aflat in executie, care preia
controlul pana in momentul incheierii executiei sale.  
											
											
 - multitasking sunt acele sisteme de operare care asigura
     executia concurenta a mai multor procese care exista
     concomitent in sistem. 
 
Exemplu:
sistemele de operare Windows, Unix sunt sisteme
multitasking. Aplicatia Windows 3.x rulata
sub sistemul de operare monotasking MS-DOS permite exploatarea in regim
multitasking a aplicatiilor Windows.
In plus fata de sistemele de operare
monotasking, pentru un sistem de operare multitasking trebuiesc definite
strategiile de alocare a resurselor la procesele concurente, strategii care vor
fi folosite de componentele sistemului de operare pentru gestionarea
resurselor.
 
2.6. Clasificarea sistemelor de operare dupa
gradul de interactiune cu utilizatorul
Un sistem de operare are rolul de a interfata
comunicarea intre utilizator si sistemul de calcul. Tendinta
actuala in cererea utilizatorilor este de a
creste atat gradul de interactiune cu sistemul de calcul cat si
gradul de accesibilitate al interfetei cu sistemul de calcul; aceste
doua tendinte, in general contradictorii, determina
cresterea complexitatii componentei sistemului de operare care
asigura interfata cu utilizatorul.
Pe de alta parte, din
punctul de vedere al gradului de utilizare si al accesibilitatii
sistemului de calcul, o caracteristica importanta este numarul
de utilizatori care pot avea acces, la un moment dat, la sistem.
Din punctul de vedere al accesului utilizatorilor la
sistem si al gradului de interactiune cu sistemul, sistemele de
operare pot fi:
 
 - seriale, acele sisteme de operare pentru care gradul de
     interactiune cu utilizatorul, in timpul prelucrarilor, este nul.
     De cele mai multe ori, interfata dintre sistemul de operare si
     utilizator nu dispune de un limbaj de
     comanda accesibil utilizatorului obisnuit, motiv pentru care
     comunicarea dintre utilizator si sistem nu este directa ci
     mediata de persoane specializate ca operatori de calculator. In
     timpul executiei lucrarii sale, utilizatorul pierde total
     controlul asupra prelucrarii; el furnizeaza datele care se
     prelucreaza odata cu formularea cererii de prelucrare si
     primeste rezultatele prelucrarii la incheierea executiei. 
 
 - interactive: sistemele de operare care permit comunicarea
     directa intre utilizator si sistemul de calcul, prin intermediul
     unui limbaj dedicat acestui scop (limbajul de comanda al sistemului
     de operare sau interfaa grafica utilizator). In plus,
     utilizatorul poate urmari modul in care se executa programul
     sau si poate influenta, in anumite conditii,
     executia acestuia. Un sistem de operare
     interactiv presupune o arhitectura a sistemului de calcul care
     sa cuprinda echipamente standard de intrare/iesire dedicate
     comunicarii utilizatorului cu sistemul de operare (terminale I/O);
     aceste echipamente cuprind, de obicei, o tastatura, ca echipament
     standard de intrare si un dispozitiv de vizualizare a
     informatiilor de iesire (un display sau o mini-
     imprimanta). Sistemele de operare interactive pot fi: 
 
 
  - monouser, cand comunicarea cu sistemul de calcul este posibila, la
      un moment dat, numai pentru un singur utilizator, prin intermediul
      consolei sistemului de calcul; 
 
  - multiuser, cand sistemul de
      operare poate gestiona comunicarea concomitenta cu mai multi
      utilizatori, conectati la sistemul de calcul prin intermediul
      echipamentelor terminale de intrare/iesire. 
 
 
Exemplu: MS-DOS este un sistem
interactiv monouser; Unix este un sistem interactiv multiuser. 
 
2.7. Clasificarea
sistemelor de operare dupa configuratia hardware deservita 
Se obisnuieste
impartirea sistemelor de calcul in trei categorii mari, in
functie de puterea lor de prelucrare a informatiei si de
capacitatea lor; corelat cu aceasta impartire se clasifica
si sistemele de operare, dupa configuratia hardware pe care o
deservesc. Structura sistemului de operare este influentata de
structura sistemului de calcul pentru ca, in general, s-a cautat ca
punctele mai slabe hardware sa fie compensate prin functii
suplimentare asigurate de software, in particular, de sistemul de operare. Pe
de alta parte, un sistem de calcul puternic, ce permite prelucrari
complexe, are nevoie de un sistem de operare la fel de puternic, capabil
sa asigure o buna coordonare a activitatii sistemului de
calcul si o gestionare optima a resurselor acestuia.  
Dupa configuratia hardware deservita,
sistemele de operare sunt:
 - sisteme de operare pentru
     microcalculatoare: 
 
 
  - sunt puternic interactive, cu un limbaj de
      comanda accesibil sau cu interfata grafica
      utilizator; 
 
  - unele sunt monouser si monotasking
      (MS-DOS), altele multitasking (Windows), eventual si multiuser
      (Unix);  
 
  - sunt usor
      configurabile, oferind proceduri automate pentru incarcarea sau
      pentru instalarea sistemului de operare; 
 
  - ocupa un spatiu redus in memoria
      interna; 
 
  - suporta dezvoltari pentru a permite
      conectarea in retele de calculatoare sau ca terminale la sisteme de
      calcul mari; 
 
  - au functia de
      gestionare a informatiei dezvoltata in directia
      manevrarii unui numar mare de fisiere de dimensiuni mici; 
 
 
 - sisteme
     de operare pentru minicalculatoare: 
 
 
  - sunt interactive, multiuser si
      multitasking; 
 
  - folosesc un limbaj de comanda pentru
      utilizatori avizati;  
 
  - procedurile de
      incarcare la conectarea sistemului si de instalare a sistemului
      de operare sunt mai laborioase; 
 
  - sunt mai rigide, in cazul
      modificarii configuratiei hardware;  
 
  - asigura un sistem de prioritati
      de executie dezvoltat;  
 
  - orientate pentru lucrul cu
      mai multi utilizatori, oferind un sistem complex de protectie a
      informatiei; 
 
  - orientate pentru lucrul cu multe terminale,
      putand indeplini functia de concentrator de date; 
 
 
 - sisteme
     de operare pentru calculatoare mainframe: 
 
 
  - seriale sau interactive, multitasking; 
 
  - limbaj de comanda
      pentru utilizatori specializati; 
 
  - gestioneaza un
      numar mare de echipamente periferice; 
 
  - orientate pentru
      prelucrari complexe si pentru volume mari de date. 
 
 
In prezent se
constata tendinta de apropiere a performantelor
microcalculatoarelor de cele ale calculatoarelor superioare lor, in paralel cu
tendinta de apropiere a performantelor sistemelor de operare pentru
sisteme de calcul mari de cele ale sistemelor de operare pentru mini sau
microcalculatoare. 
In acelasi timp, se
realizeaza o integrare functionala tot mai accentuata a
diferitelor tipuri de sisteme de calcul in platforme de lucru comune, de obicei
prin conectarea acestora in retele de calculatoare. Cel mai elocvent exemplu in aceasta
directie este reteaua Internet care
realizeaza legatura intre cele mai diferite tipuri de sisteme de
calcul, functionand sub controlul unor sisteme de operare diverse.
Din punctul de vedere al dezvoltarii sistemului
de operare, tendinta actuala este de
dezvoltare a sistemelor de operare portabile, adica acele sisteme de
operare care functioneaza pe platforme hardware diferite. Un exemplu in acest sens este sistemul de operare UNIX.
O alta directie este dezvoltarea de familii
de sisteme de operare, de exemplu familia sistemelor de operare Windows, in
care au fost dezvoltate sisteme de operare interactive, multitasking, asigurand
si functiile pentru lucrul in retea de calculatoare; intre
aceste sisteme de operare, unele sunt specializate pentru un anumit mod de
utilizare, de exemplu: Windows NT Server, pentru server de retea sau
Windows NT Workstation pentru statii de lucru din retea.