Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.

Podobné prezentace


Prezentace na téma: "Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003."— Transkript prezentace:

1 Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003

2 Kapitola 1 Požadavky na hardware

3  OS je softwarovou nadstavbou hardware počítače které funkce hardware jsou z hlediska OS důležité?

4 Základní prvky hardware  procesor (CPU) hardware umožňující provádění instrukcí programu  operační paměť hardware sloužící k uložení programu a dat  I/O moduly (řadiče, kanály, koprocesory...) hardware pro ovládání periferií  sekundární paměť (disky)  klávesnice, displej, tiskárna...  komunikační zařízení (LAN, modem,...)  systémové spoje (sběrnice) komunikace mezi CPU, pamětí a I/O moduly

5 Procesor  procesor (CPU, Central Processing Unit) obsahuje:  HW pro provádění programu - programový čítač PC - instrukční registr IR - dekodér instrukce a řídící obvody - registr(y) s informacemi o stavu procesoru PSW  HW pro zpracování dat - registry pro krátkodobé uložení adres a dat - operační jednotka ALU  další pomocné registry a obvody - ukazatel zásobníku SP,...

6 Provedení instrukce před: 1234 po: 1235 PC IR R3 CPU paměť program data LDI R3 -7 ADD R před: –7 po: 0 ALU FETCH EXECUTE ADD R před: 0100 po: 0010 PSW CNZV operace = ADD operand_1= R3 operand_2= M[5678] F A B

7 Registry CPU  Řídící a stavové registry (Control & Status)  nejsou obecně dostupné uživatelským programům  CPU je používá k řízení vlastní činnosti  některé OS používá k řízení provádění programů  Uživateli přístupné registry (user-visible)  dostupné systémovým i uživatelským programům  obsahují data, adresy a další informace...

8 Řídící a stavové registry  Programový čítač (Program Counter, PC) obsahuje adresu následující instrukce  Instrukční registr (Instruction Register, IR) obsahuje naposledy načtenou instrukci  Stavový registr (Program Status Word, PSW) registr(y) obsahující informace o stavu CPU, nastavení pracovního režimu, nastavení přerušovacího systému, příznaky výsledku operace,... Někdy se jako PSW označuje kompletní stavová informace, která se ukládá při přerušení (kontext)

9 Uživateli přístupné registry  Datové registry mohou být použity uživatelským programem k přechodnému uložení dat  Adresní registry obsahují paměťové adresy dat a instrukcí mohou obsahovat pouze část adresy, která pak je použita k výpočtu úplné adresy U některých platforem jsou registry specializované (Intel), u jiných se používají tzv. univerzální registry, které mohou převzít libovolnou úlohu (Motorola)

10 Adresní registry  Index/Offset registr při výpočtu skutečné adresy se obsah tohoto registru přičte k hodnotě báze (relativní adresa)  Segment Pointer u paměti rozdělené na segmenty obsahuje tento registr bázovou adresu segmentu  Stack Pointer registr ukazující na aktuální vrchol zásobníkové paměti Index/Offset Segment Pointer Memory Address

11 Příznaky výsledku operace  speciální jednobitové registry, které se nastavují automaticky při provádění operace procesorem  z programu jsou částečně dostupné např. podle jejich stavu lze větvit program, ale program je nemůže přímo měnit  Příklady:  příznak polarity (Negative sign flag)  příznak nulovosti (Zero flag)  příznak přenosu (Carry flag)  příznak přetečení (oVerflow flag) NZCVNZCV

12 CPU Intel 80C186

13 Operační paměť  Ideální paměť  nulová doba přístupu  nekonečná kapacita  nulová cena a provozní náklady  Reálná paměť kde K = technologická konstanta:  čím rychlejší paměťové prvky, tím dražší 1 bit  s časem cena za bit klesá (vývoj technologie)

14 Hierarchická paměť  kombinace několika technologií  rychlost určuje nejvyšší vrstva  kapacitu určuje nejnižší vrstva  cena je dána součtem cen všech vrstev Pevné disky Výměnná media Disková paměť cache Operační paměť Paměť cache Registry rychlejší dražší menší pomalejší levnější větší

15 Paměť cache  Požadovaný efekt:  kapacita a cena daná použitou operační pamětí  rychlost blízká rychlosti paměti cache vyrovnávací paměť zařazená mezi CPU a operační paměť, používající drahé ale velmi rychlé paměťové prvky

16 Funkce paměti cache  pro OS a programy transparentní  spolupracuje s hardwarem řízení paměti (memory management)  procesor čte instrukce a data z paměti cache  pokud adresované slovo není v paměti cache, načte se z operační paměti do cache celý blok, obsahující požadované slovo Zápis: pokud procesor některé slovo v bloku modifikuje, musí se toto slovo (celý blok) zapsat zpět do operační paměti

17 Princip lokality odkazů  Odkazy na paměť (Memory References) mají pro instrukce i data v delších časových úsecích tendenci odkazovat se do omezených oblastí paměti Příklad: jakmile vstoupí program do smyčky, opakuje se jen krátká posloupnost instrukcí  Důsledky:  jakmile procesor adresuje určité slovo paměti, je velmi pravděpodobné, že v blízké budoucnosti bude pracovat jen s okolními slovy  Činitel úspěšnosti (Hit Ratio) se bude blížit k 1 již při poměrně malé kapacitě paměti cache

18 Činitel úspěšnosti  HR=Hit Ratio poměr počtu úspěšných přístupů k celkovému počtu přístupů HIT=úspěšný přístup (trefa), MISS=neúspěšný přístup (vedle)  střední přístupová doba T S =T 1 +(1-HR)*T 2 T 1 = přístupová doba paměti cache T 2 = přístupová doba operační paměti T 2 >> T 1  Důsledek: Jestliže se HR blíží k 1 tj. většina přístupů je úspěšná, blíží se střední přístupová doba celé paměti k T1 (T 2 >> T S >T 1 )

19 Příklad  přístupová doba paměti cache T 1 = 5ns  přístupová doba operační paměti T 2 =100ns  při 1000 přístupech je 960 úspěšných, 40 neúspěšných (HIT=960, MISS=40) HR=960/1000=0,96  střední přístupová doba celé paměti T S =T 1 +(1-HR)*T 2 =5+0,04*100=9ns

20 I/O modul  obecný termín pro HW, sloužící pro připojení periferního zařízení k procesoru a paměti  každé periferní zařízení vyžaduje specifickou obsluhu  I/O moduly jednotlivých zařízení se od sebe mohou značně lišit funkcí, složitostí...

21 Struktura I/O modulu (1) I/O Logic Data Status Control External Device Interface Logic Data Status Control External Device Interface Logic Data Lines Address Lines Control Lines Data Register Status/Control Register Interface to External Device Interface to System Bus

22 Struktura I/O modulu (2)  Datový registr (registry) přechodné uložení dat při přenosu (vyrovnávací paměť)  Stavový a řídící registr (registry)  informace o aktuálním stavu modulu a zařízení  aktuální řídící informace z programu (příkaz, parametry)  I/O logika  zajišťuje interakci modulu s CPU přes řídící část sběrnice  je zde implementován protokol systémové sběrnice (ISA, PCI, AGP...)  Logika rozhraní zařízení  obsahuje logiku rozhraní periferního zařízení  často má také podobu sběrnice (IDE, SCSI, USB,...)

23 I/O operace řízená programem  příkaz WRITE v programu uživatele předá řízení I/O programu (ovladači tiskárny)  I/O program připraví I/O modul pro požadovanou akci (např. vytisknutí řádku textu) tím, že odešle potřebné příkazy a data  nyní musí I/O program čekat na dokončení operace testováním stavu I/O modulu CPU provádí neproduktivní činnost!  Po dokončení operace předá I/O program řízení zpět programu uživatele

24 Přerušení  Dnešní počítače při provádění I/O operací využívají přerušení činnosti CPU  V tomto režimu I/O program pouze předá I/O modulu povel a povolí přerušení  pak program uživatele může pokračovat dál, dokud nebude potřebovat provést další I/O operaci. V operačních systémech je obvykle takový program pozastaven, dokud není I/O operace dokončena, a procesor je zaměstnán jinou prací  Po dokončení I/O operace vyšle I/O modul po systémové sběrnici požadavek na přerušení (Interrupt Request)  po přerušení CPU provede proceduru pro obsluhu přerušení (Interrupt Handler)

25 Základní instrukční cyklus  V okamžiku zahájení provádění instrukce programový čítač PC obsahuje adresu příští instrukce  CPU načte novou instrukci z operační paměti podle PC  CPU dekóduje a provede načtenou instrukci operandy instrukce se čtou z paměti nebo registrů  obsah PC se automaticky zvýší tak, aby obsahoval adresu příští instrukce skokové instrukce jinak: obsah PC se nezvyšuje, ale přepisuje novou adresou START načtení další instrukce provedení instrukce Fetch Cycle Execute Cycle HALT

26 Instrukční cyklus s přerušením START načtení další instrukce provedení instrukce přerušení Fetch Cycle Execute Cycle Interrupt Cycle HALT přeručení povoleno? požadováno přeručení? NE ANO NE ANO  CPU ověřuje požadavky na přerušení vždy před načtením nové instrukce  Pokud není přerušení povoleno nebo požadováno, CPU pokračuje normálně, tj. načte následující instrukci podle PC  Pokud je přerušení povoleno a požadováno, uloží se automaticky obsah PC a PSW např. do zásobníku a do PC a PSW se nahraje tzv. přerušovací vektor tím se změní adresa příští instrukce a nastavení přerušovacího systému

27 Procedura pro obsluhu přerušení  program, určující reakci počítače na událost, která vyvolala přerušení  přebírá automaticky řízení CPU v případě, že dojde k takové události různé události vyvolávají různé procedury pro obsluhu přerušení  k přerušení programu může dojít kdykoliv říkáme, že událost je vzhledem k programu asynchronní  po dokončení obslužné procedury musí jít přerušený program znovu spustit od místa, ve kterém byl přerušen při přerušení je nutné uložit všechny informace, potřebné k úplnému obnovení původního stavu CPU (obsah PC a PSW, datové a adresní registry použité během obsluhy přerušení...)

28 Průběh obsluhy přerušení I/O modul nebo jiný systémový HW vyšle požadavek na přerušení procesor dokončí rozpracovanou instrukci procesor signalizuje I/O modulu akceptování požadavku procesor uloží PSW a PC do zásobníku procesor načte do PSW a PC přerušovací vektor obnov původní PSW a PC obnov informace o stavu procesu obsluž požadavek ulož zbytek informací o stavu procesu ulož zbytek informací o stavu procesu probíhá v hardware I/O modul zaregistruje převzetí požadavku a ukončí jeho vysílání probíhá v software pokud není povoleno přerušení, provede procesor další instrukci programu

29 Přerušení zlepšuje využití CPU  I/O program aktivovaný programem uživatele připraví I/O modul k akci a povolí přerušení  I/O program vrátí řízení programu uživatele nemusí to být nutně tentýž program (rozhoduje o tom OS)  během provádění I/O operace běží program uživatele dál CPU nečeká, je smysluplně využita!  v okamžiku dokončení I/O operace je program uživatele přerušen  procedura pro obsluhu přerušení převezme informace o výsledku I/O operace (stavu modulu)  Po obsloužení přerušení se řízení vrátí zpět programu uživatele

30 Typy přerušení  I/O přerušení  signalizuje dokončení I/O operace (správné nebo chybové)  Časovač (Timer)  poskytuje OS a programům informace o reálném nebo relativním čase  Programové chyby (Exceptions)  přetečení při aritmetické operaci  pokus o provedení nedovolené instrukce často se záměrně využívá pro vyvolání akce OS z programu uživatele  pokus o adresování neexistující nebo zakázané oblasti paměti  Chyby hardware  např. chyba parity paměti, výpadek napájení,...

31 Sekvenční obsluha přerušení  během obsluhy přerušení je další přerušení zakázáno to může způsobit problémy, pokud obsluha přerušení trvá dlouho  požadavek na přerušení trvá, dokud procesor znovu nepovolí přerušení  teprve po dokončení obsluhy přerušení procesor zjišťuje, zda nejsou další požadavky na přerušení po tuto dobu počítač nemůže reagovat na událost Y !

32 Prioritní přerušovací systém  požadavek na přerušení s vyšší prioritou (Y) může přerušit provádění obslužné rutiny přerušení s nižší prioritou (X)  obsluha přerušení s nižší prioritou (X) se dokončí až po obsloužení všech požadavků s vyšší prioritou Příklad: přerušení přicházející od rozhraní LAN má přednost před přerušením z tiskárny, protože vyrovnávací paměť je nutné rychle uvolnit pro další data

33 Techniky I/O komunikace  Pro I/O operace lze použít 3 různé techniky:  Programovaný I/O přenos nepoužívá se přerušení; CPU musí čekat na dokončení každé I/O operace  I/O přenos s přerušením během provádění I/O operace může CPU pracovat; činnost CPU je přerušena po dokončení I/O operace  I/O přenos s přímým přístupem do paměti (Direct Memory Access, DMA) data se přenášejí po blocích přímo mezi I/O modulem a pamětí, bez účasti CPU; program pouze inicializuje DMA přenos (odkud, kam, kolik,...)

34 Programovaný I/O přenos  nevyžaduje od hardware, aby dokázal přerušit činnost CPU po dokončení I/O operace  dokud I/O modul nedokončí akci, musí program čekat  v době čekání na dokončení I/O operace zůstává procesor zaměstnán testováním stavu I/O modulu testuj stav přenos dokončen? zapiš data do paměti přečti slovo dat z I/O modulu přečti stav I/O modulu odešli příkaz ČTI do I/O modulu ANO NE CPU  paměť I/O  CPU chyba I/O  CPU CPU  I/O data připravena nepřipr. čti další slovo čekej data reaguj na chybu pokračuj

35 I/O přenos s přerušením  činnost procesoru je přerušena, jakmile je I/O modul připraven k další akci  odpadá zbytečné čekání, po dobu provádění I/O operace je procesor volný pro jinou činnost  pro přenos se spotřebuje část času procesoru (procedura pro obsluhu přerušení musí obsloužit přenos každého slova dat) testuj stav přenos dokončen? zapiš data do paměti přečti slovo dat z I/O modulu přečti stav I/O modulu odešli příkaz ČTI do I/O modulu ANO NENE CPU  paměť I/O  CPU chyba I/O  CPU CPU  I/O data připravena další slovo reaguj na chybu pokračuj CPU dělá něco jiného přerušení CPU dělá něco jiného přerušení

36 DMA přenos  procesor předá požadavek na přenos bloku dat DMA modulu může se jednat o samostatný modul nebo je DMA součástí normálního I/O modulu  DMA modul přenese blok dat přímo mezi I/O modulem a pamětí, bez účasti CPU částečně omezuje procesor pouze v přístupu k operační paměti  po dobu přenosu bloku je procesor zcela volný pro jiné použití  o dokončení přenosu bloku je procesor informován přerušením testuj stav přečti stav DMA modulu inicializuj DMA přenos chyba I/O  CPU CPU  DMA konec přenosu reaguj na chybu pokračuj CPU dělá něco jiného přerušení CPU dělá něco jiného přerušení

37 Princip multiprogramování  Jestliže program čte znak z periferního zařízení, musí po vydání příkazu čekat, dokud periferní zařízení neoznámí, je je znak připraven Při zápisu je situace podobná - před odesláním znaku musí program zkontrolovat, zda smí znak odeslat. Pokud zařízení nemůže znak přijmout, musí program čekat  Provádění programu procesorem lze po dokončení kterékoliv instrukce přerušit, uložit informace o aktuálním stavu procesu a začít provádět jiný program  Přerušení umožňuje efektivní využití procesoru, pokud je sdílen několika vzájemně si konkurujícími aktivními procesy (programy). V době, kdy jeden program čeká na dokončení I/O operace, lze CPU využít k provádění jiného programu

38 Princip sdílení času  technika umožňující interaktivní práci více uživatelů  typický interaktivně připojený uživatel potřebuje během 1 minuty pouze 2 sec času CPU Důsledek: i když bude cca 30 uživatelů sdílet jeden procesor, nezaznamenají uživatelé významné prodloužení reakční doby počítače  každý uživatel má pocit, že má počítač sám pro sebe ve skutečnosti se programy jednotlivých uživatelů v krátkých časových intervalech střídají Příklad: 16 uživatelů se střídá tak, že program každého uživatele je spuštěn jednou za 320ms na dobu 20ms každý uživatel má k dispozici pouze 1/16 času CPU program každého uživatele je spuštěn cca 3x za 1 sec

39 Princip sdílení času T1 T2 T4 T5 T6 T7 T8T9 T10 T11 T12 T13 T14 T15 T16 T3 16 x 20ms = 320ms


Stáhnout ppt "Operační systémy Přednášky pro předmět Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003."

Podobné prezentace


Reklamy Google