V kontextu operačních systémů je proces běžící instance programu. Když program spustíte, operační systém mu přidělí prostředky, jako je paměť, čas procesoru a další zdroje, aby mohl být prováděn. Každý proces má svůj adresní prostor, což zahrnuje kód (textová část), data, a systémové prostředky (zásobník), které využívá.

<aside> 💡

ZAJÍMAVOST!

Procesor dělá vždy jen jednu akci a rychle přepíná (naráz maximálně tolik kolik je fyzických jader). Procesory dnes dosahují miliard operací za sekundu, což při rychlém a efektivním přepínání působí jako více akcí současně

</aside>

Proces

Stavy procesů

Proces má také svůj stav, který se může měnit během jeho životního cyklu. Mezi základní stavy procesu patří:

<aside> 💡

Operační systém udržuje aktualizovaný seznam připravených a blokovaných procesů!

</aside>

Procesy jsou klíčovou součástí multitaskingu, kdy operační systém přepíná mezi různými procesy, aby umožnil současné vykonávání více úloh. Každý proces může mít také vlákna (threads), což jsou menší jednotky v rámci procesu, které sdílejí jeho zdroje, ale mohou být vykonávány paralelně.

  1. Běžící (running) – proces aktuálně vykonává své instrukce na CPU.
  2. Připravený/čekající (ready) – proces čeká, až bude přidělen čas procesoru, vše potřební již má.
  3. Blokovaný (blocked) – proces čeká na až nastane událost po které by mohl být spuštěn, například na dokončení I/O operace.

1920px-Životní_cyklus_procesu.svg.png

Všechny stavy ve kterých se může nacházet proces skrze svou správu jsou:

  1. Vytvoření (create) – proces byl vytvořen.
  2. Běžící (running) – proces aktuálně vykonává své instrukce na CPU.
  3. Připravený (ready) – proces čeká, až bude přidělen čas procesoru, vše potřební již má.
  4. Ukončení (destroy) – proces byl ukončen.
  5. Odložení (suspend) – proces byl odložen na dobu neurčitou na disk.
  6. Obnovení (resume) – proces byl obnoven z odleženého stavu (z disku).
  7. Změna priority procesu – procesu se změnila priorita.
  8. Blokovaný (blocked) – proces čeká na až nastane událost po které by mohl být spuštěn například na dokončení I/O operace.
  9. Vzbuzení (wake up) – proces je probuzen.
  10. Spuštění (dispatch) – proces je probuzen.
  11. Komunikace mezi procesy.