Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Sisteme de operare - Prezentarea generala a sistemelor de operare

calculatoare



+ Font mai mare | - Font mai mic



Sisteme de operare

1. Prezentare generala, caracteristici, structura, clasificare, functii



Prezentarea generala a sistemelor de operare

Sistemul de operare reprezinta ansamblul de programe care asigura utilizarea optima a resurselor fizice si logice ale unui sistem de calcul[1]. El are rolul de a gestiona functionarea componentelor hardware ale sistemului de calcul, de a coordona si controla executia programelor si de a permite comunicarea utilizatorului cu sistemul de calcul. Folosirea hardware-ului unui sistem de calcul ar fi dificila si ineficienta in lipsa unui sistem de operare. Sistemul de operare este componenta software care coordoneaza si supravegheaza intreaga activitate a sistemului de calcul si asigura comunicarea utilizatorului cu sistemul de calcul, trebuind sa fie capabil sa realizeze o interfata intre calculatorul propriu-zis si utilizator El este interpretul cerintelor utilizatorului, exprimate intr-un limbaj de comanda, executand aceste cerinte prin intermediul instructiunilor masina.

Sistemele de operare au aparut si evoluat in directa legatura cu arhitectura sistemelor electronice de calcul: aparitia de noi dispozitive hardware a provocat dezvoltarea sistemelor de operare, dupa cum si cresterea performantelor sistemelor de operare a determinat imbunatatirea parametrilor hardware.

La primele calculatoare electronice programatorul era si operator prin intermediul consolei. Acesta era asistat de un rudiment de sistem de operare sub forma unor mici programe, in format binar, aflate pe suporturi de hartie care erau incarcate atunci cand era nevoie. Desigur era o folosire ineficienta a calculatorului intrucat unitatea centrala (care era foarte scumpa) nu lucra in timpul cand programatorul/operator gandea ce sa faca in continuare sau executa diferite manevre. Ideea reducerii timpului de asteptare a condus la introducerea unor concepte noi, ce s-au finalizat cu aparitia sistemelor de operare.

Primele sisteme de operare asigurau executarea secventiala pe loturi de programe (batch-processing) in regim de monoprogramare. Ele asigurau automatizarea unor lucrari repetitive, oricare ar fi programele de executat (de exemplu eliberarea zonelor de memorie ocupate, verificarea amplasarii corecte a fisierelor cerute pe suporturile din unitatile periferice, asigurarea ca unitatile periferice sunt gata pentru lucru etc.). Incredintand calculatorului sarcina coordonarii propiilor sale lucrari s-a ameliorat viteza de lucru si siguranta functionarii. De asemenea, executia unui program poate determina aparitia unor erori sau incidente (de exemplu lipsa hartiei la imprimanta, lipsa dischetei in unitate etc.). Multe din aceste incidente sunt repetitive si se poate incredinta calculatorului reperarea, semnalarea lor operatorului si in unele cazuri, tratarea lor dupa o solutie programata.

In multiprogramare problemele se complica si mai mult cand in memorie coexista simultan mai multe programe ce trebuie executate. Sincronizarea lucrarilor trebuie realizata la nivelul microsecundelor si nu poate fi atribuita operatorului uman. Ea este realizata prin programe si inclusa in sistemul de operare.

Caracteristicile sistemelor de operare

Un sistem de operare performant trebuie sa posede urmatoarele atribute:

Timp de raspuns exprima durata intervalului delimitat de lansarea unei cereri de serviciu si achitarea acesteia de sistem.

Simultaneitatea utilizarii: exprima gradul in care un sistem poate lucra in acelasi timp pentru mai multi utilizatori sau sa execute mai multe lucrari ale aceluiasi utilizator.

Utilitate: sa satisfaca toate cerintele utilizatorului asigurand o interfata facila cu programele de aplicatii.

Generalitate: sa poata raspunde corect la toate cerintele formulate si deci sa permita rezolvarea unor probleme cat mai variate ale utilizatorului.

Eficienta: sa asigure utilizarea optima a resurselor fizice si logice ale sistemului de calcul.

Transparenta si vizibilitate: capacitatea de a permite utilizatorilor sa obtina anumite informatii despre modul cum opereaza sistemul, informatii suplimentare care pot duce la obtinerea unei utilizari mai eficiente.

Flexibilitate: posibilitatea modificarii sistemului de operare in functie de cerintele utilizatorului.

Opacitate: din punct de vedere al utilizatorului trebuie sa existe numai necesitatea de cunoastere la nivel de interfata, fara a patrunde la structurile inferioare, care pentru utilizator reprezinta "cutia neagra" a sistemului de operare.

Securitate: sistemul de operare trebuie protejat impotriva unor incercari voluntare sau involuntare de distrugere prin programele utilizatorilor.

Integritate:  sistemul de operare impreuna cu aplicatiile concepute pentru el trebuie sa poata comunica cu alte sisteme de operare sau cu programe concepute sub alte sisteme de operare. Aceasta calitate este cu adevarat pusa in valoare in cazul lucrului in retelele de calculatoare.

Capacitate: posibilitatea sistemului de operare de a suplini unele facilitati necesare, dar care nu pot fi realizate fizic datorita unor restrictii hardware.

Fiabilitate si disponibilitate: capacitatea sistemului de operare de a cadea foarte rar in pana, de a izola eventualele erori ce pot apare si de a continua activitatea in conditii de capacitate si eficienta redusa.

Serviabilitatea: posibilitatea sistemului de operare de a furniza utilizatorului informatiile necesare pentru o depanare cat mai rapida a programelor.

Extensibilitate: adaugarea de noi facilitati care sa tina pasul cu cerintele utilizatorilor.

