Un proces (în engleză , proċese ), în calcul , este un program rulat în prezent de un computer . Mai precis, poate fi definit ca:
Un proces durează ceva timp pentru a se finaliza, cu un început și ( uneori ) un sfârșit. Un proces poate fi început de către un utilizator printr-un periferic sau printr-un alt proces: „ aplicațiile ” utilizatorului sunt seturi de procese.
În schema CIM definită de modelul comun de informații , clasa de bază CIM_Process este atribuită proceselor IT. În funcție de sistemul de operare, poate fi derivat Win32_Process în IBMzOS_Process sau CIM_UnixProcess .
Un computer echipat cu un sistem de operare multitasking este capabil să execute mai multe procese aproape simultan. Prin analogie cu telecomunicațiile, acest proces se numește multiplexare . Dacă există mai multe procesoare, execuția proceselor este distribuită în mod egal între aceste procesoare.
Sistemul de operare este responsabil pentru alocarea resurselor (memorii, timp procesor, intrări / ieșiri) necesare proceselor și asigurarea faptului că funcționarea unui proces nu interferează cu cea a celorlalți (izolare).
De asemenea, poate oferi un API care să permită comunicarea inter-proces (IPC).
Pe lângă multiplexarea resurselor hardware, sistemul poate controla accesul proceselor la resurse în conformitate cu o matrice de drepturi și, de asemenea, poate asocia procesele cu utilizatorii, care sunt destinatarii unui set de drepturi de acces: un proces are drepturile a utilizatorului care a inițializat-o.
Un proces se poate opri în mai multe moduri:
Când oprirea procesului nu este o oprire normală, poate fi important să fiți avertizat. Acest lucru poate fi realizat de sistemele de supraveghere (numite și monitorizare ).
Majoritatea sistemelor oferă distincția dintre procese, care sunt a priori complet izolate unele de altele, și „ procese ușoare ” ( fire în engleză), care alcătuiesc procesele (fiecare proces are cel puțin un fir ) și care împărtășesc un spațiu. (și alte resurse) în comun.
În cazul unui proces care cuprinde mai multe procese ușoare (sau pentru a utiliza expresia folosită adesea cu mai multe fire) există o stare separată a procesorului (un context de execuție) pentru fiecare proces ușor.
Stările succesive ale unui proces sunt în general reprezentate de o diagramă de stare .
Utilizarea diagramelor de stare se datorează faptului că un proces este coerent, din exterior, numai în anumite momente ale execuției sale, în special în afara secțiunilor critice . În practică, observăm starea unui proces comunicând cu acesta; oferă astfel un răspuns atunci când este coerent.
Să luăm un exemplu; fie secvența de instrucțiuni din pseudo-cod aparținând oricărui program:
procédure empiler (v : valeur) compteur := compteur+1 vect[compteur] := vProgramul care utilizează această funcție poate fi observat numai înainte sau după un apel către funcție empiler()deoarece, între instrucțiunile de creștere și atribuire , celula numerică compteura tabelului vect[]nu este afectată și conține ... o valoare aleatorie (o memorie este rar goală) .
Aceste stări există în majoritatea sistemelor de operare :
În funcție de sistemele de operare, aceste stări diferite pot fi, de asemenea, posibile: