V restauraci je jeden kuchař a deset objednávek. Nemůže vařit deset jídel naráz. Chvíli míchá polévku, pak otočí řízek, pak zase polévka. Hostům to připadá, že se všechno vaří současně.
Procesor je takový kuchař a programy jsou objednávky. O tom, kdo zrovna „vaří“, rozhoduje jádro operačního systému. Když pochopíš procesy, budeš umět zjistit, proč se počítač seká, a ukončit zamrzlý program.
Proces navíc vzniká (nový) a nakonec skončí (ukončený).
top nebo htop. Proces, který bere skoro 100 % CPU, můžeš ukončit (Windows: Ukončit úlohu; Linux: kill PID).Program s jediným vláknem běží v jednu chvíli jen na jednom jádře. Ostatní jádra mu nepomohou.
V nemocniční čekárně se nechodí jen podle pořadí příchodu: člověk s infarktem jde hned. Plánovač v jádře řeší stejnou otázku: koho pustit na procesor dřív. Různá pravidla dávají různé výsledky a ve zkouškách se na ně často počítá.
| Algoritmus | Pravidlo | Vlastnost |
|---|---|---|
| FCFS (kdo dřív přijde) | podle pořadí příchodu | jednoduchý, krátké procesy čekají za dlouhými |
| SJF (nejkratší první) | nejdřív nejkratší úloha | nejmenší průměrné čekání, ale délku nutno znát předem |
| Round Robin | dokola, každý dostane kvantum | spravedlivý, vhodný pro interaktivní systémy |
| prioritní | nejdřív nejvyšší priorita | hrozí „vyhladovění“ procesů s nízkou prioritou |
| Proces | Vlákno | |
|---|---|---|
| paměť | vlastní, oddělená | sdílená s ostatními vlákny procesu |
| vytvoření a přepnutí | náročnější | rychlejší |
| pád | neohrozí jiné procesy | může shodit celý proces |
Do čekání se nepočítá čas, kdy proces sám běžel. U FCFS se vším v čase 0 je čekání rovno času, kdy proces začal.