Programy v OS

Operační systémy umožňují spouštět další programy. V rámci operačního systému je možné spustit více, než jeden program najednou. Programy v OS Toto znamená, že v jeden daný moment na operačním systému může běžet několik programů paralelně, vedle sebe.

1 min · 38 slov · Miroslav Thompson

Souběžnost programů

V minulé kapitole jsem řekl, že operační systém umožňuje paralelní běh více progamů najednou. Toto je rozdíl oproti bare-metal programování. Procesor samotný - respektive každé procesorové jádro - dokáže rozeběhnout pouze jeden jediný program. Operační systém ale umožňuje souběžný běh více programů najednou a to i na jednojádrovém procesoru. 1 Souběžnosti programů Pokud vám to naprosto nedává smysl a ptáte se, jak je to vůbec logicky možné, tak čtěte dál, píšu o tom v pozdější kapitole. ↩︎ ...

1 min · 76 slov · Miroslav Thompson

Sdílená kapacita procesoru

Programy běžící v OS se neliší od OS samotného v tom významu, že jde stále jen o instrukce pro procesor. Sdílený procesor

1 min · 22 slov · Miroslav Thompson

Multithreading

Řekněme, že máme k dispozici jednojádrový procesor. Běžný OS na takovém procesoru stále dokáže rozeběhnout více programů najednou a to díky mechanismu kterému se říká multithreading. Přirovnání ke koncertu vojenských kapel Představte si, že jste organizátor koncertu s jedním pódiem. Na tomto koncertu musí vystoupit 10 kapel. V těchto kapelách hrají jenom vojáci kteří vás poslouchají na slovo, protože jste jejich šílený velitel. Můžete jakoukoliv kapelu kdykoliv přerušit a vyměnit za jinou kapelu i uprostřed písničky. V ten moment se však musí kapela na pódiu sebrat a vypadnout a uvolnit místo jiné kapele, která tam musí naběhnout, připravit si nástroje a pak začít hrát. ...

2 min · 376 slov · Miroslav Thompson

Program

Doposud jsem užíval pojem “program” ale tento pojem v operačních systémech má specifický význam. Program, aplikace “Program” potažmo “aplikace” jsou v kontextu OS soubory, které je možné spustit. Jinými slovy, jsou to někde uložené instrukce pro procesor které samy o sobě nic nedělají. Nejdřív je nutné instruovat OS aby program spustil. Běžný český uživatel většinou používá OS Windows a v něm spouští program ve Windowsech (většinou dvojitým) poklepáním na nějakou ikonku. ...

1 min · 78 slov · Miroslav Thompson

Entry point

Entry point Při spuštění jakéhokoliv programu nejdřív OS najde kompatibilní entry point 1 což je jinými slovy místo, kde pro daný program začínají instrukce, které mohou začít proudit do procesoru. Entry point je standard odlišný mezi různými OS. Z tohoto důvodu není možné aplikaci na Windows spustit např. na macOS a naopak. Entry point v programu Česky snad “vstupní bod” ale obvykle se tento pojem nepřekládá. ↩︎

1 min · 66 slov · Miroslav Thompson

Proces

Po nalezení entry pointu se pro program vytvoří nový proces. Proces je pouze něco jako evidenční záznam který shromažďuje důležité informace pro další věci, které se v rámci procesu dějí. Program a proces Technicky správné označení je “proces” ale běžným označením je i “běžící program”. Proces ale reálně není to, co běží. Proces je pouze záznam v paměti OS. To, co reálně běží je vlákno neboli thread.

1 min · 67 slov · Miroslav Thompson

Vlákno

Po nalezení entry pointu OS vytvoří pro proces thread, česky vlákno. Prvnímu vláknu procesu se vždy říká main thread nebo hlavní vlákno. Hlavní vlákno Vlákno je přidělená kapacita procesoru pro zpracovávání instrukcí. Dá se říct, že vlákno už reálně reprezentuje nějaké operace které se provádí od začátku až do konce. Není to nic jiného, než CPU prováděné instrukce. Běžící vlákno ⚠️ Důležité k zapamatování: Jakmile skončí hlavní vlákno procesu, skončí celý proces. ...

1 min · 72 slov · Miroslav Thompson

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