Operan systmy n o rob operan systm n
Operačné systémy n Čo robí operačný systém ? n Organizácia počítačového systému n Architektúra počítačového systému n Činnosti operačného systému n Všeobecné funkcie prerušení n Spracovanie prerušenia n Štruktúra úložiska n Pamäťová hierarchia n Hardvérová ochrana n Štruktúra operačného systému Operačné systémy 1. 1 © 2010
Ciele n Poskytnúť prehľad komponentov operačných systémov n Poskytnúť pokrytie organizácie základných počítačových systémov Operačné systémy 1. 2 © 2010
Čo je operačný systém? n Program, ktorý pôsobí ako sprostredkovateľ medzi používateľom počítača a hardvérom počítača. n Ciele operačného systému: l Vykonávať používateľské programy a uľahčovať riešenie používateľských problémov. l Robiť počítačový systém vhodným na používanie. n Používať hardvér počítača účinným spôsobom. Operačné systémy 1. 3 © 2010
Štruktúra počítačového systému. n Počítačový systém je možné rozdeliť na 4 súčasti. l Hardvér – poskytuje základné výpočtové zdroje: 4 CPU, l pamäť, V/V zariadenia Operačný systém 4 Riadi a koordinuje použitie hardvéru medzi rôznymi aplikáciami a používateľmi l Aplikačné programy – definujú spôsoby , ktorými sú systémové zdroje používané na riešenie výpočtových problémov používateľov 4 Textové procesory, kompilátory, prehliadače webových stránok, databázové systémy, videohry l Používatelia 4 Ľudia, Operačné systémy stroje, iné počítače 1. 4 © 2010
Štyri súčasti počítačového systému Používateľ 1 Používateľ 2 Používateľ 3 kompilátor asembler textový editor Používateľ 1 databázový systém Systémové a aplikačné programy Operačný systém Hardvér počítača Operačné systémy 1. 5 © 2010
Definícia operačného systému n OS je prideľovač zdrojov l Spravuje všetky zdroje l Rozhoduje medzi požiadavkami, ktoré vyvolávajú konflikt pre účinné a regulárne použitie zdroja n OS je riadiaci program l Operačné systémy Riadi vykonávanie programov kvôli predchádzaniu chybám a nesprávnemu použitiu počítača 1. 6 © 2010
Definícia operačného systému (pokračovanie) n Neexistuje univerzálne prijateľná definícia n „Všetko, čo predajca dodá, keď si objednáte operačný systém“ je dobrá aproximácia definície l Ale dosť široko sa rôzni n „Jadro (kernel)“ je jediný program, ktorý je vykonávaný v každom čase v počítači. Všetky ostatné programy patria buď medzi systémové programy (dodávané s operačným systémom) alebo medzi aplikačné programy. Operačné systémy 1. 7 © 2010
Naštartovanie počítača n Program na zavedenie operačného systému (bootstrap program) je zavedený buď zapnutím počítača (t. j. pripojením k elektrickej sieti) alebo znovuzavedením Operačné systémy l Zvyčajne je uchovávaný v ROM alebo EPROM, všeobecne známy ako firmware l Inicializuje všetky súčasti systému l Zavádza jadro operačného systému a štartuje vykonávanie 1. 8 © 2010
Organizácia počítačového systému n Činnosť počítačového systému l Jeden alebo viac procesorov, riadiace jednotky zariadenia prepojené prostredníctvom spoločnej zbernice poskytujúcej prístup k zdieľanej pamäti (shared memory) l Súbežná činnosť CPU a V/V zariadení disky myš RJ diskov klávesnica tlačiareň grafický adaptér pamäť Operačné systémy 1. 9 © 2010
Činnosť počítačového systému n V/V zariadenia a CPU môžu byť v činnosti súbežne(súčasne). n Každá riadiaca jednotka zariadenia zodpovedá za činnosť zariadenia určitého typu. n Každá riadiaca jednotka zariadenia má lokálnu vyrovnávaciu pamäť. n CPU prenáša dáta z/do hlavnej pamäte do/z lokálnych vyrovnávacích pamätí. n V/V prebieha zo zariadenia do lokálnej vyrovnávacej pamäte riadiacej jednotky zariadenia. n Riadiaca jednotka zariadenia informuje CPU, že ukončila operáciu tým, že vyvolá (spôsobí) prerušenie. Operačné systémy 1. 10 © 2010
Všeobecné funkcie prerušení n Prerušenie odovzdá/prenesie riadenie všeobecne procedúre na obsluhu prerušenia, prostredníctvom vektora prerušenia, ktorý obsahuje adresy všetkých obslužných procedúr (routines). n Architektúra prerušenia (prerušovacieho systému) musí uchovať adresu prerušenej inštrukcie. n Prichádzajúce prerušenia sú zakázané zatiaľ kým iné prerušenie je spracovávané, aby sa zabránilo strate prerušenia. n Trap - je softvérom generované prerušenie zapríčinené buď chybou alebo požiadavkou používateľa. n Operačný systém je riadený prerušeniami. Operačné systémy 1. 11 © 2010
Štruktúra vstupu a výstupu n Synchrónna metóda: Po štarte V/V sa riadenie vráti používateľskému programu až po dokončení V/V operácie. l Inštrukcia „Wait“ uvedie CPU do nečinnosti až do príchodu nasledujúceho prerušenia l (programová) čakacia slučka (súperenie o prístup do pamäti). l Nanajvýš jedna požiadavka na V/V je nevybavená v danom čase. Nejestvuje súčasné spracovávanie V/V. n Asynchrónna metóda: Po štarte V/V operácie sa riadenie vráti používateľskému programu bez toho, aby sa čakalo na dokončenie V/V operácie. l Systémové volanie - System call – požiadavka na operačný systém, aby dovolil používateľovi čakať na dokončenie V/V l Tabuľka stavu zariadenia obsahuje položku pre každé V/V zariadenie, ktorá označuje jeho typ, adresu a stav Operačné systémy 1. 14 © 2010
Dve metódy V/V používateľ Synchrónna metóda Synchronous používateľ Asynchrónna metóda Asynchronous pužteľ použteľ čas jadro Operačné systémy jadro 1. 15 © 2010
Tabuľka stavu zariadenia Operačné systémy 1. 16 © 2010
Priamy prístup do pamäti n Používaný pre vysokorýchlostné V/V zariadenia schopné prenášať informáciu rýchlosťami blízkymi rýchlosti hlavnej pamäti. n Riadiaca jednotka zariadenia prenáša bloky dát z vyrovnávacej pamäti (buffer) priamo do hlavnej pamäti bez zásahu CPU. n Len jedno prerušenie je generované na blok namiesto jedného prerušenia na 1 bajt. Operačné systémy 1. 17 © 2010
Štruktúra pamäti n Hlavná pamäť – je jediné veľké pamäťové médium, ku ktorému môže CPU pristupovať priamo. n Sekundárna pamäť – je rozšírenie hlavnej pamäti. Poskytuje veľkú energeticky nezávislú pamäťovú kapacitu. n Magnetické disky – pevné kovové alebo sklenené platne pokryté magnetickým záznamovým materiálom Operačné systémy l Povrch disku je logicky rozdelený na stopy, ktoré sú ďalej rozdelené na sektory. l Riadiaca jednotka disku určuje logické spolupôsobenie medzi zariadením a počítačom. 1. 18 © 2010
Hierarchia pamäti n Pamäťové systémy sú organizované hierarchicky podľa: l Rýchlosti l Ceny l Nestálosti (Energetickej závislosti) n Caching – kopírovanie informácií do rýchlejšieho pamäťového systému; hlavná pamäť môže byť považovaná za poslednú pamäť typu cache pre sekundárnu pamäť. Operačné systémy 1. 19 © 2010
Hierarchia pamäťových zariadení Operačné systémy 1. 20 © 2010
Používanie rýchlej vyrovnávacej pamäti typu cache n Dôležitý princíp, vykonávaný na mnohých úrovniach v počítači (hardvérovej, softvérovej, v operačnom systéme) n Používaná informácia je dočasne skopírovaná z pomalšej pamäti do rýchlejšej pamäti n Rýchlejšia pamäť (tzv. cache) najprv preveruje, či sa informácia v nej nachádza l Ak sa nachádza, tak sa informácia použije priamo z pamäti cache l Ak sa nenachádza, dáta sa najprv skopírujú do pamäti cache a potom sa použijú n Ak je pamäť typu cache menšia než pamäť, z ktorej sa do nej kopíruje Operačné systémy l Správa pamäti cache predstavuje dôležitý problém pri návrhu l Veľkosť pamäti typu cache a politika kopírovania 1. 21 © 2010
Výkon rôznych úrovní pamäti n Pohyb medzi úrovňami hierarchie pamätí môže byť explicitný alebo implicitný Operačné systémy 1. 22 © 2010
Presun celého čísla A z disku do registra n Viacúlohové prostredia musia byť opatrné pri použití najčerstvejšej hodnoty bez ohľadu na to, kde je uložená v hierarchii pamätí. magnetický disk hlavná pamäť hardvérový register n Multiprocesorové prostredie musí poskytnúť logickú súvislosť v hardvéri takú, že všetky CPU majú najčerstvejšiu hodnotu vo svojej pamäti typu cache n Situácia v distribuovanom prostredí je dokonca ešte zložitejšia l Môže existovať niekoľko kópií jedného údaja l Rôzne riešenia tohto problému sú uvedené v samostatnej kapitole Operačné systémy 1. 23 © 2010
Štruktúra operačného systému n Multiprogramovanie potrebné pre účinnosť/hospodárnosť l Jediný používateľ nevie udržať CPU a V/V zariadenia zamestnané po celý čas Multiprogramovanie organizuje úlohy (úloha=job=kód a dáta) tak, že CPU má vždy jednu na vykonanie l Podmnožina všetkých úloh (jobs) v systéme je udržiavaná v pamäti l Jedna úloha je vybratá a spustená prostredníctvom plánovača úloh l Keď táto úloha má čakať (napríklad na V/V), operačný systém prepne na vykonávanie inej úlohy n Timesharing (multitasking) je logické rozšírenie, pri ktorom CPU prepína úlohy tak často, že požívateľ môže vzájomne pôsobiť na každú úlohu, pokiaľ sa vykonáva, vytvárajúc tak interaktívnu prácu na počítači l Čas odozvy by mal byť < 1 sekunda l Každý používateľ má aspoň jeden vykonávaný program v pamäti proces l Ak je niekoľko úloh pripravených na vykonávanie v tom istom čase plánovanie procesov l Ak sa procesy nezmestia do pamäti, odkladanie (swapping) ich presúva do a z pamäti, aby sa vykonávali l Virtuálna pamäť dovoľuje vykonávanie procesov, ktoré nie sú celé umiestnené v pamäti l Operačné systémy 1. 24 © 2010
Usporiadanie pamäte pre multiprogramové systémy Operačný systém Úloha (job) 1 Úloha (job) 2 Úloha (job) 3 Úloha (job) 4 Operačné systémy 1. 25 © 2010
Činnosti operačného systému n Riadený prerušeniami od hardvéru n Softvérová chyba vytvára softvérové prerušenie tzv. trap Delenie nulou, požiadavka na službu operačného systému n Ďalšie problémy procesov zahŕňajú nekonečnú (programovú) slučku, navzájom sa modifikujúce procesy, procesy modifikujúce operačný systém n Činnosť operačného systému v duálnom móde dovoľuje operačnému systému, aby chránil seba a iné súčasti systému l Používateľský mód a mód jadra l Bit módu poskytovaný prostredníctvom hardvéru 4 Poskytuje schopnosť odlíšiť kedy systém vykonáva používateľský kód a kedy kód jadra OS 4 Inštrukcie označené ako privilegované sú vykonateľné len v móde jadra 4 Systémové volanie mení mód na mód jadra, návrat zo systémového volania mód znovu nastaví na používateľský mód l Operačné systémy 1. 26 © 2010
Prechod z používateľského módu do módu jadra n Časovač, aby sa predišlo nekonečnej slučke: Operačné systémy l Nastaví prerušenie po špecifickom časovom úseku l Operačný systém dekrementuje počítadlo l Keď počítadlo dosiahne nulu, vyvolá prerušenie l Set up before scheduling process to regain control or terminate program that exceeds allotted time 1. 27 © 2010
Ochrana n Ochrana – akýkoľvek mechanizmus pre riadenie prístupu procesov alebo užívateľov k zdrojom definovaný OS-om n Hardvérová ochrana - hardvér treba chrániť aj pred poruchovými programami n Veľa programových chýb detekuje hardvér. Tieto chyby sú spravidla ošetrované operačným systémom. n V multiprogramovom systéme sa môže stať chyba – jeden chybný program môže modifikovať program alebo dáta iného programu alebo dokonca samotného rezidentného monitora (OS). MS-DOS a Macintosh OS umožňujú tento druh chýb. Operačné systémy 1. 28 © 2010
Hardvérová ochrana n Ak užívateľský program zlyhá – ilegálna inštrukcia alebo snaha pristúpiť k pamäti, ktorá nie je v užívateľskom adresovom priestore – trap n Odlúčenie (trap) prenesie riadenie cez vektor prerušení na OS, rovnako prerušenie. Kedykoľvek sa vyskytne programová chyba, operačný systém musí abnormálne ukončiť program. Príslušné chybové hlásenie je vydané a pamäť programu môže byť vypísaná. Výpis z pamäte je zvyčajne zapísaný do súboru, a tak programátor môže vyšetriť situáciu, opraviť a reštartovať program. Operačné systémy 1. 29 © 2010
Ochrana V/V zariadení n Užívateľský program môže rozvrátiť normálnu činnosť systému vydaním nelegálnej I/O inštrukcie, pristupovaním do pamäťových miest vo vnútri samotného OS, alebo odmietnutím zriecť sa procesora. n Riešenie – všetky V/V inštrukcie sú definované ako privilegované. n Užívateľský program nikdy nemôže získať riadenie počítača v monitorovom móde (v móde OS). Operačné systémy 1. 30 © 2010
Pamäťová ochrana n Zabezpečenie správnej činnosti – chrániť vektor prerušení od modifikácie užívateľským programom + chrániť obslužné programy prerušení v OS od modifikácie n Všeobecne, chceme chrániť OS od prístupu z užívateľských programov a tiež chrániť užívateľské programy navzájom. Táto ochrana musí byť poskytnutá hardvérom. Môže byť implementovaná viacerými spôsobmi. n Aby sme oddelili pamäťový priestor pre každý program, potrebujeme mať schopnosť vymedziť rozsah legálnych adries, ktoré program môže sprístupňovať, a chrániť pamäť mimo tohto priestoru – napr. použitím bázového a limitného registra. n Bázový register drží najmenšiu legálnu fyzickú pamäťovú adresu n Limitný register obsahuje veľkosť rozsahu n Napr. BR: 300040, LR: 120900 – program môže legálne pristupovať ku všetkým adresám od 300040 do 420940 vrátane. Operačné systémy 1. 31 © 2010
Ochrana procesora n K chráneniu V/V a pamäte je potrebné navyše zabezpečiť, že OS si bude udržiavať riadenie. n Je potrebné zabrániť užívateľskému programu uviaznuť v nekonečnom cykle, zabrániť nevráteniu riadenia operačnému systému, zabrániť nevolaniu systémových služieb. n Časovač (timer) môže byť nastavený na prerušenie práce počítača po špecifikovanej perióde. Perióda môže byť pevná (napr. 1/60 sekundy), alebo premenlivá (napr. od 1 milisekundy po 1 sekundu) n Variabilný časovač je implementovaný ako hodiny s pevnou sadzbou a počítadlom. n Predtým ako sa vráti riadenie užívateľovi, OS zabezpečí, že časovač sa nastaví na prerušenie. Časovač môže zabrániť, aby užívateľský program bežal príliš dlho. Operačné systémy 1. 32 © 2010
Návrh a implementácia operačného systému n Návrh a implementácia OS je „neriešiteľný” problém, avšak niektoré prístupy dokázali byť úspešné n Vnútorná štruktúra rozličných operačných systémov sa môže široko meniť n Štartuje sa definovaním cieľov a špecifikácií n Ovplyvnená výberom hardvéru, typom systému n Užívateľské ciele a Systémové ciele Operačné systémy l Užívateľské ciele – operačný systém má byť vhodný pre použitie, ľahký na naučenie, spoľahlivý, bezpečný, a rýchly l Systémové ciele – operačný systém má byť ľahko použiteľný pre návrh, implementáciu, a údržbu, rovnako flexibilý, spoľahlivý, bez chýb, a účinný 1. 33 © 2010
Návrh a implementácia operačného systému n Dôležité princípy: Politika: Čo bude (u)robené? Mechanizmy: Ako to urobiť? n Mechanizmy určujú ako čo urobiť, politiky rozhodujú čo bude robené l Operačné systémy Oddelenie politiky od mechanizmu je veľmi dôležitý princíp, to dovoľuje maximálnu flexibilitu ak rozhodnutia politiky majú byť zmenené neskôr 1. 34 © 2010
Jednoduchá štruktúra n MS-DOS – napísaný tak, aby poskytoval čo najväčšiu funkčnosť na čo najmenšom priestore Operačné systémy l Nebol rozdelený na jednotlivé moduly (komponenty) l Hoci MS-DOS má určitú štruktúru, jeho interfejs a úrovne funkčnosti nie sú dobre separované 1. 35 © 2010
Štruktúra vrstiev MS-DOS Operačné systémy 1. 36 © 2010
Vrstvová štruktúra n Operačný systém je rozdelený na niekoľko vrstiev (úrovní), každá vrstva je vybudovaná nad nižšou vrstvou. Najnižšia vrstva (vrstva 0), je hardvér; najvyššia vrstva (vrstva N) je užívateľské rozhranie. n Hlavnou výhodou vrstvového prístupu je modularita, vrstvy sú selektované takým spôsobom, že každá používa iba funkcie (operácie) a služby vrstiev ktoré sú pod ňou. Operačné systémy 1. 37 © 2010
Systémová štruktúra klasického UNIX Operačné systémy 1. 38 © 2010
UNIX n UNIX – je príkladom operačného systému, ktorý bol pôvodne tiež ohraničený funkčnosťou hardvéru. The UNIX OS pozostáva z dvoch separovaných častí: Operačné systémy l Systemové programy l Jadro 4 Pozostáva zo všetkého čo je pod rozhraniami systémových volaní a nad fyzickým hardvérom 4 Poskytuje súborový systém, plánovanie CPU, správu pamäte, a iné funkcie operačného systému cez systémové volania; Jedná sa o veľké množstvo funkčnosti skombinovanej na jednej úrovni. 4 Systémové volania definujú API UNIX, čo je množina systémových programov, ktorá je bežne prístupná a definuje užívateľské rozhranie. 4 Programátorské a užívateľské rozhranie definuje obsah, ktorý musí jadro podporovať. 1. 39 © 2010
Vrstvový Operačný Systém Operačné systémy 1. 40 © 2010
Mikrojadrová štruktúra systému n Hlavnou funkciou mikrojadra (mikrokernel) je zabezpečovať komunikáciu medzi klientským programom a rôznymi službami, ktoré tiež bežia v užívateľskom priestore. n Komunikácia je poskytovaná posielaním správ. Klientský program a služba nikdy nekomunikujú priamo. Spravidla komunikujú nepriamo prostredníctvom vymieňania správ s mikrojadrom. n Výhody: l Jednoduchšie rozširovanie operačného systému (mikrokernelu) l Výsledný operačný systém je ľahšie prenositeľný z jedného typu hardvéru na iný. l Väčšia spoľahlivosť (nakoľko väčšina služieb beží ako užívateľské a nie ako kernelové procesy) l Väčšia bezpečnosť n Tru 64 UNIX poskytuje UNIX užívateľské rozhranie, ale je implementovaný s jadrom operačného systému Mach. n Operačný systém Apple Mac OS X Server je tiež založený na Mach kerneli. Operačné systémy 1. 41 © 2010
Mac OS X Štruktúra Operačné systémy 1. 42 © 2010
Moduly n Väčšina moderných operačných systémov používa mikrokernelový prístup. l Používa objektovo-orientovaný prístup l Každý jadrový komponent je oddelený l Každý hovorí s každým prostredníctvom známych interfejsov l Každý je zavediteľný podľa potreby v rámci jadra n Všeobecne, podobné vrstvám ale viac flexibilné Operačné systémy 1. 43 © 2010
Modulárny prístup v Solarise Operačné systémy 1. 44 © 2010
Virtuálne stroje n Virtualny stroj má vrstvový prístup. Pokladá jadro operačného systému a hardvér, ako keby ony boli celý hardvér. n Virtualny stroj poskytuje interfejs identický k základnému hardveru n Hostiteľ operačného systému vytvára ilúziu pre užívateľský proces, akoby tento proces mal pre seba vlastný procesor a virtuálnu pamäť n Každý hosť je vybavený (virtualnou) kópiou základného počítača Operačné systémy 1. 45 © 2010
Virtuálne stroje Non-virtual Machine Virtual Machine (a) nevirtuálny stroj (b) virtuálny stroj Operačné systémy 1. 46 © 2010
Java Virtuálny stroj Operačné systémy 1. 47 © 2010
- Slides: 45