Interoperabilitatea: sistemul de operare trebuie sa admita accesul la structurile de date care au fost construite sub un alt sistem de operare. Pentru a permite integrarea si interoperabilitatea au fost definite standarde internationale privind specificatiile unui sistem de operare.

Pentru a fi acceptat de utilizator un sistem de operare trebuie sa indeplineasca urmatoarele conditii

sa fie usor de utilizat;

sa necesite resurse hardware minimale;

sa existe un numar cat mai mare de aplicatii care sa ruleze sub acel sistem de operare;

sa aiba un cost de achizitie si de intretinere cat mai scazut.

Clasificarea sistemelor de operare

In practica sunt utilizate numeroase sisteme de operare, fiind acceptate mai multe criterii de grupare a acestora. Cel mai adesea clasificarile au in vedere: configuratiile calculatoarelor pe care sunt instalate, gradul de partajabilitate a resurselor, tipurile de interactiuni permise si organizarea interna a programelor componente, numarul prelucrarilor executate

Dupa configuratiile hardware pe care le deservesc, sistemele de operare pot fi:

a.       Sisteme de operare pentru calculatoare medii/mari (mainframe-uri);

b.      Sisteme de operare pentru minicalculatoare;

c.       Sisteme de operare pentru microcalculatoare.

Sistemele de operare pentru mainframe-uri se caracterizeaza prin posibilitati de lucru seriale si/sau interactive, multitasking, sunt sisteme de operare puternice care pot gestiona lucrul cu un numar mare de periferice, orientate pentru prelucrari complexe si pentru volume mari de date si dispun de un limbaj de comanda pentru utilizatori specializati.

Sistemele de operare pentru minicalculatoare folosesc cu prioritate tehnicile time-sharing si multiprogramare, permitand partajarea resurselor pentru lucrul interactiv multiutilizator si planificarea unitatii centrale pentru servirea tuturor utilizatorilor. Ele 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; sunt orientate pentru lucrul cu mai multi utilizatori, oferind un sistem complex de protectie a informatiei sunt orientate pentru lucrul cu multe terminale, putand indeplini functia de concentrator de date.

Sistemele de operare pentru microcalculatoare sunt cele mai folosite la ora actuala, deoarece pot fi achizitionate intr-o configuratie minima, la un pret accesibil utilizatorilor si sunt usor de exploatat. Pot fi instalate atat pe sisteme de calcul individuale, cat si pe sisteme de calcul cuplate in retea. Ele 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;

2. Dupa gradul de partajare a resurselor sunt:

a.       Sisteme de operare monoutilizator;

b.      Sisteme de operare multiutilizator;

Sistemele de operare monoutilizator sunt cele mai simple sisteme de operare si permit executarea la un moment dat, a unui singur program care ramane activ in memoria interna, de la lansare si pana la terminarea sa. In cazul unor sisteme de calcul medii/mari, aceste sisteme de operare admit in plus tehnica swapping (transfer date), prin care un program este executat pe portiuni, alternand momentele de prelucrare si de stocare in memoria interna, cu cele de evacuare pe disc. In timpul evacuarii, in memoria interna este incarcat un alt program care si el se supune tehnicii swapping.

Sistemele de operare multiutilizator au in vedere partajarea memoriei, a unitatii centrale de prelucrare, a perifericelor sau a altor tipuri de resurse, intre utilizatorii conectati la un moment dat. Aceste sisteme lucreaza in multiprogramare folosind si tehnici de gestiune si protectie a utilizatorilor.

Dupa tipurile de interactiuni permise, sistemele de operare se clasifca in:

a.       Sisteme de operare seriale;

b.      Sisteme de operare interactive;

c.       Sisteme de operare in timp real.



Sistemele de operare seriale sunt acele sisteme de operare pentru care gradul de interactiune cu utilizatorul, in timpul prelucrarilor, este practic 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 (operatori de calculator). In timpul executiei lucrarii sale, utilizatorul furnizeaza datele care se prelucreaza odata cu formularea cererii de prelucrare si primeste rezultatele prelucrarii la incheierea executiei.

Sistemele de operare interactive permit comunicarea directa intre utilizator si sistemul de calcul, prin intermediul unui limbaj dedicat acestui scop (limbajul de comanda al sistemului de operare sau interfata grafica utilizator), utilizatorul putand interveni in timpul executiei programului. In functie de unele rezultate intermediare, utilizatorul poate decide modul de continuare a activitatii. Cu aceste sisteme este posibila si gestionarea terminalelor de teletransmisiuni cuplate la un calculator gazda sau organizate intr-o retea de calculatoare. Sistemele de operare interactive pot fi monouser sau multiuser.

Exemplu: Windows este un sistem interactiv monouser; Unix este un sistem interactiv multiuser.

Sistemele de operare in timp real permit deservirea, in timp prestabilit, a fiecarei operatii cerute de utilizator.

Dupa numarul prelucrarilor executate simultan, exista:

a.       Sisteme de operare monotasking;

b.      Sisteme de operare multitasking.

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:

Sistemele de operare monotasking executa un singur task (lucrare, sarcina, program) la un moment dat; ele 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.

Sistemele de operare multitasking sunt acele sisteme de operare care asigura executia concurenta a mai multor procese care exista concomitent in sistem.

Fata de sistemele de operare monotasking, aceste sisteme trebuie sa asigure si partajarea timpului intre programele ce se executa simultan, precum si gestiunea alocarii resurselor sistemului de calcul, atat hardware cat si software.

Exemplu: sistemele de operare Windows, Unix sunt sisteme multitasking.

In ceea ce priveste evolutia sistemelor de calcul, in prezent se constata 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.

De asemenea, se urmareste dezvoltarea de sisteme de operare portabile, adica 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. Un exemplu este familia sistemelor de operare Windows care cuprinde 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.

Structura unui sistem de operare

Pentru a raspunde rolului de interfata intre utilizatori si partea hardware a sistemului electronic de calcul si pentru a gestiona eficient resursele, majoritatea sistemelor de operare au in structura lor doua componente majore: programe de comanda-control si programe de servicii.

Componenta de comanda si control cuprinde programe ce au rolul de a asigura utilizarea eficienta a resurselor sistemului de calcul. Resursele sistemului de calcul pe care sistemul de operare le pune la dispozitia utilizatorului se constituie din totalitatea componentelor fizice sau logice ale sistemului de calcul, care pot fi solicitate, la un moment dat, in timpul executiei unui program.

Functiile componentei de comanda si control ale sistemului de operare sunt:

  • planificarea, lansarea si urmarirea executiei programelor;
  • gestionarea resurselor sistemului de calcul;
  • depistarea si tratarea evenimentelor deosebite care apar in timpul executiei programelor;
  • asigurarea protectiei informatiilor manevrate de diverse programe (aceste programe pot fi ale sistemului de operare sau programe utilizator).

Componenta de comanda si control a sistemului de operare include:

  • nucleul sistemului de operare, cu functia de coordonare a activitatii sistemului de calcul si a celorlalte componente ale sistemului de operare. Aceasta componenta este rezidenta in memoria interna pe toata durata functionarii sistemului de calcul si se mai numeste monitorul rezident al sistemului de operare.
  • cate o componenta de gestionare pentru fiecare tip de resursa din sistem.

Astfel, in categoria programelor de comanda si control intra:

Programe de gestiune intreruperi care reprezinta un ansamblu de subrutine activate la aparitia unui anumit semnal fizic de intreruperi.

Sistemul de intreruperi reprezinta o combinatie de instrumente hardware si software care asigura comunicarea intre componentele functionale elementare ale unui sistem de calcul prin intermediul intreruperilor. Intreruperea reprezinta suspendarea temporara a executiei procesului care are alocata UCP, in momentul in care apare un eveniment in sistem, in scopul tratarii acestui eveniment de catre UCP. Pentru ca o intrerupere sa fie functionala, este necesar sa poata fi indeplinite doua conditii:

UCP sa dispuna de capacitatea de a fi intrerupta, adica sa fie posibil ca UCP sa fie alocata altui proces, inainte de incheierea executiei procesului caruia ii este alocata, la un moment dat;

sa existe posibilitatea de a conserva parametrii procesului suspendat, pentru ca acesta sa poata fi continuat ulterior, din punctul in care a fost intrerupt.

Programe de gestiune procese care creeaza procese si rezolva probleme privind cooperarea si concurenta acestora.

Programe de gestiune a memoriei care aloca necesarul de memorie interna solicitat de procese si asigura protectia memoriei interprocese.

Proceduri de tratare a intrarilor si iesirilor la nivel fizic care asigura efectuarea operatiunilor elementare de I/E cu toate tipurile de periferice din sistem, realizand, unde este posibil, desfasurarea simultana a uneia sau mai multor operatiuni de I/E cu prelucrarile realiozate de procesorul central.

Programe de gestiune a fisierelor care reprezinta o colectie de module prin care se asigura deschiderea, inchiderea si accesul utilizatorului la datele din fisiere.

Programe de planificare a lucrarilor si de alocare a resurselor.

Programe de gestiune tehnica a sistemului de operare care tin evidenta erorilor hardware si la cerere furnizeaza informatii asupra gradului de utilizare a componentelor sistemului electronic de calcul.

Programe de statistica a sistemului de operare care tin evidenta utilizatorilor, a lucrarilor executate de acestia si a resurselor consumate.

Programele de servicii asigura sub supravegherea programelor de control, dezvoltarea programelor de aplicatii si exploatarea celorlalte facilitati oferite de sistemul de operare.

Componenta de servicii a sistemului de operare s-a dezvoltat odata cu cerintele utilizatorilor sistemelor de calcul. Gradul de accesibilitate al unui sistem de calcul, ca si complexitatea sarcinilor pe care utilizatorul le poate rezolva cu ajutorul lui sunt influentate de existenta si eficienta programelor de sistem incluse in componenta de servicii. Programele de servicii se executa sub supravegherea programelor de comanda si control, ca orice program de aplicatie.

Aceasta componenta ofera servicii diferite, de la un sistem de operare la altul, sau chiar intre variante diferite ale aceluiasi sistem de operare.

Programele de serviciu pot fi grupate astfel:

Programele translatoare traduc programele sursa in programe obiect (asambloare/macroasambloare, compilatoare, interpretoare) ale caror instructiuni in limbaj masina pot fi executate de sitemul de calcul. O succinta comparatie dintre asamblor, compilator si interpretor indica urmatoarele:

Asamblorul este determinat de limbajul masina, specific fiecarui sistem de calcul, iar compilatorul este specific unui anumit limbaj, independent de sistemul de calcul;

Asamblorul usureaza scrierea programelor folosind simboluri in locul limbajului masina, in timp ce compilatorul ofera posibilitatea scrierii de programe pentru orice sistem de calcul ce dispune de compilatorul respectiv;

Asamblorul translateaza o definitie simbolica a programului sursa intr-o definitie din programul obiect, in timp ce compilatorul translateaza mai multe definitii din programul obiect. Ca urmare, memoria este mai putin ocupata de asamblor, dar compilatorul este mai puternic datorita includerii intr-o definitie-sursa a mai multor definitii-obiect;

Executia repetata a unui program este facilitata de compilator care realizeaza translatarea o singura data, in timp ce interpretorul translateaza de fiecare data programul.

Editoarele de legaturi prelucreaza programul obiect rezultat in urma compilarii, transformandu-l in program executabil. Editorul de legaturi realizeaza urmatoarele functii:

stabilirea legaturii intre module in vederea constituirii programului executabil;

includerea in programul executabil a unor componente din bibliotecile sistem;

includerea unor componente ale sistemului de operare care faciliteaza punerea la punct si depanarea programelor utilizator.

Programele de incarcare sunt programe ce asigura incarcarea programelor executabile in memoria interna, initializand executia. Incarcarea se poate face in mai multe variante:

imediat dupa translatare, cand incarcatorul este inclus in compilator (compilatoare de tip LOAD and GO);

in momentul link-editarii, cand incarcatorul este inclus in editorul de legaturi;

dupa link-editare, cand incarcatorul este independent

Programele de depanare ofera mijloace de verificare si corectare a operatiilor realizate de programul curent:

suspendarea executiei in punctele prestabilite;

realizarea de modificari si corectii aditionale la reluarea programului;

examinarea si modificarea, dupa caz, a programului existent in memoria interna.

Editoarele de texte permit editarea textelor, crearea si actualizarea programelor, a fisierelor de date, fisierelor de comenzi etc.

Programele de bibliotecare asigura crearea, gestionarea si intretinerea bibliotecii sistem (formata din module ale sistemului de operare) si a bibliotecilor utilizator. Bibliotecile de programe sunt colectii de programe organizate sub forma unor fisiere partajate in scopul utilizarii lor ulterioare. Bibliotecarul este apelat implicit de catre sistemul de operare in etapele de punere la punct a programelor si explicit de catre utilizator prin comenzi specifice limbajului de comanda. Ca exemple de bibliotecare putem aminti: LBR - sub MS-DOS, AR (Archive) - sub UNIX.



Mediile de programare permit automatizarea procesului de construire si testare a programelor. In componenta lor intra un editor de texte, un compilator, un editor de legaturi, un depanator.

Suprafetele de operare ofera o gama variata de servicii ce inlesnesc executarea rapida a lucrarilor de rutina. Intra in aceasta categorie programe de serviciu de tipul: Norton Commander, Win Commander, Windows Explorer.

Un sistem electronic de calcul poate sa lucreze in doua moduri:

modul supervizor (kernel) cand controlul este detinut de catre sistemul de operare,

modul utilizator (user) cand controlul este detinut de un program de aplicatii.

Obiectivele si functiile sistemelor de operare

Sistemul de operare apare ca un ansamblu de programe destinat sa raspunda la urmatoarele obiective:

usurarea utilizarii sistemului electronic de calcul prin preluarea lucrarilor de rutina, repetitive, precum si printr-un dialog suplu utilizator-sistem (prin intermediul unui limbaj de comanda);

utilizarea eficienta a resurselor sistemului electronic 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.

Apropierea utilizatorului de calculator solicita o interfata om‑calculator prietenoasa si, in acelasi timp, performanta. Pana la Windows limbajul de comanda al sistemelor de operare asigura un dialog de tip text (linie de comanda), uneori greoi si dificil de asimilat. Produse‑program ca Norton Commander au asigurat imbunatatirea dialogului prin faptul ca linia de comanda se construia prin selectii ale componentelor aparute in panourile de pe ecran. Primele versiuni WINDOWS asigurau o interfata grafica performanta pentru dialogul om‑calculator, dar ele nu inlocuiau sistemul de operare MS-DOS, ci reprezentau extensii ale acestuia.

Preocuparile de imbunatatire a interfetei om‑calculator au avut in vedere urmatoarele obiective:

suprimarea limbajului de comanda din sistemul de operare;

utilizarea unei interfete standardizate, oricare ar fi calculatorul utilizat;

asigurarea unei interfate suficient de evolutiva pentru a lua in considerare noutatile versiunilor ulterioare ale sistemului de operare;

interfata destul de facila pentru a putea fi utilizata de oricine, de la expert la profan.

Interfata WIMP[3] (Windows, Icones, Mouse, Pull‑down menus) raspunde acestor obiective prin componentele care-i dau denumirea: ferestre, icon-uri (pictograme), utilizarea mouse-ului si a meniurilor derulante. Aceast tip de interfata a fost realizat prima data de firma XEROX la PARC (Palo Alto Research Center), California. Ideea a fost preluata de Steve Jobs si a fost aplicata la calculatoarele LISA si apoi la MacIntosh. Principiul de baza consta in stabilirea unui dialog om‑calculator prin intermediul obiectelor afisate in fereastra activa. Fiecare obiect are asociate anumite comenzi care pot fi apelate cu ajutorul mouse-ului. Alte facilitati ale interfetei WIMP sunt:

ferestre tip termometru care indica modul cum progreseaza prelucrarea in curs (vezi comanda Copy sub Windows);

ferestre de alerta, cu mai multe nivele. Orice actiune ce prezinta un risc de pierdere a informatiei este sistematic supusa confirmarii utilizatorului (vezi stergerea fisierelor in Word).

Rolul sistemului de operare este de a asigura utilizarea eficienta a resurselor sistemului electronic de calcul, facilitand sarcinile utilizatorului. 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. De asemenea, el trebuie sa asigure protectia intre utilizatori acolo unde sistemul de operare permite accesul concomitent al mai multor utilizatori (programe) la resursele sistemului de calcul, precum si protectia 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.

