Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilEmilie Sedláková
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.