Jádro operačního systému: Porovnání verzí
Smazaný obsah Přidaný obsah
m oprava chyby při nahrazování odkazů na rozcestníky za použití AWB |
oprava (CPU) |
||
Řádek 6:
Pro zajištění bezpečnosti [[operační systém|operačního systému]] je nutné, aby procesor podporoval dva módy činnosti: omezený pro aplikace a privilegovaný (se speciálními [[Strojová instrukce|strojovými instrukcemi]]) pro jádro. Privilegovanému módu se proto někdy říká ''kernel mód''.
Podle architektury operačního systému se typicky rozlišuje [[Mikrojádro|''mikrojádro'']] (jádro je velice jednoduché a obsahuje pouze zcela základní funkce, zbytek operačního systému se nachází mimo toto jádro v aplikacích (ev. serverech), např Symbian OS, [[GNU Hurd]]) a ''makrojádro'' ([[monolitické jádro]], jádro je rozsáhlé, obsahuje velké množství funkcí pro všechny aspekty činnosti operačního systému včetně například [[Souborový systém|souborového systému]]). Toto jádro je typické pro operační systém [[Unix]]. Jakýmsi [[kompromis]]em je ''[[hybridní jádro]]'', které se snaží kombinovat výhody mikrojádra i monolitického jádra, např [[Windows NT]], [[OS X]].
== Základní povinnosti jádra ==
Základní účel jádra spočívá v ovládání prostředků [[počítač]]e a umožnění ostatním [[Počítačový program|programům]] běžet a používat je. Typicky se prostředky skládají z:
* [[
* [[Elektronická paměť|Paměť]] počítače. Paměť je používána k ukládání jak [[Strojová instrukce|strojových instrukcí]] programů tak i dat. Obvykle musí být v paměti přítomno obojí, aby se mohl provést program. Často chce paměť používat mnoho programů, dohromady požadujících více paměti než má počítač k dispozici. Jádro má za povinnost rozhodování, kterou část paměti může každý proces použít a rozhodnout co dělat, když je nedostatek volné paměti. (viz také [[virtuální paměť]]).
* Jakékoliv vstupně/výstupní (I/O) zařízení přítomné v počítači, jako jsou [[Pevný disk|diskové jednotky]], [[Počítačová tiskárna|tiskárny]], [[displej]]e a další. Jádro přidělí žádostem aplikací příslušná I/O zařízení (nebo podčást ze zařízení, v případě [[soubor]]ů na disku nebo oken na displeji) a pečuje vhodným způsobem o užívání zařízení (typicky do bodu kde aplikace nepotřebuje znát implementační detaily zařízení)
Jádro také obvykle poskytuje metody pro [[Synchronizační primitiva|synchronizaci]] a komunikaci mezi [[proces]]y (nazývané meziprocesová komunikace neboli [[IPC]]).
Jádro může realizovat tyto prvky samo, nebo se spolehnout na některý z procesů, který běží aby poskytoval prostředky ostatním procesům, také v tomto případě musí poskytovat některé způsoby IPC aby umožnil ostatním procesům přistupovat k tomuto zařízení.
Řádek 23:
Hlavním úkolem jádra je umožnit vykonávání aplikací a podporovat je metodami jako je abstrakce [[hardware]]. K běhu aplikace jádro typicky nastavuje adresní prostor pro aplikaci, nahrává soubory obsahující aplikační kód do paměti (třeba pomocí [[stránkování paměti]]), nastavuje [[Zásobník (datová struktura)|zásobník]] pro program a poté předává řízení na pozici uvnitř programu, kde začíná jeho vykonávání.
[[Multitasking]] jádra umožňuje poskytovat uživateli [[Iluze|iluzi]] současného běhu libovolného počtu procesů na počítači. Typicky počet procesů které mohou na systému běžet zároveň je rovný počtu nainstalovaných procesorů (
V preemptivním multitaskingovém systému CPU (jádro procesoru) dává každému programu
Ostatní systémy (většinou na méně výkonných počítačích) můžou poskytovat kooperativní [[multitasking]], kde každému procesu je dovoleno běžet nepřerušeně dokud nevyšle speciální žádost, která ohlásí jádru, že může přepnout na jiný proces. Tyto dotazy jsou známy pod jménem „[[yielding]]“ a typicky se vyskytují v souvislosti s meziprocesovou komunikací nebo čekáním na událost. Starší verze operačních systémů [[Microsoft Windows|Windows]] a [[Mac OS|MAC]] používaly kooperativní multitasking, ale přešly na preemptivní, jakmile výkon počítačům, pro které byly určeny, vzrostl.
Operační systém může také podporovat multiprocesing (symetrický - SMP - nebo s neuniformním přístupem k paměti - [[Non-Uniform Memory Access|NUMA]]); v tom případě různé programy a [[Vlákno (program)|vlákna]] mohou běžet na různých
=== Správa paměti ===
Jádro má úplný přístup do paměti systému a musí umožnit procesům přistupovat k této paměti bezpečně jak potřebují. Často prvním krokem bývá [[virtuální paměť|virtuální adresování]], obvykle dosažené [[Stránkování paměti|stránkováním]] nebo [[segmentace paměti|segmentací]]. Virtuální adresování umožňuje jádru nahradit fyzickou adresu jinou, virtuální. Virtuální adresový prostor může být pro každý proces jiný. Část paměti, ke které přistupuje jeden proces na určité virtuální adrese může být jiná, než paměti ke které má na stejné adrese přístup jiný proces. To umožňuje každému programu se chovat jako by to byl jediný (odděleně od jádra) běžící a chrání aplikace před kolizí.
Na mnoha počítačových systémech může virtuální adresa odkazovat na data, která zrovna nejsou v paměti. Vrstva nepřímosti poskytovaná virtuálním adresováním umožňuje operačnímu systému používat jiná datová úložiště, jako je [[pevný disk]], k ukládání dat která by jinak byla v hlavní paměti (RAM). Díky tomu může operační systém umožnit programům používat více paměti než má systém fyzicky k dispozici. Když program potřebuje data, která právě nejsou v paměti, [[jednotka správy paměti|jednotka pro správu paměti]] (obvykle součást
Virtuální adresování také umožňuje vytváření virtuálních částí paměti ve dvou rozdělených oblastech, jedna bývá rezervována pro jádro (prostor jádra) a ostatní pro aplikace (uživatelský prostor). Procesor nepovoluje aplikacím, aby adresovaly paměť jádra, a tedy aby aplikace poškodila běžící jádro. Toto důležité rozdělení paměťového prostoru hodně přispívá nynější koncepci současných obecných jader a je téměř univerzální ve většině systémů, ačkoliv některá jádra (například Singularity) volí jiné metody.
|