Stavy procesu

OS u procesů eviduje jeho stav. Tyto stavy jsou různé napříč různými OS ale lze identifikovat jakési základní stavy, které mají mezi různými OS víceméně stejný význam. Zpravidla jde o stavy: Vytvořeno — OS právě proces spouští a ještě nebyla dokončena veškerá režie (např. načtení do RAM paměti) pro jeho skutečné spuštění Čeká — proces je načtený v RAM paměti a čeká na přidělení času procesoru Běží — proces běží v rámci OS normálně Končí — proces se právě ukončuje

1 min · 80 slov · Miroslav Thompson

Stavy vlákna

OS evidují stavy i u jednotlivých vláken. Stejně jako u procesů, stavy vláken jsou různé napříč různými OS ale lze identifikovat jakési základní stavy, které mají mezi různými OS víceméně stejný význam. Zpravidla jde o stavy: Připravené — vlákno je připravené a přichystané ke spuštění Běžící — vlákno běží Čekající — vlákno je pozastavené a na něco čeká Ukončené — vlákno doběhlo do konce

1 min · 64 slov · Miroslav Thompson

Ukončení procesu

Běžící proces lze v každém OS ukončit dvěma hlavnímy způsoby 1 Signál běžného ukončení Zabití procesu Signál běžného ukončení V OS Windows má většina běžných aplikací nějakou grafickou reprezentaci “okna” a ukončení aplikace je iniciované obyčejným kliknutím na křížek v pravém rohu okna. Pokud má program jen jedno okno pak to většinou znamená, že se ukončuje celý proces. Zavření programu Podobně to funguje napříč všemi operačními systémy. Co se reálně děje je, že OS vyšle danému procesu signál pro ukončení. Tento signál může aplikace zpracovat jak je libo — toto závisí jednoduše na autorovi aplikace, jak se rozhodl toto implementovat. ...

2 min · 237 slov · Miroslav Thompson

Proces spawn

Jakýkoliv proces má schopnost spustit jiný program a nastartovat tedy další proces. Běžný uživatel zpravidla nepracuje s programy, které tuto schopnost využívají a pokud ano tak o tom ani neví. Parent + child (Parent + child = doslova rodič a dítě) Jakmile proces A nastartuje proces B tak pak platí, že: Proces A je parentem procesu B (A je rodičem B) Proces B je childem procesu A (B je dítětem A) “Aktu” vytvoření procesu jiným procesem se také někdy říká “spawn” nebo “spawnutí” (doslova “zplození”) procesu. ...

1 min · 153 slov · Miroslav Thompson

Thread spawn

Každý program má vždy minimálné hlavní vlákno. Konec hlavního vlákna znamená, že končí i celý proces. ⚠️ Důležité k zapamatování: Proces může mít kromě hlavního vlákna ještě libovolné množství dalších vláken. Po skončení hlavního vlákna však OS pozabíjí jakákoliv ostatní vlákna, která si proces vytvořil a které nedoběhly do konce. Proces s pěti běžícími vlákny

1 min · 55 slov · Miroslav Thompson

Režimy CPU

Před další kapitolou o procesech je nutné se na chvíli vrátit k procesorům, konkrétně k procesorovým režimům (anglicky CPU mode). CPU režim si lze představit jako jakýsi stav celého procesoru. Tímto režimem se určuje, které instrukce lze spouštět a které ne. Moderní procesory podporují 2 základní režimy 1 zvané: privilegovaný režim uživatelský režim Privilegovaný režim Při zapnutí počítače běží procesor v privilegovaném režimu. V tomto režimu je možné v procesoru spustit jakoukoliv instrukci bez omezení, zejména instrukce pro interakci s ostatními komponentami. OS běží v tomto režimu. ...

1 min · 141 slov · Miroslav Thompson

Izolace programu v uživatelském režimu

⚠️ Důležité k zapamatování: V uživatelském režimu běží všechny procesy spuštěné v rámci OS. Izolace OS programů Jakýkoliv pokus o přímou komunikaci s jakoukoliv komponentou CPU zablokuje a způsobí přerušení které OS zachytí a chybující proces ukončí.

1 min · 37 slov · Miroslav Thompson

OS API / syscalls

Programy běžící pod OS nemohou napřímo komunikovat s jednotlivými komponentami počítače, mohou však komunikovat přímo s OS který slouží jako prostředník mezi programy OS a komponentami. Každé OS má k dispozici rozsáhlou sadu funkcí kterým se kolektivně říká OS API nebo někdy syscalls (zejména v Linuxu). OS API / syscalls

1 min · 50 slov · Miroslav Thompson

Mode switch

Mode switch je operace přepnutí mezi privilegovaným a uživatelským režimem tam a zpět. V běžném provozu proběhne v procesoru desítky až tisíce těchto přepnutí, závisí však na konkrétním OS i na počtu rozeběhnutých procesů. ⚠️ Pozor, neplést s context switchem. Context switch = přepnutí přiděleného času procesoru z jednoho vlákna na jiné vlákno Mode switch = přepnutí mezi privilegovaným a uživatelským režimem

1 min · 62 slov · Miroslav Thompson

OS API / syscalls oblasti

Programy běžící pod OS pro svůj provoz běžně potřebují: pracovat s daty v paměti ukládat data na persistentní uložiště komunikovat po síti/internetu OS nedovoluje komunikovat s komponentami napřímo. Programy místo toho musí využít funkce OS které lze rozdělit na 3 kategorie. Virtuální paměť = práce s pamětí Souborový systém = práce s persistentním 1 uložištěm Síťový interface = komunikace se sítí/internetem Standard I/O = historicky první a dodnes platný způsob, kterým procesy mohou interagovat s uživatelem a mezi sebou. Oblasti OS API / syscalls Každá z těchto oblastí si zaslouží rozepsat v samostatných sekcích. ...

1 min · 121 slov · Miroslav Thompson