statnice:vyvoj:otazka7
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| statnice:vyvoj:otazka7 [06.05.2008 14:39] – vytvořeno xvalo07 | statnice:vyvoj:otazka7 [18.05.2008 10:32] (current) – xvalo07 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Operační systémy | + | ====== 7. Operační systémy |
| Struktura operačních systémů, typy operačních systémů. Proces, komunikace mezi procesy, paralelismus, | Struktura operačních systémů, typy operačních systémů. Proces, komunikace mezi procesy, paralelismus, | ||
| - | Úloha | + | ===== Úloha |
| + | **Předpoklady: | ||
| Zhodnoťte za jakých podmínek umožníte ve své organizaci použití více druhů OS, tj. heterogenní prostředí na úrovni OS. | Zhodnoťte za jakých podmínek umožníte ve své organizaci použití více druhů OS, tj. heterogenní prostředí na úrovni OS. | ||
| - | Zadání: | + | |
| - | Jaké faktory a okolnosti vezmete v úvahu? | + | **Zadání:** |
| + | | ||
| + | |||
| + | ===== Teorie ===== | ||
| + | |||
| + | Operační systém – součást základního softwarového vybavení počítače – s určitým zjednodušením lze říci, že leží mezi HW a ASW, nicméně ne tak docela (mikrokód, atd.). Vytváří určité standardní prostředí pro běh jiných programů a je to de facto jedna z abstraktních vrstev. | ||
| + | |||
| + | Struktura operačních systémů – typy: monolitický (vše v jednom – malé, rychlé, výkonné jádro, nicméně trochu chaos, problémy s laděním – typicky MSDOS, Unixy), vrstevnatý (jednotlivé složky OS, jako je správa paměti, řízení procesů, IO funkce, uživatelská vrstva, atd. jsou striktně odděleny, jejich vnitřní struktura je mezi nimi odstíněna – přehledné, | ||
| + | |||
| + | Proces – instance programu. Je definován svým kontextem, který definuje datovou strukturu v paměti, kde je kód nahrán, registry v CPU, zásobník, hromadu, atd. Jedno CPU může v jednu chvíli vykonávat pouze jeden proces. Procesy mohou vyvolávat child procesy, na některých OS jim předávají své datové struktury, na některých ne, mohou se i různým způsobem vzájemně ukončovat, atd. Přepínání procesů – rychlým přepínáním různých procesů se dosahuje iluze současného běhu více programů současně. Tzv. přepínání kontextu. Procesy mohou být běžící, ready nebo blokované (a to buď vyvoláním nějaké žádosti třeba o IO, chybou, vlastní žádostí nebo prostě tím, že jim dojde čas a OS jim odebere CPU – na některých systémech to není). Kromě toho mohou být inicializované předtím, než se rozeběhnou nebo ukončené – zombie procesy nebo mohou být suspendované blokované nebo čekající. | ||
| + | |||
| + | Přerušení – vyvolaná různými věcmi – např. | ||
| + | |||
| + | Paralelismus – běh více procesů najednou. Je to žádoucí, protože můžeme zajistit asynchronní zpracování (nemusí čekat na tlačítko), | ||
| + | Komunikace mezi procesy – záleží na tom, zda jde o komunikaci jednoduchou – nejprimitivnější – sdílená paměť a semafor nebo one to one, nebo složitější prostřednictvím mailboxu (různé typy bufferů – zero length, omezená délka, neomezená délka), v distribuované architektuře RPC. Problémy – zda potvrzovaná nebo ne, pokud to běží zvlášť na různých strojích, jak ošetřit, jestli jeden nebo druhý nezkolaboval – čekání na doručení, případně aby nedošlo k opakovanému doručení. Rozlišení zda je zpráva omezená, neomezená. U Unixu – pipes – emulace souboru, neomezená délka. U distribuovaných systémů může být problém v kódování dat. | ||
| + | |||
| + | Přidělování CPU procesům: job scheduling, process scheduling – plánování přidělování času. Může být preemptivní (při čekání na I/O, ukončení procesu, vyvolaném přerušení, | ||
| + | |||
| + | Obsluha přerušení – přerušení SW a HW (IRQ – interní a externí – maskovatelná a nemaskovatelná). Uloží obsah registrů a přepnou program někam jinam. | ||
| + | |||
| + | Deadlocky – za určitých okolností může dojít k tomu, že dva či více procesů vzájemně čeká na přidělení prostředku v zablokování – nekonečně dlouho. Např. pokud jeden drží prostředky a žádá o další, nedostane, zablokuje se a jiné zase čekají na prostředky, | ||
| + | |||
| + | Paměť – různé druhy – registry CPU, cache (2 úrovně), interní operační paměť, externí paměť. U jednouživatelských OS není víceméně problém – pro proces velikost paměti – co zabírá OS. Pokud potřebujeme více paměti, musí se dělat overlay nebo stránkování. Pokud je v paměti více procesů, nastává komplikovaná problém – jednak by si procesy neměly vzájemně do paměti lézt, potom je třeba jim zajistit víc kapacity, než umožňuje fyzická velikost paměti, je tu problém fragmentace, | ||
| + | |||
| + | Soubory – data uložená zpravidla na permanentním datovém médiu. Jsou definována svým názvem a umístěním v adresářové struktuře, taktéž jsou známy atributy, délka, dlouhé jméno, přístupová práva, atd. Umístění souborů – lineárně – celý soubor v jednom kuse (CD-ROM pásky – tam, kde se na to nebude šahat). Na disku, kde hrozí změna velikosti souboru, atd. po blocích – buď spojovým seznamem, což se moc nepoužívá nebo bitovou mapou. Stará FATka měla bloky po sobě jdoucí, kde u každého byl zda je plný a kde je další. V Unixu i-nodes – speciální soubory obsahující názvy a další data k souborům odkazy na datové bloky a nepřímé odkazy na další i-nodes. Zápis po blocích přináší problém obsazení fyzicky většího místa, než je velikost souboru, protože se využívají celé bloky – čím větší blok, tím rychlejší zpracování, | ||
| + | |||
| + | Obsluha sdílených souborů – využívaný soubor je zamčen – zámky mohou být různé – pro čtení, zápis, někde jsou povinné – Novell (zamčený soubor nelze ani kopírovat), | ||
| + | ===== Praxe ===== | ||
| + | |||
| + | Musí k tomu být důvod – např. máme aplikaci, která nějaký systém požaduje. Rozdíl je rovněž mezi serverovými OS a uživatelskými OS. Vždy je ale třeba hodnotit TCO, nejen náklady na nákup toho kterého software. Čili – náklady na HW, sítě, požadavky aplikací, co umí uživatelé (zda bychom je museli přeškolovat, | ||
| + | |||
| + | Nevýhody heterogenních sítí – vyšší nároky na znalosti adminů, na správu, potenciál většího množství chyb, nekompatibilit, | ||
statnice/vyvoj/otazka7.1210077591.txt.gz · Last modified: 06.05.2008 00:00 (external edit)
