Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Calculatoare


Qdidactic » stiinta & tehnica » informatica » calculatoare
Gestiunea proceselor si a procesoarelor - un proces se caracterizeaza prin



Gestiunea proceselor si a procesoarelor - un proces se caracterizeaza prin



Functia de baza a unui sistem de operare este sa gestioneze resursele sistemului de calcul. Cea mai importanta resursa aflata in administrarea acestuia este resursa procesor. Modul in care se realizeaza acest lucru de catre sistemul de operare va fi prezentat in cele ce urmeaza:


1. Gestiunea proceselor.

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. Gestiunea procesorului este privita ca o parte componenta a gestionarii proceselor.


Pentru a-si indeplini sarcinile, procesele au nevoie de resurse, cum ar fi: timpul de lucru al  UC (unitatea centrala), memorii, fisiere, dispozitive I/O. Apare evidenta necesitatea ca resursele sa fie utilizate in comun.


Un proces poate fi intrerupt in timpul executiei sale, intre etapele acestei executii.

Este posibil ca in sistem sa coexiste la un moment dat mai multe procese in executie, solicitand accesul concurent la resursele sistemului.


Un proces se caracterizeaza prin


- prelucrarile pe care le determina, in functie de setul de instructiuni (procedura) care se executa,



- contextul in care se executa si asupra caruia actioneaza, determinat de resursele care ii sunt alocate in fiecare moment, pe durata executiei sale.


Un proces se desfasoara in timp, intre:

initierea (generarea)  si distrugerea (incheierea) - adica scoaterea procesului din evidenta componentei de gestionare a proceselor si eliberarea memoriei interne alocate procesului.


Starile unui process


Starile prin care poate sa treaca un proces sunt:

- nelansat in executie, atunci cand procesul a fost generat dar nu a fost onorata inca cererea de lansare in executie a sa;

- pregatit pentru activare (READY) sau proces intrerupt; aceasta stare poate sa apara in doua cazuri:

cand cererea de lansare in executie a procesului a fost onorata, procesul a fost incarcat in memoria interna si este pregatit pentru activare,

cand un proces in executie a fost intrerupt si asteapta activarea sa, adica reluarea executiei sale din punctul in care a fost intrerupt; parametrii care descriu procesul in momentul intreruperii sale sunt memorati in vectorul de stare al procesului, pentru a permite continuarea acestuia in momentul reluarii sale;

- activ (RUN), cand procesul are alocat procesorul si sunt in curs de desfasurare prelucrarile aferente procesului;

- suspendat (blocat) sau proces

- in asteptare (WAIT), in cazul in care executia procesului a fost intrerupta, procesul este dezactivat, in asteptarea realizarii unui eveniment, de exemplu, eliberarea unei resurse solicitate;

- starea de proces complet, cand procesul a fost complet executat si urmeaza dezalocarea resurselor afectate procesului si distrugerea procesului.


Actiunile care determina comutarea intre doua stari ale unui proces sunt


- initierea procesului, genereaza cererea de lansare in executie a procesului;    procesul este in starea de proces nelansat in executie


- lansarea in executie a procesului determina trecerea lui din starea de proces nelansat in executie in starea de proces pregatit pentru activare (READY)

- activarea procesului determina trecerea lui din starea de proces pregatit pentru activare in starea de proces activ (RUN)

- dezactivarea procesului determina revenirea lui din starea de proces activ in starea de proces intrerupt (READY - pregatit pentru activare)

- blocarea procesului activ determina trecerea lui in starea de proces in asteptare (WAIT)

- deblocarea procesului determina trecerea lui din starea de proces blocat in starea de proces pregatit pentru activare (READY)

- completarea procesului determina trecerea lui din starea de proces activ in starea de proces complet.

- distrugerea procesului complet determina inlaturarea lui din sistem.


Dezactivarea unui proces (trecerea din RUN in READY) este proprie numai pentru exploatarea in time-sharing si in timp real, caz in care comutarea intre procesele active se poate face la initiativa sistemului de operare, prin dezactivarea procesului activ in favoarea altuia; starea WAIT nu este proprie exploatarii in monoprogramare unde, la un moment dat, in sistem se executa o singura lucrare, careia ii sunt alocate toate resursele.

Planificarea proceselor

In sistemele de operare care permit executarea concurenta a mai multor lucrari, o lucrare nou introdusa in sistem, pentru executie, este tratata de o componenta a SO numita planificatorul de lucrari (job scheduler). Sarcinile planificatorului de lucrari sunt:

  • evidenta tuturor lucrarilor din sistem si a starii lor
  • determinarea ordinii in care lucrarile intrate in sistem vor fi lansate in executie, conform unui algoritm ce porneste, de regula, de la prioritatile de executie ale lucrarilor si de la resursele solicitate de lucrari
  • lansarea in executie a lucrarii: in momentul pregatirii unei lucrari, in vederea lansarii ei in executie, planificatorul creaza unul sau mai multe procese, pentru aceasta lucrare, stabilind si modul de comunicare intre procese
  • alocarea resurselor necesare lucrarii
  • dezalocarea resurselor, cand lucrarea a fost executata sau cand ele nu mai sunt necesare
  • distrugerea proceselor complete.

In timpul executiei lucrarilor, gestionarea executiei proceselor in sistem este realizata de componenta SO numita planificatorul de procese (process scheduler); el decide care proces va dispune de procesor, cand si pentru cat timp. Functiile acestui modul sunt:

  • evidenta tuturor proceselor din sistem si a starii lor, prin intermediul componentei numita controlor de trafic (traffic controller)
  • stabilirea procesului caruia i se aloca procesorul si, eventual, a timpului de alocare, functie realizata de componenta planificator al procesorului (processor scheduller)
  • alocarea procesorului la proces, prin actualizarea registrilor procesorului cu informatiile privind starea curenta a procesului, functie realizata de controlorul de trafic
  • dezalocarea procesorului, functie care presupune salvarea continutului registrilor de stare ai procesorului, in vederea reluarii ulterioare a procesului; operatia este realizata de controlorul de trafic. (Dezalocarea procesorului are loc atunci cand expira timpul afectat procesului si are loc dezactivarea procesului, care trece in starea READY, sau cand a fost solicitata o resursa care nu este disponibila si procesul este blocat, intrand in starea WAIT. Dezalocarea procesorului se face fara memorarea starii procesului in cazul in care procesul intra in starea de proces complet, caz in care el urmeaza sa fie distrus. )

In cazul exploatarii in monoprogramare a sistemului de calcul, notiunea de lucrare si proces se confunda iar functia SO de gestionare a proceselor se simplifica; in celelalte moduri de exploatare a sistemelor de calcul, problema planificarii si sincronizarii proceselor este foarte complexa; activitatea planificatorului de procese este precedata si determinata de activitatea planificatorului de lucrari.

Modul de functionare al planificatorului de procese poate fi descris astfel: la anumite momente de timp, determinate de modalitatea de interventie, se evalueaza functia de prioritate, pentru fiecare proces si, pe baza rezultatului obtinut, se aloca procesorul unui proces; in cazul in care mai multe procese au aceeasi prioritate, se aplica o regula de arbitraj, care determina care dintre procese este tratat primul.

Fiecare dintre operatiile executate de componentele SO pentru gestionarea proceselor se bazeaza pe algoritmi care trebuie sa indeplineasca urmatoarele conditii:

  • sa realizeze criteriile de performanta ale sistemului de calcul
  • sa aiba timpi de executie foarte mici si un consum redus de resurse sistem.

Modalitatea de interventie a planificatorului de procese defineste momentele cand acesta intra in lucru:

  • la momente determinate de proces, de exemplu la gestionarea proceselor in multiprogramare, cu ajutorul sistemului de intreruperi
  • la momente determinate de SO, de exemplu la gestionarea executiilor in mod time-sharing.

Functia de prioritate a planificatorului de procese determina prioritatea de activare a proceselor. Ea poate lua in calcul, pentru determinarea valorii prioritatii fiecarui proces:

  • cererea reala de resurse, ca in cazul exploatarii in multiprogramare
  • cererea estimata de timp pentru executie, ca la sistemele exploatate in timp real
  • timpul petrecut in sistem, ca in cazul sistemelor exploatate in timp real
  • prioritati prestabilite, cum este cazul exploatarii in multiprogramare, etc.

Exista doua modalitati de stabilire a prioritatilor:

  • prioritatile sunt definite, pentru o lucrare, la intrarea ei in sistem si nu pot fi modificate pe durata executiei lucrarii; aceasta metoda dezavantajeaza lucrarile cu prioritate mica, care pot inregistra timpi foarte mari de asteptare in sistem, in momentul in care, concomitent cu ea, intra multe lucrari cu prioritate mai mare;
  • prioritatile sunt calculate de SO dupa reguli proprii si sunt atasate dinamic proceselor in executie; metoda este folosita la sistemele de calcul exploatate in time-sharing sau in timp real.

Exemple de algoritmi pentru calculul dinamic al prioritatii:

  • lucrarea cea mai veche in sistem va fi executata prima; acest algoritm duce la scaderea timpului maxim de asteptare in sistem a unei lucrari;
  • in sistemul de operare UNIX, la un interval fix, de 1 secunda, se recalculeaza prioritatile, pentru fiecare proces in executie, ca raport dintre timpul afectat de procesor procesului (timpul de RUN) si timpul total petrecut de proces in memorie (timpul de proces in executie); in continuare, se activeaza procesele in ordinea crescatoare a acestui raport; aplicarea acestui algoritm duce la scaderea timpului mediu de raspuns al sistemului.

Regula de arbitraj stabileste ordinea de servire in cazul prioritatilor egale; aceasta regula este definita de un algoritm de planificare a proceselor.

Obiectivele urmarite in activitatea de planificare a proceselor sunt:

  • minimizarea duratei de executie a lucrarilor, prin minimizarea timpului de asteptare in sistem
  • asigurarea unei rate optime de servire a tuturor lucrarilor din sistem
  • implementarea unor criterii de prioritate pentru procesele din sistem
  • maximizarea factorului de utilizare a resurselor sistemului.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright