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 programů 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 OS sdílí kapacitu procesoru s programy, které v něm běží.

1 min · 32 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 · 396 slov · Miroslav Thompson

Idle task

V minulém díle jsem řekl, že scheduler balancuje čas procesoru mezi všemi běžícími programy. Co ale OS dělá, když jsou všechny instrukce splněny včas a už nejsou žádné instrukce, které by mohly v procesoru běžet? Nezapomeňte na to, že pokud by procesoru instrukce došly, počítač by se nejspíš vypnul nebo restartoval. V tom případě procesor přidělí čas procesoru jedné své vlastní speciální úloze, které se říká idle task. Idle task reálně nic nedělá a toto “nicnedělání” dělá do nekonečna. Tato úloha má nejnižší možnou prioritu a jejím účelem je zaplnit procesor nějakými “nicnedělajícími” instrukcemi do té doby, dokud nenastane čas pro zpracování instrukcí pro další proces. Toto balancování probíhá každou chvíli, v mikrosekundových intervalech! ...

2 min · 245 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

Binární formát programu

Programy jsou jen obyčejné soubory obsahující nějaká binární data, které operační systém dokáže interpretovat jako programy a spustit je. Tato binární data jsou ve formátu, který je různý napříč OS a z toho důvodu není možné aplikace na jeden OS spouštět i na jiném OS. ⚠️ Důležité k zapamatování: Binární formát programu je standard, podle kterého je OS schopný daný program spustit. Každé OS podporuje svůj vlastní standard a z toho důvodu není možné aplikace fungující na jednom OS pouštět na jiném OS. ...

1 min · 111 slov · Miroslav Thompson

Entry point

Při spuštění jakéhokoliv programu nejdřív OS najde kompatibilní entry point což je jinými slovy místo, kde pro daný program začínají instrukce, které mohou začít proudit do procesoru. Entry point se odvíjí od binárního formátu programu (viz předchozí kapitola). Z tohoto důvodu není možné aplikaci na Windows spustit např. na macOS a naopak. Entry point v programu

1 min · 56 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