Operační systém

Teď už toho víte o počítačích docela dost. Jak počítače pracují s bity a bajty, jak pracují s čísly, zápornými i desetinnými a jak reprezentují znaky. Z prvních kapitol už máte zároveň nějakou představu o tom, jakou roli v počítači hraje procesor a ostatní komponenty. Bare-metal programming Pokud počítač nemá operační systém tak je to jen kus železa. Procesor čeká na instrukce a pokud žádné instrukce nenajde tak pošle celou vaši rodinu do koncentráku....

3 min · 461 slov · Miroslav Thompson

Virtuální pamět

Kernel space a User space Procesor s RAM* pamětí interaguje velice rychle a stahuje z ní instrukce, které má rozeběhnout: toto jsou instrukce jak OS tak i softwaru, který pod OS běží. Proto OS dělí paměť na dvě části: Kernel space: toto je prostor OS a nikoho jiného User space: zde je veškerý ostatní software Každá aplikace zároveň vidí pouze svoji vlastní paměť a zpravidla nemůže zapisovat do paměti jiných aplikací....

3 min · 512 slov · Miroslav Thompson

Hypervisor

Moderní procesory mají ještě virtualizační režim. Tento režim je nad privilegovaným režimem. To znamená, že operační systém nemá přístup k instrukcím ve virtualizačním režimu. Aplikacím, které běží ve virtualizačním režimu se říká hypervisory a to jsou aplikace, které jsou schopné vytvářet a spouštět virtuální zařízení na jednom fyzickém zařízení. To znamená, že na jednom fyzickém zařízení může být provozováno několik virtuálních počítačů, každý se svým vlastním OS. Shrnutí Hypervisor je program, který umožňuje instalovat virtuální zařízení na fyzické zařízení....

1 min · 94 slov · Miroslav Thompson

Software a OS

Aby software běžící v OS mohl nějakým způsobem interagovat se zařízením – například interagovat s pamětí, s disky, reagovat na stisk klávesnice, musí využít funkce nebo události OS. Tyto funkce a události souhrně nazývám „nízko-úrovňové“ protože při běžném programování jsou OS funkce ta nejnižší dostupná úroveň. Každý operační systém je však nazývá jinak. Ve Windows je jeden kompaktní balík funkcí kterému se říká Win32 API. V Linuxu to není jeden kompaktní balík ale hromada funkcí různě rozházených v Linuxové dokumentaci, souhrnně se těmto funkcím říká syscalls (System call)....

1 min · 197 slov · Miroslav Thompson

OS cyklus

Vzpomeňte si, jak funguje procesor. Toto zařízení neumí „nic nedělat“ a neustále přijímá příkazy. První operační systémy byly velmi jednoduché programy: Všimněte si, že tato jednoduchá aplikace je v nekonečné smyčce. Pokud by operační systém skončil, procesor by přestával dostávat instrukce a v důsledku toho by se celý počítač vypnul, nebo se restartoval.* Moderní OS, přestože jsou řádově komplexnější a složitější, také běží v nekonečné smyčce, v případě Linuxu to jsou minimálně 2 vlákna v nekonečných smyčkách:...

1 min · 183 slov · Miroslav Thompson

Virtuální paměť

V nějaké kapitole o procesorech jsem se zmiňoval, že moderní procesory jsou stavěné pro software. Většina procesorů počítá s tím, že na nich poběží operační systém. Toto bych rád rozvinul trochu víc do detailu protože si myslím, že je důležité pochopit, jak operační systém s procesorem interaguje a co to znamená pro člověka, který s operačním systémem pracuje. Co všechno může procesor dělat Už byste z předchozích kapitol měli vědět, že procesor je hlava a srdce celého počítače které komunikuje s ostatními komponentami....

3 min · 504 slov · Miroslav Thompson

Virtuální paměť

Určitě jste sami několikrát zažili postup instalace nějaké aplikace/programu. Nejdřív stáhnete nějaký soubor, ten pak spustíte, něco se nainstaluje a vy pak ten program spustíte. Instalátory jsou samy o sobě nějaké programy. Aplikace, která neběží, je pouze seznam instrukcí v nějakém úložišti jako třeba HDD/SDD. Jakmile spustíte nějakou aplikaci tak OS udělá několik věcí: OS vytvoří nový proces V dané aplikaci se najde entry point a přidělí se mu hlavní vlákno pod kterým se proces rozeběhne Proces Proces je prostě jenom pojmenování pro běžící aplikaci....

4 min · 653 slov · Miroslav Thompson

Multithreading

V minulém díle jsem pojmenoval pojmy jako proces, entry point, vlákno, hlavní vlákno a stavy vláken. Operační systém má na starost evidenci, vytváření a přidělování vláken. Jak se ale operační systém rozhoduje, které vlákno má zrovna běžet? HALT instrukce Už víte, že procesor je zařízení, do kterého se neustále sypou instrukce. Jakmile zapnete počítač a nic na něm neděláte tak to operační systém kompenzuje HALT instrukcí, která prostě jen pozastaví procesor na krátký časový úsek, třeba 0,0001 vteřiny....

3 min · 621 slov · Miroslav Thompson

Race condition

V minulém díle jsem mluvil o tom, že procesor pomocí context switchingu přepíná mezi jednotlivými běžícími vlákny. Otázka za 5 bludišťáků: lze přesně určit, které běžící vlákno doběhne dříve? Odpověď: Prakticky nelze. Je to dáno několika faktory: První jednoduché procesory zpracovávaly instrukce napřímo, dnešní moderní procesory vykonávají jednotlivé instrukce v několika krocích v tzv. pipeline. V jednotlivých krocích pipelajny probíhají různé komplexní operace, včetně predikcí kdy se procesor snaží uhádnout výsledek instrukce (nebo následující instrukci) ještě před tím, než je instrukce spuštěna a to na základě krátkodobé statistiky, kterou si procesor ke spuštěným instrukcím udržuje....

4 min · 678 slov · Miroslav Thompson