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.