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
Co znamená proces
- Každý proces má svůj vlastní adresný prostor.
- Textová část - Obsahuje kód, který procesor vykonává
- Datové části - Proměnné a dynamicky alokovaná paměť
- Zásobník - instrukce a lokální proměnné právě volané procedury
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).