Stările proceselor
Folosind o astfel de abstractizare, tot ceea ce se face în sistemele informatice (nu numai programele utilizatorilor, dar și, eventual, anumite părți ale sistemelor de operare) este organizat ca un set de procese. Este clar că un singur proces poate fi executat în orice moment pe un sistem computerizat uniprocesor. Pentru sistemele de calcul multiprogram, procesarea pseudo-paralelă a mai multor procese se realizează prin comutarea procesorului de la un proces la altul. În timp ce un proces este în desfășurare, ceilalți își așteaptă rândul.
După cum puteți vedea, fiecare proces poate fi în cel puțin două state. Procesul este executat și procesul nu este executat. Schema de faze a procesului din acest model este prezentată în Fig. 2.1.
Fig. 2.1. Cea mai simplă diagramă de fază a procesului
Procesul. procesul în desfășurare se derulează. după o perioadă poate fi terminată de sistemul de operare sau suspendată și din nou transferată în starea procesului nu este executat. Procesul este întrerupt din două motive: a necesitat un eveniment (de exemplu, finalizarea unei operații I / O) sau un interval de timp scurs. Sistemul de operare alocat pentru acest proces. După aceea, sistemul de operare selectează unul dintre procesele de execuție printr-un anumit algoritm. procesul nu este executat. și îl convertește la starea procesului de execuție. Un nou proces. care apare în sistem, inițial plasat în stadiul procesului, nu este executat.
Acesta este un model foarte dur, nu ia în considerare în special ceea ce este procesul. selectat pentru execuție, poate încă să aștepte evenimentul, din cauza căruia a fost suspendat și nu este într-adevăr pregătit pentru execuție. Pentru a evita o astfel de situație, am împărțit starea procesului prin neaplicarea lui în două noi state. disponibilitatea și așteptările (a se vedea figura 2.2).
Fig. 2.2. O diagramă mai detaliată a stărilor proceselor
Fiecare nou proces. apare în sistem, devine într-o stare de pregătire. Sistem de operare. folosind orice algoritm de programare, selectează unul dintre procesele gata și îl pune în starea de execuție. În starea de execuție, codul procesului este executat direct. Procesul poate ieși din această stare din trei motive:
- sistemul de operare întrerupe funcționarea acestuia;
- el nu-și poate continua munca până când nu apare un eveniment, iar sistemul de operare îl pune într-o stare de așteptare;
- ca urmare a unei întreruperi în sistemul informatic (de exemplu, o întrerupere de la cronometru după timpul specificat de execuție), acesta este readus la starea de pregătire.
Din starea de așteptare, procesul intră în starea gata după evenimentul așteptat și poate fi din nou selectat pentru execuție.
Noul nostru model descrie comportamentul proceselor bine în timpul existenței lor, dar nu subliniază aspectul procesului în sistem și dispariția acestuia. Pentru a completa imaginea, trebuie să introducem încă două stări de proces. nașterea și executarea finală (a se vedea figura 2.3).
Fig. 2.3. Diagrama de stare a procesului adoptat în curs
În anumite sisteme de operare, stările proceselor pot fi și mai detaliate și pot apărea câteva variante noi de tranziții de la o stare la alta. De exemplu, modelul de stare de proces pentru sistemul de operare Windows NT conține 7 stări diferite. și pentru sistemul de operare Unix - 9. Cu toate acestea, într-un fel sau altul, toate sistemele de operare se supun modelului de mai sus.