Graficul stadiilor de proces

Crearea unui proces - crearea unei structuri de informații care include câmpuri:

1. ID-ul procesului, determină localizarea procesului;

2. Identificatorul procesului părinte (procesul parental → proces copil), un proces creează un alt proces;







3. Date despre poziția modulului executabil în memorie;

4. Gradul de privatizare a procesului;

6. Date statistice (timpul de creare a procesului, timpul de finalizare a procesului).

Figura 2 prezintă algoritmul pentru crearea procesului:

Context și descriptor al procesului

Pe durata existenței acestui proces, implementarea acestuia poate fi întreruptă și continuată. Pentru a relua procesul, trebuie să restaurați starea mediului de operare. Situația mediului de operare afișează starea registrelor și a contorului de program, modul de procesor, indicii pentru a deschide fișiere, informații despre operațiunile în curs de IO, codurile de eroare ale apelurilor de sistem executate de proces, etc. Aceste informații se numesc contextul procesului.

În plus, sistemul de operare necesită informații suplimentare pentru implementarea planificării procesului: ID-ul procesului, starea procesului, informațiile despre nivelul de privilegii de proces, locația segmentului de cod și alte informații. În unele sisteme de operare (de exemplu, în sistemul de operare UNIX) informațiile de acest tip utilizate de sistemul de operare pentru planificarea proceselor se numesc descriptor de proces.

Manipularea procesului, în comparație cu contextul, conține mai multe informații operaționale, care ar trebui să fie ușor accesibile pentru subsistemul de planificare a proceselor. Contextul procesului conține informații mai puțin relevante și este utilizat de sistemul de operare numai după ce se ia decizia de a relua procesul întrerupt.







Cozi de proces sunt descriptorii proceselor individuale, combinate în liste. Astfel, fiecare descriptor conține, printre altele, cel puțin un indicator la alt descriptor de lângă acesta în coada de așteptare. Această organizare de cozi facilitează reordonarea, includerea și excluderea proceselor, transferarea proceselor dintr-o stare în alta.

Codul de program va fi executat numai când sistemul de operare creează un proces pentru acesta.

Creați un proces înseamnă:

1. să creeze structuri de informație care descriu acest proces, adică descriptorul și contextul acestuia;

2. Includerea descriptorului noului proces în coada proceselor finite;

3. Încărcați segmentul de cod al procesului în memorie RAM sau swap.

Într-un sistem multi-tasking (multi-proces), procesul poate fi în una din cele trei stări de bază:

IMPLEMENTARE - starea activă a procesului, în timpul căreia procesul are toate resursele necesare și este executat direct de procesor;

AȘTEPTARE - starea pasivă a procesului, procesul este blocat, nu se poate rula pe propriile sale motive interne, el este în așteptare pentru punerea în aplicare a anumitor evenimente, cum ar fi finalizarea operațiunii IO, primiți un mesaj de la un alt proces, degaje resursele necesare;

READY - o stare pasivă a procesului, de asemenea, dar în acest caz, procesul este blocat datorită circumstanțelor externe cu privire la acestea: procesul dispune de toate resursele necesare pentru el, el este gata să fie executat, dar procesorul este ocupat execută un alt proces.

În timpul ciclului de viață, fiecare proces se mută dintr-o stare în alta, în conformitate cu algoritmul de programare a proceselor implementat în acest sistem de operare. Un grafic tipic al stărilor procesului este prezentat în Figura 2.1.

Statul de executare într-un sistem uniprocesor poate fi doar un singur proces, iar în fiecare gata și așteaptă de stat - procese mai multe, aceste procese formează o coadă de așteptare, respectiv și procesele gata. Ciclul de viață al procesului începe cu o stare de pregătire, atunci când procesul este gata de execuție și așteaptă rândul lor. Când este activat, procesul se mută la starea de alergare și este în ea atâta timp cât, fie el va elibera CPU, de a merge la starea de așteptare a unui eveniment, sau va fi obligat să „expulzat“ din CPU, de exemplu, ca urmare a epuizării alocat procesului unui cuantum de timp CPU . În acest din urmă caz, procesul revine la starea READY. În aceeași stare, procesul se mută din starea WAITING, după ce se produce evenimentul așteptat.

Fig. 2.1. Graficul stărilor proceselor într-un mediu multitasking







Articole similare

Trimiteți-le prietenilor: