načítání...
nákupní košík
Košík

je prázdný
a
b

Kniha: Informatika - J. Glenn Brookshear

Informatika
-15%
sleva

Kniha: Informatika
Autor:

Jste studenti informatiky nebo se o informatiku zajímáte? Díky této knize prověřené v zahraničí několika vydáními získáte nejen celkový přehled o oboru informatika, ale pochopíte ... (celý popis)
Kniha teď bohužel není dostupná.

»hlídat dostupnost


hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%hodnoceni - 0%   celkové hodnocení
0 hodnocení + 0 recenzí

Specifikace
Nakladatelství: Computer press
Médium / forma: Tištěná kniha
Rok vydání: 2013-02-06
Počet stran: 608
Rozměr: 210 x 285 mm
Úprava: 608 stran : ilustrace
Vydání: 1. vyd.
Název originálu: Computer science
Spolupracovali: a přispěvatelé David T. Smith, Dennis Brylow
překlad Jakub Goner
Vazba: vázaná s laminovaným potahem
Doporučená novinka pro týden: 2013-07
ISBN: 9788025138052
EAN: 9788025138052
Ukázka: » zobrazit ukázku
Popis / resumé

Učebnice poskytuje studentům informatiky i jiných oborů celkový přehled o informatice.

Popis nakladatele

Jste studenti informatiky nebo se o informatiku zajímáte? Díky této knize prověřené v zahraničí několika vydáními získáte nejen celkový přehled o oboru informatika, ale pochopíte i vzájemné souvislosti mezi jeho jednotlivými disciplínami. Autor také kladl důraz na to, aby probíraná látka zůstala přístupná i pro studenty netechnických oborů. Výklad této učebnice vychází z principu „od konkrétního k abstraktnímu“. Text vznikl na základě mnoha let praktické výuky a díky tomu je plný pedagogických prvků. Zásadní význam má více než 1000 problémových situací, které pomáhají při zapojení studentů. Naleznete je v sekcích Otázky a cvičení, Úlohy na procvičování témat kapitoly a Společenské otázky. V knize najdete mimo jiné následující témata: - Kódování informací a ukládání dat - Počítačová architektura - Operační systémy - Počítačové sítě - Algoritmy a programovací jazyky - Vývoj softwaru - Metody na zdokonalení přístupu k informacím - Počítačová grafika - Umělá inteligence - Abstraktní teorie vyčíslitelnosti Jednotlivé kapitoly a jejich části jsou na sobě nezávislé a lze je číst jako samostatné jednotky nebo změnit jejich uspořádání tak, aby poskytly alternativní výukový směr. Na úvodní stránce každé z kapitol jsou některé části označeny hvězdičkami jako volitelné. Jedná se o pasáže, které se zabývají speciálnějšími tématy, případně zkoumají tradičnější témata do větší hloubky. O autorovi: J. Glenn Brookshear je emeritním profesorem Marquette University, kde vedl kurzy formálního jazyka, informatiky a teorie vyčíslitelnosti.

Předmětná hesla
Související tituly dle názvu:
Podniková informatika Podniková informatika
Pour Jan, Gála Libor, Šedivá Zuzana
Cena: 501 Kč
Podniková informatika Podniková informatika
Pour Jan, Gála Libor, Šedivá Zuzana
Cena: 501 Kč
Recenze a komentáře k titulu
Zatím žádné recenze.


Ukázka / obsah
Přepis ukázky

KAPITOLA

3

Operační systémy

V této kapitole se budeme zabývat operačními systémy, což jsou softwarovéba

líky, které koordinují interní činnosti počítačů a řídí také jejich komunikacis oko

lím. Právě díky operačnímu systému se z  počítačového hardwaru stává užitečný

nástroj. Pokusíme se porozumět tomu, jaké mají operační systémy úkoly a jak je

plní. Díky těmto znalostem se můžeme stát poučenými uživateli počítačů.

3.1: Historie operačních

systémů

3.2: Architektura operačních

systémů

Analýza softwaru

Komponenty operačního systému

Spouštění

3.3: Koordinace činností

počítače

Proces

Správa procesů

*3.4: Soutěžení podprocesů

o prostředky

Semafory

Uváznutí

3.5: Zabezpečení

Útoky zvnějšku

Útoky zevnitř

*Hvězdičky označují doporučené

volitelné části.

!Kniha_K2037.indb 121!Kniha_K2037.indb 121 4.1.2013 7:46:064.1.2013 7:46:06


122 Kapitola 3 – Operační systémy

Operační systém je soft ware, který řídí základní fungování počítače. Umožňujeuživatelům ukládat a  načítat soubory, poskytuje rozhraní, aby mohl uživatel spouštět

programy, a nabízí prostředí, které je potřebné k činnosti požadovaných programů.

Pravděpodobně nejznámějším příkladem operačního systému je systém Windows, který v  mnoha verzích dodává společnost Microsoft a  v  oblasti počítačů PC má dominantní postavení. Další tradiční operační systém se nazývá UNIX, který představuje oblíbenou volbu pro větší počítačové systémy i počítače třídy PC. UNIX leží i v jádru dvou dalších rozšířených operačních systémů: Mac OS, což je operační systém, kterým společnost Apple vybavuje svou řadu počítačů Macintosh, a Solaris, který vyvíjela fi rma Sun Microsystems (nyní ji vlastní společnost Oracle). Jiný operační systém, který nalezneme ve velkých i malých počítačích, se nazývá Linux. Původně jej jako nekomerční svobodný soft ware vytvořili počítačoví nadšenci a nyní jej dodává i mnoho fi rem včetně IBM.

Z hlediska běžných uživatelů počítačů jsou rozdíly mezi operačními systémyz větší části kosmetické. Pro počítačové odborníky však mohou různé operační systémy vyžadovat zásadní změnu nástrojů, se kterými pracují, nebo principů šířenía kontroly výsledků jejich práce. Všem hlavním operačním systémům je ale společné, že řeší stejné typy problémů, s nimiž se počítačoví experti potýkají již téměř půl století. 3.1: Historie operačních systémů Dnešní operační systémy jsou velké a  složité soft warové balíky, které vyrostly ze skromných počátků. Počítače ve 40. a 50. letech nebyly příliš pružné ani efektivní. Výpočetní stroje zabíraly celé místnosti. Spouštění programů vyžadovalo náročnou přípravu zařízení, kdy bylo nutné připojit magnetické pásky, umístit do čteček děrné štítky, nastavit přepínače atd. Spuštění každého programu, kterým se říkalo úloha (job), představovalo izolovanou činnost. Počítač byl připraven na spuštění programu, program byl proveden a  poté bylo nutné vyjmout všechny pásky, děrné štítky atd., aby mohla začít příprava počítače na další program. Když muselo jeden počítač sdílet více uživatelů, vytvářely se časové rozvrhy, aby si mohli uživatelé počítačrezervovat na určitý časový úsek. V intervalu přiděleném konkrétnímu uživateli bylpočítač kompletně pod jeho kontrolou. Relace obvykle začínala nastavením programu, po kterém následovala krátká spouštění programu. Uživatelé často na závěr spěchali, aby stihli ještě jednu operaci („Bude to trvat jen minutu“), zatímco další uživatelnetrpělivě začínal chystat svou úlohu.

V  takovém prostředí vznikly operační systémy jako nástroje, které měly zjednodušit nastavení programů a zefektivnit střídání úloh. Při jejich vývoji došlo poměrně záhy k oddělení uživatelů od zařízení, aby se lidé nemuseli fyzicky střídatv počítačovém sálu. Počítač obsluhoval specializovaný operátor. Pokud chtěl někdo spustit svůj program, musel jej předat operátorovi spolu se všemi potřebnými datya speciálními pokyny ohledně požadavků programu. Později si pak mohl vyzvednout výsledky. Operátor pak příslušné zdroje načetl do hromadného úložiště počítače, kde je mohl program označovaný jako operační systém načítat a spouštět jeden po druhém.Jednalo se o začátek dávkového zpracování, kdy se spouštěné úlohy shromáždilydo jediné dávky a poté je počítač provedl bez další interakce s uživatelem.

!Kniha_K2037.indb 122!Kniha_K2037.indb 122 4.1.2013 7:46:074.1.2013 7:46:07


1233.1: Historie operačních systémů

V systémech dávkového zpracování čekají úlohy v hromadném úložišti naspuštění v tzv. frontě úloh (viz obrázek 3.1). Fronta (queue) označuje způsob uložení dat, při kterém jsou objekty (v tomto případě úlohy) zpracovávány tak, že dříve přijdou na řadu ty, které byly do fronty dříve zařazeny. (Pro frontu se používá takéoznačení FIFO z  anglického „fi rst-in, fi rst-out“ – první dovnitř, první ven). Objekty jsou tedy z fronty odstraňovány ve stejném pořadí, v jakém do ní vstoupily. Většina front úloh  ve skutečnosti režim fronty nedodržuje přesně, protože operační systémyzpravidla zohledňují prioritu úloh. Úlohu čekající ve frontě úloh proto může přeskočit úloha s vyšší prioritou.

V  raných systémech dávkového zpracování doprovázela každou úlohu sada instrukcí, které popisovaly postup přípravy počítače ke konkrétní úloze. Tyto instrukce byly zakódovány systémem, který se označoval jako jazyk JCL (job control language), a uloženy do fronty úloh spolu s vlastní úlohou. Když byla úloha připravena kespuštění, operační systém vytiskl tyto instrukce na tiskárně, aby je mohl operátor počítače přečíst a postupovat podle nich. Tato komunikace mezi operačním systémema operátorem počítače přetrvala dodnes, jak dokládají zprávy operačních systémů počítačů PC s chybami jako „disková jednotka není dostupná“ a „tiskárna neodpovídá“.

Hlavní nevýhoda operátora počítače, který slouží jako prostředník mezi počítačem a jeho uživateli, spočívá v tom, že jakmile uživatelé předají úlohy operátorovi,nemohou s  nimi nijak interagovat. Tento postup je přijatelný u  některých aplikací, jako je zpracování mezd, kdy jsou veškeré údaje a  postupy zpracování určeny předem. Nehodí se však, když musí uživatel se svým spuštěným programem komunikovat. Jako příklady lze uvést rezervační systémy, kde je potřeba zadávat aktuální rezervace a storna, systémy zpracování textu, kde uživatelé vznikající dokumenty interaktivně doplňují a opravují, nebo počítačové hry, v nichž interakce s počítačem představuje klíčový aspekt programu.

Kvůli těmto nárokům vznikly nové operační systémy, které umožnily, aby aktivní program vedl dialog s  uživatelem pomocí vzdálených terminálů. Tato funkce se nazývá interaktivní zpracování (viz obrázek 3.2). (Terminál tvořil prakticky pouze elektronický psací stroj, kde mohl uživatel zadávat svůj vstup a číst odpovědi počítače vytištěné na papír. Od těchto primitivních terminálů postoupil vývoj až k dnešním vyspělým zařízením označovaným jako pracovní stanice a dokonce ke kompletním počítačům PC, které mohou v případě potřeby fungovat samostatně.) Obrázek 3.1: Dávkové zpracování

VýsledkyÚlohy: program,

data a pokyny

Doména uživatele

Doména

počítače

Fronta úloh

Spuštění

úlohy

!Kniha_K2037.indb 123!Kniha_K2037.indb 123 4.1.2013 7:46:074.1.2013 7:46:07


124 Kapitola 3 – Operační systémy

Úspěšné interaktivní zpracování vyžaduje dostatečnou rychlost počítačovýchoperací, aby dokázaly reagovat na potřeby uživatele a uživatel se nemusel přizpůsobovat časovému rozvrhu počítače. (Úlohu zpracování mezd lze naplánovat podle toho,kolik času na ni počítač potřebuje, ale textový procesor by se dal sotva používat, kdyby počítač okamžitě nereagoval na stisknuté klávesy.) Počítač je v jistém smyslu nucen provádět úkoly ve vymezené lhůtě. Tento proces získal svůj název zpracovánív reálném čase (real-time processing), protože operace probíhají v  reálném čase. Řekneme-li tedy, že počítač realizuje určitý úkol v reálném čase, znamená to, že počítač tento úkol plní v souladu se lhůtami svého externího fyzického prostředí.

Pokud by interaktivní systémy musely v  danou chvíli reagovat pouze na vstupy jednoho uživatele, nebylo by zpracování v reálném čase nijak složité. Počítače v 60. a  70.  letech však byly velmi drahé, takže musel každý stroj sloužit více uživatelům. Proto bylo běžné, že několik uživatelů pracujících se vzdálenými terminálypožadovalo od počítače interaktivní služby současně. Přitom se objevovaly potíže sezpracováním v reálném čase. Jestliže operační systém dovoloval v daný okamžik spustit pouze jednu úlohu, mohl přijatelnou interaktivní službu poskytnout jen jednomu uživateli.

Při řešení tohoto problému vznikly operační systémy, které poskytovaly služby více uživatelům současně. Tato funkce se označuje jako sdílení času (time-sharing). Sdílení času lze implementovat například metodou zvanou multiprogramming, kdy se čas dělí na intervaly a spuštění každé úlohy je omezeno pouze na jedenz následných intervalů. Na konci každého intervalu je aktuální úloha dočasně odstavenaa během dalšího intervalu může fungovat jiná úloha. Tímto rychlým přepínáním úloh vzniká iluze, že je spuštěno několik úloh současně. V závislosti na typu spuštěných úloh dokázaly první systémy sdílení času zajistit přijatelné zpracování v reálném čase až pro 30 uživatelů současně. V  současnosti se metody založené na multiprogrammingu používají v jednouživatelských i víceuživatelských systémech, ačkoliv systémech prvního typu se výsledek obvykle označuje jako multitasking. Sdílení času tedy znamená, že více uživatelů sdílí přístup ke stejnému počítači, zatímco pojem multitasking označuje současné spouštění více úloh jedním uživatelem. Obrázek 3.2: Interaktivní zpracování

V  souvislosti s  vývojem víceuživatelských operačních systémů se sdílením času se počítače obvykle konfi gurovaly tak, že jeden velký centrální stroj byl připojen k mnoha pracovním stanicím. Z těchto pracovních stanic mohli uživatelés počítačem komunikovat přímo zvnějšku počítačového sálu a nemuseli předávat svéžádosProgramy, data,

pokyny a výsledky

Doména uživatele

Doména

počítače

Spuštění

programu

!Kniha_K2037.indb 124!Kniha_K2037.indb 124 4.1.2013 7:46:074.1.2013 7:46:07


1253.1: Historie operačních systémů

ti operátorovi. Běžně používané programy byly uloženy v  zařízeních hromadného

úložiště počítače a operační systémy byly upraveny tak, aby tyto programy dokázaly

spouštět na základě požadavků z pracovních stanic. Vzhledem k tomu se začalavytrácet potřeba samostatné role operátora počítače jako prostředníka mezi uživateli

a počítačem.

V  současnosti již operátoři počítačů prakticky vymizeli. Platí to hlavně v  oblasti

osobních počítačů, kde veškerou odpovědnost za činnost počítače přebírají uživatelé.

I značně velké počítačové instalace nyní fungují v zásadě bez obsluhy. Roli operátora

počítače vystřídala role administrátora systému, který počítačový systém spravuje –

získává nový hardware a soft ware a dohlíží na jeho instalaci, vynucuje místní zásady

(např. vytváří nové účty a stanovuje kvóty jednotlivých uživatelů v hromadnémúložišti) a koordinuje řešení problémů, které se při činnosti systému vyskytují –neovlivňuje už jednotlivé operace počítače.

Když to shrneme, operační systémy se z  jednoduchých programů, které načítaly

a  postupně spouštěly jednotlivé programy, vyvinuly do složitých celků, které koordinují sdílení času, spravují programy a  datové soubory v  počítačových zařízeních

hromadného úložiště a přímo reagují na požadavky uživatelů počítače.

Evoluce operačních systémů však nadále pokračuje. Vývoj víceprocesorových

počítačů vedl ke vzniku operačních systémů, které nabízejí možnosti sdílení času

a multitaskingu tak, že různé úlohy přiřazují různým procesorům a zároveň zajišťují

sdílení času každého jednotlivého procesoru. Tyto operační systémy se musí potýkat

s  problémy typu vyrovnávání zátěže (load balancing – tj. s  dynamickým přidělováním úloh různým procesům tak, aby byly všechny procesory efektivně využity)

a škálování (scaling – rozdělení úloh na více dílčích úloh, které vyhovují dostupné

sadě procesorů).

Rozvoj počítačových sítí, které dokáží na velké vzdálenosti propojit mnohopočítačů, také umožnil vznik soft warových systémů ke koordinaci aktivity v síti. Oblast sítí

(kterou budeme studovat v kapitole 4) tedy z mnoha ohledů navazuje na témaoperačních systémů. Cílem je zajistit správu prostředků u mnoha uživatelů a počítačů,

nikoli pouze v jediném izolovaném počítači.

Jiný směr vývoje operačních systémů je orientován na zařízení, která jsou určena

pro konkrétní nasazení – např. zdravotnické přístroje, elektronika v  automobilech,

domácí spotřebiče, mobilní telefony nebo jiné počítače do ruky. Počítačové systémy

používané v těchto zařízeních se nazývají integrované systémy (embedded system).

Od integrovaných operačních systémů se často očekává, že budou šetřit energiibaCo to je smartphone?

Spolu se zvyšováním svého výpočetního výkonu mohou mobilní telefony poskytovat služby, které přesahují

pouhé zpracování hlasových hovorů. Typický smartphone nyní dokáže přenášet textové zprávy, procházet

web, poskytovat navigační služby, zobrazovat multimediální obsah – stručně řečeno, dokáže zajistit většinu

služeb klasického počítače. Smartphony proto vyžadují kompletní operační systémy, nejen kvůli správěomezených prostředků svého hardwaru, ale také kvůli zajištění funkcí, které vyžaduje stále rostoucí sada jejichaplikačního softwaru. Mezi operačními systémy pro smartphony probíhá nelítostný souboj o dominanci na trhu,

o jehož výsledku pravděpodobně rozhodne, který z těchto systémů nabídne nejatraktivnější funkce za nejlepší

cenu. V oblasti operačních systémů pro smartphony soupeří například iPhone OS společnosti Apple,BlackBerry OS společnosti Research In Motion, Windows Phone společnosti Microsoft, Symbian OS společnosti Nokia

a Android společnosti Google.

!Kniha_K2037.indb 125!Kniha_K2037.indb 125 4.1.2013 7:46:084.1.2013 7:46:08


126 Kapitola 3 – Operační systémy

Otázky a cvičení

terií, plnit náročné požadavky na zpracování v  reálném čase nebo trvale fungovat

s minimálním nebo žádným lidským dohledem. K úspěšným příkladům z tétooblasti patří systém VxWORKS, který vyvinula fi rma Wind River Systems pro nasazení

v  robotech na průzkum Marsu s  názvy Spirit a  Opportunity, systém Windows CE

(označovaný také jako Pocket PC) od společnosti Microsoft a systém Palm OS, který

vytváří fi rma PalmSource, Inc., zejména pro nasazení v příručních zařízeních.

1. Uveďte příklady front. U  každého příkladu zmiňte situace, které porušují

standardní pravidla fronty.

2. Které z následujících činností vyžadují zpracování v reálném čase?

a. Tisk poštovních štítků

b. Hraní počítačové hry

c. Zobrazení vytáčených čísel na displeji smartphonu

d. Spuštění programu, který předpovídá ekonomickou situaci v  příštím

roce

e. Přehrávání záznamu ve formátu MP3

3. Jaký je rozdíl mezi integrovanými systémy a počítači PC?

4. Jaký je rozdíl mezi sdílením času a multitaskingem? 3.2: Architektura operačních systémů Chceme-li porozumět struktuře typického operačního systému, musíme nejdříveposat nejrůznější soft ware, kterým jsou počítačové systémy obvykle vybaveny. Poté se zaměříme na samotný operační systém. Analýza softwaru Soft ware, který se nachází v běžném počítačovém systému, můžeme roztřídit doněkolika kategorií. Taková klasifi kační schémata se nevyhnou tomu, že se podobnéprogramy ocitnou v jiných třídách – podobně jako časová pásma vedou k tomu, že při přechodu mezi blízkými sídly je nutné posunout čas o celou hodinu, ačkoli se místní čas východu a západu slunce téměř neliší. V případě třídění soft waru se navícmusíme potýkat s rozpory v terminologii, které jsou dány dynamickou povahou předmětu a neexistencí centrální autority. Uživatelé operačních systémů Microsoft Windows si například zvykli na skupiny programů s názvem „Příslušenství“ (Accessories)a „Nástroje pro správu“ (Administrative Tools), které zahrnují soft ware z  kategorie aplikací i nástrojů. Následující systém třídění tedy považujme spíše za způsob, jak získat představu o rozsáhlé a dynamické oblasti, než za nějakou obecně přijímanou normu.

Začněme rozdělením počítačového soft waru do dvou širokých kategorií: naaplikační soft ware a systémový soft ware (viz obrázek 3.3). Aplikační soft warezahrnuje programy, které plní úkoly související s  využitím počítače. Počítač, který slouží

!Kniha_K2037.indb 126!Kniha_K2037.indb 126 4.1.2013 7:46:084.1.2013 7:46:08


1273.2: Architektura operačních systémů

ke  správě skladových zásob ve výrobním podniku, bude obsahovat jiný aplikační

soft ware než počítač, se kterým pracuje elektrotechnik. Jako příklady aplikačního

soft waru můžeme uvést tabulkové procesory, databázové systémy, systémypočítačové sazby, účetní systémy, vývojářský soft ware a hry.

Na rozdíl od aplikačního soft waru je systémový soft ware zaměřen na úkoly, které jsou společné všem počítačovým systémům. Lze říci, že systémový soft wareposkytuje infrastrukturu nezbytnou pro aplikační soft ware podobně jako veřejnáinfrastruktura (úřady, cesty, rozvodné sítě, fi nanční instituce atd.) poskytuje základy životního stylu moderní společnosti.

Třída systémového soft waru zahrnuje dvě kategorie: jednu z  nich tvoří samotný operační systém a druhá obsahuje soft warové jednotky, které se souhrnně označují jako nástroje (utility soft ware). Většinu nainstalovaných nástrojů představujíprogramy, jejichž funkce jsou sice potřebné pro fungování operačního systému, ale nejsou jeho součástí. Třída soft warových nástrojů v jistém smyslu zahrnuje programy,které rozšiřují (nebo případně přizpůsobují) možnosti operačního systému. Samotné operační systémy například často neimplementují funkci formátování magnetického disku nebo kopírování souborů na disk CD, ale tyto vlastnosti jsou dostupné díky nástrojům. K dalším nástrojům patří soft ware pro komprimaci a dekomprimaci dat, soft ware na přehrávání multimediálních prezentací a soft ware, který obsluhujesíťovou komunikaci.

Implementace určitých činností pomocí soft warových nástrojů umožňuje lépe přizpůsobit systémový soft ware požadavkům konkrétní instalace, než kdyby byly příslušné funkce součástí operačního systému. Mnoho fi rem a  jednotlivců   ve skutečnosti upravuje nebo doplňuje soft warové nástroje, které byly původně k dispozici spolu s jejich operačním systémem. Obrázek 3.3: Třídění softwaru

Rozdíl mezi aplikačním soft warem a  nástroji často bohužel není příliš zřetelný. Z našeho pohledu spočívá zásadní rozdíl v tom, zda je balíček součástí „soft warové infrastruktury“ počítače. Pokud se tedy nová aplikace prosadí jako základní nástroj, může přejít do kategorie soft warového nástroje. V rané fázi výzkumného projektu byl

Uživatelské rozhraní Jádro

Nástroj

Aplikace

Software

Systém

Operační

systém

!Kniha_K2037.indb 127!Kniha_K2037.indb 127 4.1.2013 7:46:084.1.2013 7:46:08


128 Kapitola 3 – Operační systémy

soft ware pro komunikaci po Internetu považován za aplikační soft ware. V současnosti jsou tyto programy standardní součástí výbavy většiny počítačů a lze je proto

zařadit mezi soft warové nástroje.

Přechod mezi soft warovými nástroji a  operačním systémem rovněž není jasný.

V USA a Evropě například probíhaly soudní procesy se společností Microsoft obviněnou z monopolního chování. Přitom se řešily otázky toho typu, zda jsouprohlížeče a mediální přehrávače komponentami operačních systémů společnosti Microsoft ,

nebo se jedná o nástroje, které tato společnost zahrnula proto, aby zlikvidovalakonkurenci.

Komponenty operačního systému

Zaměřme se nyní na součásti ze sféry operačního systému. Aby mohl operační systém

provádět činnosti požadované uživateli, musí s nimi komunikovat. Část operačního

systému, která obsluhuje tuto komunikaci, se často označuje jako uživatelské rozhraní (user interface). Starší uživatelská rozhraní zvaná příkazový interpret (shell)

komunikovala s  uživateli prostřednictvím textových zpráv, které uživatel zadával

na klávesnici a počítač vypisoval na obrazovce. Modernější operační systémy k tomu

používají grafi cké uživatelské rozhraní (GUI – z  angl. „graphical user interface“).

Toto rozhraní reprezentuje manipulované objekty, jako jsou soubory a  programy,

v podobě ikon. Tyto systémy uživatelům umožňují zadávat příkazy pomocíněkterého z běžných vstupních zařízení. Ke klepání na ikony a jejich přetahování například

slouží počítačová myš s jedním nebo více tlačítky. Při kreslení nebo v případě práce

s  některým zařízením do ruky lze místo myši použít speciální ukazovací zařízení

či pera. Před nedávnem se objevily dotykové displeje s  jemným rozlišením, které

uživatelům dovolují manipulovat s ikonami přímo pomocí prstů. Současná grafi cká

uživatelská rozhraní jsou sice založena na dvourozměrné projekci, ale zároveň již

probíhá výzkum trojrozměrných rozhraní, v nichž budou moci uživatelékomunikovat s počítačem pomocí 3D projekčních systémů, dotykových zařízení a prostorové

reprodukce zvuku.

Uživatelské rozhraní operačního systému sice hraje významnou roli při zajištění

funkčnosti počítače, ale celá architektura uživatelského rozhraní slouží pouze jako

prostředník mezi počítačovým uživatelem a  jádrem operačního systému (viz obrázek  3.4). Tento rozdíl mezi uživatelským rozhraním a  interními součástmi operačního systému je zřejmý z toho, že v některých operačních systémech si uživatelé

mohou vybrat z více různých rozhraní takové, které jim při obsluze systému nejlépe Linux Počítačoví nadšenci, kteří chtějí experimentovat s interními součástmi operačního systému, si mohounainstalovat systém Linux. Tento operační systém začal vyvíjet Linus Torvalds v době, kdy studoval na univerzitěv Helsinkách. Jedná se o svobodný software, který je spolu se svým zdrojovým kódem (viz kapitola 6)a dokumentací k dispozici zcela zdarma. Vzhledem ke svému otevřenému zdrojovému kódu si tento systém získal přízeň počítačových fandů, studentů operačních systémů a programátorů obecně. Kromě toho je Linux uznáván jako jeden z nejstabilnějších operačních systémů, které jsou v současnosti dostupné. Z tohoto důvodu nyní různé fi rmy připravují a propagují komerční verze Linuxu ve snadno použitelné podobě. Tyto produkty nyní na trhu úspěšně konkurují zavedeným komerčním operačním systémům. Další informace o systému Linux naleznete na webu http://www.linux.org.

!Kniha_K2037.indb 128!Kniha_K2037.indb 128 4.1.2013 7:46:084.1.2013 7:46:08


1293.2: Architektura operačních systémů

vyhovuje. Uživatelé operačního systému UNIX si například mohou zvolit příkazový

interpret Bourne shell, C shell a Korn, shell stejně jako grafi cké uživatelské rozhraní

s názvem X11. V případě prvních verzí operačního systému Microsoft Windows se

jednalo o  aplikační program grafi ckým uživatelským rozhraním, který bylo možné

spustit z příkazového řádku operačního systému MS-DOS. Prostředí systému DOS

(jako program cmd.exe) je dodnes k dispozici ve skupině nástrojů nejnovějšíchsystémů Windows, ačkoli běžní uživatelé je téměř nikdy nepotřebují. Systém OS Xspolečnosti Apple si obdobně zachovává nástroj Terminal, který odkazuje na unixový

původ tohoto systému.

Důležitou součástí dnešních grafi ckých uživatelských prostředí je správce oken (window manager), který vyhrazuje na obrazovce bloky označované jako oknaa sleduje, která aplikace je přidružena ke kterému oknu. Když aplikace potřebuje něco vykreslit na obrazovce, oznámí to správci oken a tento správce umístí požadovanou grafi ku do okna patřícího dané aplikaci. Obdobně platí, že po klepnutí na tlačítko myši zjistí správce oken umístění myši a oznámí akci myši příslušné aplikaci. Správci oken odpovídají za vzhled neboli „styl“ grafi ckého uživatelského rozhraní. Většina správců přitom nabízí mnoho možností konfi gurace. Uživatelé systému Linux simohou dokonce vybrat z několika různých správců oken. Oblíbené alternativypředstavuje například KDE a Gnome.

Protějšek uživatelského rozhraní operačního systému tvoří jeho vnitřní část zvaná jádro (kernel). Jádro operačního systému obsahuje soft warové komponenty, které plní nejzákladnější funkce potřebné k fungování počítače. Jednou z těchto jednotek je správce souborů (fi le manager), který má za úkol koordinovat činnost hromadného úložiště počítače. Přesněji řečeno, správce souborů uchovává záznamy o všech souborech uložených v hromadném úložišti, včetně umístění každého souboru,seznamu uživatelů, kteří mají přístup k různým souborům, a oblastí hromadnéhoúložiště, které jsou dostupné pro ukládání nových souborů nebo zvětšování stávajících. Tyto záznamy se nacházejí na jednotlivých úložných médiích, která obsahujípříslušné soubory. Při každém připojení konkrétního média tedy může správce souborů načíst odpovídající záznamy a zjistit, které soubory jsou na daném médiu uloženy. Obrázek 3.4: Uživatelské rozhraní slouží jako prostředník mezi uživateli a operačním systémem

Uživatel Uživatel

Uživatel Uživatel

Jádro

Uživatelské

rozhraní

Uživatel

!Kniha_K2037.indb 129!Kniha_K2037.indb 129 4.1.2013 7:46:084.1.2013 7:46:08


130 Kapitola 3 – Operační systémy

Většina správců souborů umožňuje pro usnadnění práce seskupit soubory dokategorií označovaných pojmem adresář (directory) nebo složka (folder). Díky tomu mohou uživatelé své soubory logicky uspořádat a umístit příbuzné soubory dostejného adresáře. Navíc vzhledem k tomu, že adresáře mohou obsahovat jiné adresáře zvané podadresáře, lze vytvořit celou hierarchickou strukturu. Uživatel můženapříklad vytvořit adresář MojeZaznamy, který zahrnuje podadresáře FinančníZáznamy, ZdravotníZáznamy a DomácíZáznamy. V  každém z  těchto podadresářů se mohou nacházet soubory, které patří do příslušné kategorie. (Uživatelé operačního systému Windows mohou požádat správce souborů, aby zobrazil aktuální sadu složek. Stačí, když spustí nástroj, který se v české verzi systému nazývá Průzkumník Windows a v anglické verzi Windows Explorer.)

Řetězec adresářů uvnitř jiných adresářů se nazývá adresářová cesta (directory path). Cesty se často vyjadřují jako seznam adresářů, které následují v  rámci cesty. Jednotlivé adresáře se přitom oddělují lomítky. Například zápis zvířata/pravěká/ dinosauři reprezentuje cestu, která začíná adresářem zvířata, prochází jehopodadresářem pravěká a končí v podadresáři tohoto podadresáře dinosauři. (Uživatelé systému Windows musí změnit lomítka v zápisu cesty na obrácená – například takto: zvířatapravěkádinosauři.)

Udělení přístupu jiných soft warových jednotek k  souboru závisí na rozhodnutí správce souborů. Proces začíná žádostí, aby správce souboru poskytl přístupk souboru postupem, který se označuje jako otevření souboru. Jestliže správce souboru přístup schválí, sdělí žadateli příslušné informace, které jsou potřebné k nalezenísouboru a manipulaci s ním.

Další komponentu jádra tvoří sada ovladačů zařízení (device driver). Jedná se o  soft warové jednotky, které komunikují s  řadiči (nebo někdy přímo s  periferními zařízeními), aby bylo možné řídit činnost periferních zařízení připojených k počítači. Každý ovladač zařízení je speciálně přizpůsoben konkrétnímu typu zařízení (jako je tiskárna, disková jednotka nebo monitor) a překládá obecné požadavky natechničtější podrobnosti, které jsou potřebné pro zařízení přiřazené danému ovladači.Naříklad ovladač tiskárny poskytuje soft warové nástroje pro čtení a dekódovánístavového slova dané tiskárny a dokáže také obsluhovat celý průběh procesu handshaking. Jiné soft warové komponenty se proto při tisku souboru nemusí těmito technickými detaily zabývat. Místo toho se mohou jednoduše spolehnout na to, že soft warový ovladač zařízení soubor vytiskne, a ponechat na něm, aby se staral o detaily. Návrh jiných soft warových jednotek proto nemusí záviset na zvláštnostech jednotlivýchzařízení. Díky tomu lze vytvořit univerzální operační systém, který lze pro konkrétní periferní zařízení přizpůsobit pouhou instalací příslušných ovladačů zařízení.

Další komponentou jádra operačního systému je správce paměti (memorymanager), který odpovídá za koordinaci používání operační paměti počítače. V prostředí, kde počítač v  každou chvíli vykonává pouze jeden úkol, nejsou takové povinnosti příliš náročné. V  těchto případech je program určený pro aktuální úkol umístěn na  předem defi nované místo v  operační paměti, spuštěn a  poté nahrazen programem, který realizuje další úkol. Ve víceuživatelském nebo víceúlohovém prostředí, kde se musí počítač zabývat mnoha požadavky současně, se nároky na správce paměti značně zvyšují. Za těchto okolností je nutné do operační paměti umístit mnoho programů a  bloků dat současně. Správce paměti musí proto pro konkrétní potřeby vyhledat a přiřadit paměťový prostor a zajistit, že se programy při své činnosti omezí

!Kniha_K2037.indb 130!Kniha_K2037.indb 130 4.1.2013 7:46:094.1.2013 7:46:09


1313.2: Architektura operačních systémů

jen na vyhrazené místo. Jak se navíc různé aktivity střídají, musí správce paměti také

sledovat paměťové oblasti, které již nejsou využity.

Činnost správce paměti se navíc komplikuje v situacích, kdy programy v souhrnu

požadují více místa v paměti, než kolik počítač fyzicky poskytuje. Správce paměti pak

musí vytvořit iluzi dodatečného místa v  paměti tím, že programy a  data přesunuje

mezi operační pamětí a  hromadným úložištěm (technikou, která se označuje jako

stránkování – paging). Předpokládejme například, že je potřeba 8 GB paměti, ale

počítač je vybaven pouze 4 GB. Pro vytvoření iluze většího paměťového prostoru

vyhradí správce paměti 4 GB úložného místa na magnetickém disku. Do této oblasti

zapisuje bloky dat, které by ukládal do operační paměti, kdyby měla fyzickou kaacitu 8 GB. Tato data se dělí na jednotky stejné velikosti s názvem stránky (page),

které mají obvykle velikost několik KB. Správce paměti poté tyto stránky přemisťuje

mezi operační pamětí a  hromadným úložištěm, aby se stránky, které jsou aktuálně

potřebné, nacházely ve 4 GB operační paměti. Díky tomu dokáže počítač fungovat

tak, jako kdyby skutečně obsahoval operační paměť s  kapacitou 8 GB. Tento velký

„fi ktivní“ paměťový prostor, který je k dispozici pomocí stránkování, se nazývávirtuální paměť.

Dvěma dalšími komponentami jádra operačního systému – plánovačem (scheduler) a dispečerem (dispatcher) – se budeme zabývat v  následující části kapitoly.

Prozatím uvedeme, že v systému založeném na multiprogrammingu rozhodujeplánovač o spouštění jednotlivých aktivit a dispečer kontroluje přidělování času těmto

aktivitám.

Spouštění

Viděli jsme, že operační systém poskytuje soft warovou infrastrukturu potřebnou pro

jiné soft warové jednotky. Zatím jsme však neuvažovali o tom, jak se operační systém

spouští. Spouštění systému zajišťuje postup zvaný zavádění (boot strapping, často

zkracováno na booting), který počítač provádí po každém zapnutí. Tato procedura

přenese operační systém z hromadného úložiště (kde je trvale umístěn) do operační

paměti (která je po zapnutí počítače prakticky prázdná). Chceme-li porozumětprocesu zavádění a tomu, proč je nezbytný, musíme začít od procesoru počítače.

Procesor je zkonstruován tak, aby jeho programový čítač po každém zapnutípočítače obsahoval určitou předem defi novanou adresu. V  tomto umístění procesor

očekává začátek programu, který má provést. Principiálně tedy stačí umístit na této

Firmware

Kromě zavaděče (boot loader) obsahuje paměť ROM počítače sadu softwarových rutin, které zajišťují základní

vstupně-výstupní operace, jako je vstup informací z klávesnice, zobrazování zpráv na obrazovce počítačea čtení dat z hromadného úložiště. Díky uložení v trvalé paměti (jako je FlashROM) nejsou sice tyto programynapevno zadrátovány do křemíku počítače (hardwaru), ale zároveň je ani nelze změnit tak snadno jako jiné programy

v hromadném úložišti – tj. jako software. Pro tento hraniční případ se začal používat termín fi rmware. Pomocí

fi rmwarových rutin může zavaděč používat vstupně-výstupní operace ještě před tím, než začne fungovatoperační systém jako celek. Tyto rutiny mohou například zajistit komunikaci s uživatelem počítače před započetím

vlastního procesu spouštění a mohou informovat o chybách tohoto procesu. K široce používaným firmwarovým systémům patří BIOS (Basic Input/Output System), který se odedávna používá v počítačích třídy PC, novější

rozhraní EFI (Extensible Firmware Interface), Open Firmware společnosti Sun (nyní produkt společnosti Oracle)

a systém CFE (Common Firmware Environment), který je součástí mnoha integrovaných zařízení.

!Kniha_K2037.indb 131!Kniha_K2037.indb 131 4.1.2013 7:46:094.1.2013 7:46:09


132 Kapitola 3 – Operační systémy

adrese operační systém. Z  technických důvodů však operační paměť počítače obvykle nedokáže uchovávat data trvale. To znamená, že všechna data, která jsou v ní

uložena, se po vypnutí počítače ztratí. Obsah operační paměti je proto nutné obnovit

po každém zapnutí počítače.

Z toho vyplývá, že potřebujeme, aby byl při zapnutí počítače v jeho operačnípaměti přítomen program (nejlépe samotný operační systém). Operační paměť je však

přitom při každém vypnutí počítače vymazána. Toto dilema lze vyřešit tak, že sevyhradí zvláštní část operační paměti počítače, kde procesor očekává svůj první program. Tato část paměti je vytvořena ze speciálních paměťových buněk, které dokáží

uchovávat svůj obsah trvale. Taková paměť se označuje jako paměť ROM (read-only

memory), protože její obsah lze pouze číst, nikoli však měnit. Můžeme si představit,

že paměť ROM ukládá bitové posloupnosti spálením miniaturních pojistek. Některé

zůstanou vodivé (jedničky) a průchod proudu jinými je přerušen (nuly).Technologie použitá v praxi je však poněkud složitější. Přesněji řečeno, většina pamětí ROM

v dnešních počítačích je založena na technologii pamětí fl ash (nejde tedy v pravém

smyslu o paměť ROM, protože ji lze za speciálních okolností upravovat).

V paměti ROM univerzálního počítače je trvale umístěn program označovaný jako

zavaděč (boot loader). Tento program je spuštěn bezprostředně po zapnutí počítače.

Instrukce zavaděče zajistí, že procesor přenese operační systém z předem určeného

umístění do nestálé části operační paměti (viz obrázek 3.5). Moderní zavaděčedokáží zkopírovat operační systém do operační paměti z různých umístění.V integrovaných systémech (např. ve smartphonech) je například operační systém zkopírován

ze  speciální paměti fl ash (trvalé). V  případě malých pracovních stanic ve fi rmách

nebo univerzitních sítích je možné operační systém zavést ze vzdáleného počítače

po síti. Jakmile je operační systém umístěn do paměti, zavaděč požádá procesor, aby

provedl instrukci skoku do příslušné oblasti paměti. V této fázi převezme řízeníčinnosti počítače operační systém. Celý proces provedení zavaděče, který vede kespuštění operačního systému, se označuje jako spuštění (booting, „bootování“) počítače.

Obrázek 3.5: Proces spouštění

Můžeme si položit otázku, proč nemají osobní počítače tolik paměti ROM, aby se

do ní vešel celý operační systém. V takovém případě by přece nebylo nutné spouštět

systém z hromadného úložiště. Tato konfi gurace se sice používá u integrovanýchzařízení s malými operačními systémy, ale s ohledem na současný stav technologie není

praktické vytvářet velké bloky operační paměti univerzálních počítačů z trvalépaměZavaděč Zavaděč

Operační

systém

Krok 1: Počítač po spuštění provede program zvaný zavaděč,

který je již v paměti. Operační systém se nachází

v hromadném úložišti.

Diskové úložiště

Operační paměť

ROM

Nestálá

paměť

Operační paměť

ROM

Nestálá

paměť

Krok 2: Zavaděč požádá o přenos operačního systému

do operační paměti a poté mu předá řízení.

Operační

systém

Diskové úložiště

Operační

systém

!Kniha_K2037.indb 132!Kniha_K2037.indb 132 4.1.2013 7:46:094.1.2013 7:46:09


1333.3: Koordinace činností počítače

Otázky a cvičení

ti. Operační systémy počítačů navíc procházejí častými aktualizacemi, které opravují

bezpečnostní chyby a  poskytují nové a  vylepšené ovladače zařízení pro nejnovější

hardware. Ačkoli je tedy možné aktualizovat operační systémy a  zavaděče uložené

v paměti ROM (tato operace se obvykle označuje jako aktualizace fi rmwaru – firmware update), kvůli technologickým omezením je běžnější uchovávat systém běžných

počítačů v hromadném úložišti.

Závěrem je vhodné poznamenat, že díky seznámení s procesem spouštění a také s rozdíly mezi operačním systémem, soft warovými nástroji a aplikačním soft warem můžeme porozumět celkovým principům fungování univerzálních počítačů. Když je takový počítač spuštěn, načte se zavaděč, který aktivuje operační systém. Uživatel poté požádá operační systém o  spuštění požadovaného nástroje nebo aplikačního programu. Při ukončení jednotlivých nástrojů či aplikací se uživatel znovu dostane do kontaktu s operačním systémem a může mu zadávat další požadavky. Učení práce s takovým systémem tedy probíhá ve dvou rovinách. Kromě seznamovánís podrobnostmi určitého nástroje nebo aplikace potřebuje uživatel rovněž dostatečné znalosti operačního systému počítače, aby dokázal přecházet mezi jednotlivými aplikacemi.

1. Uveďte komponenty typického operačního systému a jednou větou shrňte

jejich roli.

2. Jaký je rozdíl mezi aplikačním soft warem a soft warovými nástroji?

3. Co to je virtuální paměť?

4. Shrňte proces spouštění počítače. 3.3: Koordinace činností počítače V této části se budeme zabývat tím, jak operační systém koordinuje spouštěníaplikačních programů, soft warových nástrojů a  svých vlastních součástí. Začneme pojmem procesu. Proces Mezi nejdůležitější pojmy moderních operačních systémů patří rozdíl meziprogramy a aktivitou jejich běhu. Samotný program je tvořen statickou sadou pokynů,zatímco jeho běh je dynamická aktivita, jejíž vlastnosti se v průběhu času mění. (Lze to přirovnat k rozdílu mezi zápisem notové osnovy, který beze změny spočívá na polici, a koncertem, kdy hudebník zapsané noty interpretuje.) Činnost programu podkontrolou operačního systému se označuje jako proces. S procesem souvisí aktuální stav jeho činnosti, který se nazývá stav procesu (process state). Tento stav zahrnujeaktuální pozici ve spuštěném programu (hodnotu programového čítače) a také hodnoty jiných registrů procesoru a  příslušných paměťových buněk. Přibližně můžeme říci, že stav procesu představuje snímek stavu počítače v  určitém okamžiku. V  různých fázích spouštění programu (v jiných časech procesu) bychom zjistili jiné snímky (jiné stavy procesu).

!Kniha_K2037.indb 133!Kniha_K2037.indb 133 4.1.2013 7:46:094.1.2013 7:46:09




       
Knihkupectví Knihy.ABZ.cz - online prodej | ABZ Knihy, a.s.
ABZ knihy, a.s.
 
 
 

Knihy.ABZ.cz - knihkupectví online -  © 2004-2018 - ABZ ABZ knihy, a.s. TOPlist