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
- Tento termín byl poprvé použit se souvislostí s OS v 60. letech 20 století.
- Proces není úloha se kterou se často zaměňuje!
- Proces je termín, popisující děj nějaké akce co má za úkol něco zpracovat. Proces je operace, která může vykonávat další operace(procesy). Např. tisk, běžící software
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ě.
- Běžící (running) – proces aktuálně vykonává své instrukce na CPU.
- Připravený/čekající (ready) – proces čeká, až bude přidělen čas procesoru, vše potřební již má.
- 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.
Všechny stavy ve kterých se může nacházet proces skrze svou správu jsou:
- Vytvoření (create) – proces byl vytvořen.
- Běžící (running) – proces aktuálně vykonává své instrukce na CPU.
- Připravený (ready) – proces čeká, až bude přidělen čas procesoru, vše potřební již má.
- Ukončení (destroy) – proces byl ukončen.
- Odložení (suspend) – proces byl odložen na dobu neurčitou na disk.
- Obnovení (resume) – proces byl obnoven z odleženého stavu (z disku).
- Změna priority procesu – procesu se změnila priorita.
- 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.
- Vzbuzení (wake up) – proces je probuzen.
- Spuštění (dispatch) – proces je probuzen.
- Komunikace mezi procesy.