Sistemul de operare poate trata erorile 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 erorile logice care pot sa apara in timpul executarii unui program (de exemplu, operatii interzise, ca impartirea la 0).

Sistemele de operare pot avea si functia de asistenta  on line , cunoscuta ca Help-ul sistemului de operare, precum si functia de tipul  plug and play  care ofera facilitati de autodetectie a echipamentelor nou instalate in sistem si permite reconfigurarea hardware, cu usurinta, a sistemului, ca si notificarea schimbarii configurarii sistemului, de exemplu prin caderea unui echipament din sistem

Sistemul de operare indeplineste si o serie de functii auxiliare, cum ar fi: contabilizarea activitatii sistemului de calcul, jurnalizarea comenzilor adresate interpretorului de comenzi al sistemului de operare, jurnalizarea erorilor, etc.

Operatiunile realizate de sistemele de operare pentru a-si realiza obiectivele pot fi grupate astfel

gestiunea lucrarilor;

gestiunea intrarilor si iesirilor;

gestiunea fisierelor;

comunicarea cu utilizatorul.

Gestiunea lucrarilor

O lucrare reprezinta un ansamblu de activitati delimitate prin comenzi specifice limbajului de comanda. Lucrarea cuprinde mai multe etape care se succed intr-o ordine prestabilita de utilizator. O etapa din lucrare poate fi descompusa la nivel inferior in procese care, in functie de logica lucrarii, se pot executa secvential sau concurent. Divizarea lucrarilor in procese asigura o utilizare mai eficienta a sistemului electronic de calcul, dar determina cresterea complexitatii sistemului de operare prin adaugarea de noi functii: alocarea resurselor la nivel de proces, sincronizarea proceselor, transmiterea informatiilor la procese.

Gestiunea lucrarilor este asigurata de un program specific (supervizor, monitor) care realizeaza gestiunea resurselor fizice ale calculatorului si coordonarea generala a derularii lucrarilor. Acest program coordoneaza si controleaza orice activitate derulata de alte programe ale sistemului de operare, indeplinind doua subfunctii esentiale:

gestiunea sarcinilor de indeplinit care determina care sunt programele sau modulele de program ce se vor executa;

gestiunea resurselor (mijloacelor) necesare executiei unui program incarcat in memoria principala.

Fiecare lucrare dispune la un moment dat de un spatiu de memorie si trebuie sa se supravegheze ca nici o alta sarcina sa nu patrunda in partitia alocata. Exista mai multe sisteme de gestiune a memoriei: partitii fixe, partitii variabile, paginare etc.

Exemplu: O cerere prioritara pornind de la un terminal poate obliga supervizorul sa elibereze o zona de memorie, deci sa suspende executia in curs si sa evacueze unele programe in memoria auxiliara, pastrand imaginea exacta din momentul aparitiei cererii.

Gestiunea intrarilor/iesirilor

Echipamentele periferice sunt foarte diverse (terminal, unitati de discuri, imprimante etc.) si functioneaza cu performante diferite de ale unitatii centrale. Schimburile de informatii intre periferice si unitatea centrala sunt intermediate de unitatile de intrare/iesire (canale, memorii tampon etc.) si necesita numeroase comenzi si controale succesive prin intermediul sistemului de operare.

Gestiunea intrarilor/iesirilor joaca un rol important in aplicatiile de gestiune. In practica, in momentul cand prin programul utilizatorului se solicita o operatie de I/E, gestionarul de I/E (numit adesea IOCS-INPUT OUTPUT CONTROL SYSTEM sau BIOS - Basic Input Output System) preia sarcinile legate de citirea si scrierea informatiilor pe unitatile periferice. In multe sisteme de operare gestionarul de I/E ofera posibilitati complementare cum sunt: gestiunea independenta a I/E, gestiunea mesajelor etc.

De exemplu, in sistemele de operare UNIX si MS‑DOS exista facilitati SPOOLing pentru listarile la imprimanta (comanda externa PRINT din MS‑DOS).

Gestiunea independenta a I/E (SPOOL-Simultaneous Peripheral Operations On Line) are la baza principiul separarii totale a operatiilor de I/E de operatiile de prelucrare. Toate datele de intrare sunt stocate pe disc magnetic pe masura preluarii lor si toate datele de iesire vor fi stocate tot pe disc si vor fi, mai tarziu, imprimate. In acest timp, unitatea centrala efectueaza alte lucrari.

Din tehnica SPOOL decurge un dublu avantaj:

pentru unitatea centrala operatiile de I/E se realizeaza numai printr-un schimb unic cu unitatea de discuri magnetice, iar viteza de lucru este ridicata;

daca un periferic de iesire este la un moment dat indisponibil prelucrarea va fi executata in continuare deoarece iesirea va avea loc pe disc.

Gestiunea mesajelor se aplica la calculatoarele interconectate in retea sau la calculatoarele care lucreaza cu mai multe terminale. Mesajele trebuie sa fie controlate si, eventual, aranjate intr-un fir de asteptare pus la dispozitia programului coordonator.

In aplicatiile economice unde operatiile de I/E sunt numeroase, calitatea gestiunii I/E prin sistemul de operare este un criteriu important al eficientei sistemului.

Gestiunea fisierelor

Sistemul de operare, programele utilizatorului sunt stocate si manipulate de sistemul electronic de calcul cu ajutorul fisierelor. Sistemul de operare simplifica accesul la fisiere asigurand totodata si protectia datelor.

Anumite fisiere sunt prezente permanent in memoria principala si se numesc rezidente in memorie (este vorba de nucleul sistemului de operare). Alte fisiere sunt memorate pe suporturi magnetice si sunt apelate in memoria interna numai cand sunt necesare (celelalte componente ale sistemului de operare, fisierele de date etc.). De aici apar probleme privind partajarea memoriei intre diferite fisiere care trebuie sa fie usor apelate in caz de nevoie si partajarea fisierelor intre mai multi utilizatori pe baza unor prioritati de acces.

Sistemul de gestiune al fisierelor (gestionarul de fisiere) este o componenta a sistemului de operare care realizeaza urmatoarele activitati:

Gestiunea fisierelor stocate in memoriile auxiliare. De exemplu, in sistemul de operare Windows fiecare utilizator dispune de o lista a fisierelor sale intr-un catalog (folder). Fiecare fisier este identificat printr-un nume si are anumite atribute (de exemplu, fisier read-only, fisier sistem, fisier ascuns aplicatiilor obisnuite), sunt stabilite drepturi de partajare a fisierului, de exemplu in cadrul unei retele de calculatoare, sunt oferite informatii de adresa care permit localizarea fisierului pe disc, informatii privind tipul fisierului, informatii despre date calendaristice, de exemplu: data cand a fost creat fisierul, data ultimei actualizari, data ultimei consultari

Protectia datelor. Gestiunea drepturilor de acces permite protejarea fisierelor contra modificarilor neautorizate sau contra distrugerilor datorate altor utilizatori. Protectia contra distrugerilor accidentale, datorate incidentelor hardware si software, se realizeaza prin copii de siguranta. De exemplu, fisierele backup (.BAK) retin penultima versiune a unui fisier. Uneori se recurge la salvarea fisierelor pe suporturi magnetice sau optice in scopul pastrarii acestora.

Gestiunea bibliotecilor de programe. De obicei un program este realizat pentru a fi executat de mai multe ori. Dupa obtinerea formatului executabil programul este stocat intr-o biblioteca de programe alaturi de altele, inclusiv cele ale sistemului de operare care nu sunt rezidente in memorie. Aceasta biblioteca este stocata, in general, pe discuri magnetice. Simpla precizare a numelui programului determina incarcarea sa in memorie.

Dialogul cu utilizatorii

Dialogul utilizator-calculator se realizeaza prin intermediul unor linii de comanda ce folosesc comenzi definite strict printr-un limbaj de comanda. Cu ajutorul limbajului de comanda utilizatorul specifica:

delimitarea lucrarilor;

structura lucrarilor;

necesarul de resurse fizice;

informatii privind seturile de date asociate lucrarii.

Fiecare comanda este recunoscuta de programe specializate numite interpretoare de comenzi. Aceste programe declanseaza operatiile curente activand alte module ale sistemului de operare. Comunicarea om-calculator se realizeaza si prin afisarea unor mesaje de raspuns pe ecran.

Un alt aspect al comunicatiei se refera la legatura intre programele utilizatorului si sistemul de operare. Modalitatile curente ale acestui dialog depind de tipul limbajului de programare utilizat si de tipul sistemului de operare. Ca regula generala aceste functii nu sunt standardizate decat pentru un limbaj de programare sub un sistem de operare. Aceasta explica de ce un program nu este executabil decat pe un calculator ce are sistemul de operare pentru care a fost scris programul.

2. Tehnici de exploatare a calculatoarelor



Tehnica de exploatare a unui sistem de calcul se refera la modalitatile utilizate de sistemul de operare pentru planificarea executiei programelor si pentru gestionarea resurselor solicitate.

Deoarece sistemele de operare prezinta mari diferente de la o categorie la alta de sisteme de calcul pe care sunt folosite, utilizatorul trebuie sa fie in masura sa selecteze acel sistem care satisface cel mai bine cerintele sale de utilizare. Alegerea unui sistem de operare depinde, printre altele, si de:

metodele de lucru folosite pentru alocarea memoriei (monoprogramare, multiprogramare);

tehnicile aplicate in planificarea executarii lucrarilor (interactive, neinteractive).

Monoprogramarea

Monoprogramarea reprezinta o tehnica de exploatare pentru sistemele seriale, obiectivul ei fiind automatizarea lansarii in executie a lucrarilor (programelor). Ea presupune organizarea si executia secventiala a lucrarilor pe un sistem de calcul. Planificarea lucrarilor se realizeaza strict secvential intr-o ordine prestabilita, in loturi de lucrari. Lansarea in executie a unei lucrari se face, in cadrul lotului din care face parte, secvential, adica respectand conditiile:

  • o lucrare se lanseaza in executie numai dupa incheierea executiei lucrarii care o precede;
  • ordinea de lansare in executie a lucrarilor este strict ordinea in care se afla lucrarile in lotul de lucrari;
  • la un moment dat, toate resursele sistemului sunt puse la dispozitia lucrarii aflate in executie.

Acest mod de organizare a prelucrarilor se numeste prelucrare batch (pe loturi), iar sistemele de operare care utilizeaza aceasta tehnica de exploatare se numesc sisteme de operare batch (BPS - Batch Processing Systems).

Lansarea in executie a lucrarilor din lotul de lucrari se face automat, sub controlul componentei sistemului de operare numita monitor de inlantuiri.

Dezavantajele acestei tehnici sunt reprezentate de timpul mare de raspuns al sistemului (toti utilizatorii primesc rezultatul prelucrarilor numai dupa executarea intregului lot) si eficienta scazuta in utilizarea resurselor sistemului (toate resursele sunt afectate, pe rand, cate unei singure lucrari in executie).

Monoprogramarea, in context mono-utilizator, este modalitatea curenta de lucru a sistemului de operare pentru calculatoarele personale. Sistemul de operare asigura in acest caz o gestiune sumara a lucrarilor, pregatirea memoriei, incarcarea programelor, tratarea intreruperilor etc. Protectia datelor este relativ simpla pentru ca nu exista decat un singur program al utilizatorului prin care se scrie sau se citesc fisierele.

Multiprogramarea

Multiprogramarea (multiprogramming) reprezinta modul de exploatare a unui sistem de calcul care permite existenta simultana in memoria interna a mai multor programe care se executa concurent, in partitii fixe de memorie , cu restrictia ca ele sa nu foloseasca in acelasi timp aceeasi resursa. Obiectivul urmarit in cadrul multiprogramarii consta in maximizarea volumului de lucrari care trec prin sistem si minimizarea timpului petrecut de o lucrare in sistem.

Timpul de inactivitate al unitatii centrale, impus de perioadele de asteptare, este redus substantial daca in memoria interna ar putea coexista simultan mai multe programe ce solicita unitatea centrala atunci cand aceasta asteapta terminarea unei operatii de intrare/iesire pentru lucrarea curenta in executie. Executia mai multor programe in multiprogramare pare simultana (se simuleaza n procesoare pe un singur procesor) desi, de fapt, la un moment dat este activ un singur program.

In multiprogramare sistemul de operare trebuie sa asigure administrarea cererilor de I/E si planificarea firelor de asteptare pentru programele concurente. De asemenea, este necesar un mecanism de protectie intre lucrari care sa permita executia unei lucrari, fara afectarea celorlalte existente in memoria interna, precum si o gestiune eficienta a resurselor fizice si logice solicitate de lucrarile in executie.

Sistemele de calcul care utilizeaza tehnica multiprogramarii sunt prevazute cu o componenta a sistemului de operare numita monitor de planificare a lucrarilor care alege, dintr-un grup de programe, in ordinea sosirilor, pe acelea potrivit carora timpul neocupat al unitatii centrale sa fie minim.

La sistemele de operare pentru microcalculatoare multiprogramarea se refera la facilitatea de lucru multitasking.

Multiprelucrarea

Daca n programe se gasesc in acelasi timp in memoria interna si partajeaza resursele sistemului de calcul, atunci sistemul este exploatat in multiprogramare; daca in multiprogramare se folosesc n procesoare, atunci sistemul este exploatat in multiprelucrare. Se poate astfel aprecia ca multiprogramarea este un concept software, iar multiprelucrarea un concept hardware.

Un sistem de calcul este exploatat in multiprelucrare daca cel putin doua unitati centrale de prelucrare lucreaza in paralel. De remarcat ca in cadrul sistemelor exploatate in multiprelucrare, unitatea centrala de prelucrare poate executa instructiunile unui singur program, dar si instructiuni din programe diferite.

Sistemele master/slave sunt sisteme care lucreaza prin tehnica multiprelucrarii. Unul dintre obiectivele multiprelucarii este acela de a degreva o unitate centrala de prelucrare de task-uri specifice ca: tabelari de date, editari de texte si intretinerea colectiilor de date (fisiere, baze de date). Pentru a realiza acest deziderat, la o unitate centrala de prelucrare poate fi cuplata o alta unitate centrala de prelucrare destinata coordonarii activitatilor din sistem (master). Masterul coordoneaza toate operatiunile de I/E, in timp ce slave-ul executa operatii complexe; in acest caz master-ul este referit ca front-end processor, avand rolul de interfata intre slave si dispozitivele de I/E. Tot masterul se poate utiliza ca interfata intre slave si colectii voluminoase de date existente in memoria externa, situatie in care este referit ca back-end processor, fiind responsabil de intretinerea bazei de date.

Prelucrari SPOOLING

Prelucrarea spooling (Simultaneous Peripheral Operations On-line) reprezinta un mod eficient de exploatare a sistemelor de calcul seriale, bazat pe principiul separarii operatiilor de intrare de operatiile de iesire si de restul prelucrarilor si pe executarea lor in paralel. Executarea lucrarilor se face in multiprogramare.

Aceasta tehnica consta in organizarea de zone tampon de memorie (buffers) pentru realizarea de dispozitive periferice de intrare/iesire virtuale care permit introducerea de lucrari inainte ca acestea sa fie executate, redarea rezultatelor la imprimanta in timpul executiei altor lucrari, planificarea executiei lucrarilor pe baza unui sistem de prioritati prestabilite, fara a se tine seama de ordinea de sosire.

Pentru utilizarea tehnicii SPOOLING este nevoie de o memorie externa de capacitate mare, direct adresabila, unde sa fie organizate perifericele virtuale.

Efectele utilizarii tehnicii SPOOLING sunt:

  • cresterea randamentului de exploatare a unui sistem serial cu 40-50%, in primul rand prin scaderea timpilor de asteptare ai UCP
  • cresterea randamentului de utilizare a echipamentelor I/O; acestea sunt utilizate in reprize, dar intr-o repriza sunt utilizate la capacitatea maxima.

De exemplu, tehnica SPOOLING se poate folosi sub Windows pentru listarile la imprimanta, utilizand comanda Print care poate fi executata in paralel cu alte lucrari in executie, conform tehnicii de exploatare in multiprogramare.

Prelucrari in timp real

Sistemele de operare in timp real sunt sisteme care permit sa se urmareasca si sa se controleze evenimente din mediul extern sistemului de calcul, in momentul producerii acestora, preluand datele de intrare de la locul producerii lor si furnizand informatii de iesire la locul desfasurarii evenimentelor. Avantajul utilizarii unui sistem in timp real este capacitatea sa de a furniza la timp informatii intr-un mediu de date care se modifica foarte rapid. Obiectivul principal al sistemelor in timp real este ca timpul de raspuns al sistemului sa fie suficient de scurt in raport cu procesul real care produce datele furnizate sistemului de calcul.

Exemple:

supravegherea unui sistem radar; supravegherea sistemului energetic, a unei instalatii chimice, timpul de raspuns trebuind sa fie la nivelul milisecundelor;

supravegherea unui furnal sau cuptor de tratamente termice, timpul de raspuns trebuie sa fie de 1‑2 secunde;

gestiunea in timp real a stocurilor de materiale, timpul de raspuns este cuprins intre 20‑30 secunde.

Sistemele in timp real sunt sisteme interactive multiuser. Ele trebuie sa realizeze prelucrarea concomitenta a intrarilor primite de la un mare numar de dispozitive de intrare. Prelucrarea fiecarei intrari se face prin generarea in sistem a unui proces.

Sistemele in timp real se pot clasifica in :

a) Sisteme in-line (sisteme de proces) - sunt sisteme in timp real cu ajutorul carora se realizeaza urmarirea unui proces (un proces de fabricatie, o reactie chimica, etc.). Timpul de raspuns se masoara in secunde.

b) Sisteme tranzactionale - sunt sisteme in timp real orientate pentru prelucrarea unui volum mare de date de aceeasi natura (de exemplu: evidenta vanzarilor intr-un mare magazin, eliberarea biletelor cu locuri rezervate, etc.). Datele sunt primite de sistemul de calcul de la terminale prin intermediul unor mesaje cu format fix, numite tranzactii. Timpul de raspuns se masoara in minute.

Exemplu : sistemele tranzactionale sunt utilizate pentru sisteme informatice bancare, pentru sisteme de urmarire operativa a productiei, sisteme de rezervare a locurilor la societati de transport aerian, feroviar, etc.

Sisteme de lucru multiutilizator

In sistemele multiutilizator mai multi utilizatori folosesc in acelasi timp acelasi calculator. Putem distinge mai multe situatii: sistem multiutilizator cu program comun, sistem time‑sharing, sistem multiutilizator cu multiprelucrare.

Sistemul multiutilizator cu program comun (multi-terminal sau multi-posturi) permite ca mai multi utilizatori, instalati la terminale diferite, sa execute acelasi program (de exemplu consultarea bazelor de date in retelele locale de calculatoare, sistemele de rezervare a locurilor in avion).

Sistemul de operare are ca preocupare principala asigurarea accesului si securitatii datelor partajate intre diferiti utilizatori. De exemplu, se blocheaza accesul la un fisier de zboruri in timp ce de la un terminal se face o rezervare.

Exploatarea in time-sharing (cu 'partajarea timpului') porneste de la un obiectiv asemanator cu exploatarea in multiprogramare: executarea concurenta a proceselor, cu partajarea resurselor sistemului de calcul, de aceasta data in cazul sistemelor interactive, multiuser. Obiectivul este reducerea timpului de raspuns al sistemului, pentru servirea cererilor cat mai multor utilizatori.

Tehnica de divizare a timpului (time-sharing) se bazeaza pe principiile divizarii timpului si partajarii resurselor intre mai multi utilizatori independenti. Se stabileste o cuanta de timp pentru fiecare utilizator, in care acesta dispune de toate resursele sistemului. In acest context, fiecare utilizator are impresia ca sistemul ii apartine in intregime. La originea sistemelor sta, in esenta, diferenta dintre timpul de gandire si de reactie al utilizatorului (relativ mare) si timpul afectat operatiunilor de intrare/iesire. Aceasta diferenta este folosita de sistemul de calcul pentru a executa alte programe aflate in stare "gata".

Unitatea centrala este partajata pe baza de cerere, planificarea executiei urmarind obtinerea unui timp de raspuns minim. Lucrarile nu au prioritati prestabilite, astfel ca acestea trebuie sa fie executate dinamic.

Sistemul de operare in regim de time-sharing trebuie sa raspunda urmatoarelor obiective:

sa asigure protectia datelor fiecarui utilizator, evitand distrugeri accidentale sau voluntare prin programele altor utilizatori;

sa asigure o repartizare echitabila a resurselor intre diferiti utilizatori astfel incat executia fiecarui program sa fie posibila.

In sistemele de operare time-sharing, gestiunea lucrarilor si gestiunea fisierelor devine foarte complexa. Asigurarea protectiei datelor (identificarea utilizatorilor, accesul la fisiere) sporeste considerabil complexitatea sistemului de operare.

Un sistem in time-sharing este sistemul de operare Unix.

Tehnica de prelucrare concurenta (parallel processes) ofera posibilitatea lansarii in executie a mai multor programe, asigurand un timp de raspuns redus si utilizarea eficienta a echipamentelor prin executarea pe scara larga a activitatilor concurente intre unitatea centrala si dispozitivele periferice, distribuirea si utilizarea simultana a datelor de mai multe programe in executie, comunicarea intre programele in executie.



Dodescu, G., Informatica, Editura Stiintifica si Enciclopedica, Bucuresti, 1987, p. 226

Boian, F. M. , Sisteme de operare interactive, Editura Libris, Cluj-Napoca, 1994, pp 73-76

Claviez, J., Informatique: les bases, Editions J.C.I. Inc., Montral, 1993, p. 130

Reix, R., Systmes d'information et management des organisations, Les Editions Foucher, Paris, 1990, p.53

O partitie de memorie trebuie sa fie o zona contigua de memorie, adica o zona de memorie formata numai din locatii de memorie adiacente. O partitie are o anumita lungime si o adresa fixa.





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2747
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved