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 R3 5678 7 1233 1234 1235 1236 5676 5677 5678 5679 před: –7 po: 0 ALU FETCH EXECUTE ADD R3 5678 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."
Reklamy Google