Jádro operačního systému - monolitické, hybridní a mikrojádro.
Thursday, May 30, 2013
8:25 AM
Jádro operačního systému
Jádro je speciální program zavedený do hlavní paměti při startu systému přímo vykonávaný HW.  Jádro má přístup k adresovému prostoru procesů. Jádro je reentrantní, každý proces má svůj zásobník jádra, často přímo v adresovém prostoru procesu – chráněný, spravovaný jádrem. (procesy se navzájem neovlivňujou)
Vykonává služby
Zpracovává přerušení od periferních zařízení
Vykonává systémové procesy (správa paměti, přepočítávání priorit procesů)
Jádro pracuje
V kontextu procesu
Kontextem procesu rozumíme jeho stav, tj. množinu informací nutnou k obnovení činnosti procesu poté, co byl přerušen.
Je-li OS vykonáván jistý proces, říkáme o něm, že běží v kontextu procesu. Rozhodne-li se OS vykonávat jiný proces, provede přepnutí kontextu. OS dovoluje přepnout kontext jen za určitých předpokladů. Při přepínání kontextu si jádro uchovává dostatek informací k pozdějšímu obnovení činnosti procesu.
Obdobně při přechodu z uživatelského režimu do režimu jádra (zde jde o změnu režimu, nikoli změnu kontextu) si jádro uchová dostatek informací k návratu do uživatelského režimu.
Přerušení je obsluhováno v kontextu přerušeného procesu (pro obsluhu přerušení není vytvářen zvláštní proces), ačkoli tento proces nemusel přerušení způsobit. 
Kontext procesu obecně
[link]
Vloženo z <[link]> 
Monolitické
Jeden spustitelný soubor 
Uvnitř moduly pro jednotlivé funkce (filesys, procesy) 
Jeden program, řízení se předává voláním podprogramů 
Horší na údržbu
Příklady: UNIX, Linux, MS DOS 
Typickou součástí jádra je např. souborový systém 
Linux je monolitické jádro OS, s podporou zavádění modulů za běhu systému 
[link] 
Model klient – server 
Většinu činností OS vykonávají samostatné procesy mimo jádro (servery, např. systém souborů) 
Poskytuje pouze nejdůležitější nízkoúrovňové funkce 
Nízkoúrovňová správa procesů 
Adresový prostor, komunikace mezi adresovými prostory 
Někdy obsluha přerušení, vstupy/výstupy 
Pouze mikrojádro běží v privilegovaném režimu 
Méně pádů systému 
vynucuje modulární strukturu 
Snadnější tvorba distribuovaných OS (komunikace přes síť) 
Složitejší návrh systému 
Režie 
Příklady: QNX, Hurd, OSF/1, MINIX, Amoeba 
Hybridní jádro je v informatice označení pro jádro operačního systému, které kombinuje vlastnosti monolitického jádra a mikrojádra za účelem získání výhod obou vyhraněných řešení. Hybridní jádro je podobné mikrojádru, ale má některé vlastnosti monolitického jádra, kvůli vyššímu výkonu. Na rozdíl od monolitického jádra nedokáže hybridní jádro za běhu samo zavádět moduly. V jaderném prostoru hybridního jádra běží některé služby (např. implementace síťového protokolu nebo souborový systém), aby se dosáhlo nižší režie v porovnání s mikrojádry, ostatní kód jádra (ovladače zařízení), běží v uživatelském prostoru a označují se jako servery.
WinNT
[link] 
Výstavba systému od nejnižších vrstev Vyšší vrstvy využívají primitiv poskytovaných nižšími vrstvami Hierarchie procesů
–Nejníže vrstvy komunikující s HW
–Každá vyšší úroveň poskytuje abstraktnější virtuální stroj
–Může být s HW podporou – pak nelze vrstvy obcházet (obdoba systémového volání) Příklady: THE, MULTICS
proces v uživatelském módu má přístup ke svému
          adresovému prostoru, k systémovému prostoru voláním
          sytem_call()
          jádro má přístup k adresovému prostoru procesů
proces používá dva zásobníky
uživatelský
uživatelský                                            zásobník
zásobník                                                 jádra   
každý proces má svůj zásobník jádra, často v 
adresovém prostoru procesu – chráněný, spravovaný 
každý proces má položku v tabulce procesů proc
záznam a u (user) oblast
u oblast – údaje potřebné když je proces vykonávaný
- tabulku deskriptorů souborů otevřených souborů
- okamžitý adresář
- kořenový adresář
- často zásobník jádra procesu
Vloženo z <[link]> 
Vloženo z <[link]> 
From <[link]> 