Upload
armand-fowler
View
53
Download
3
Embed Size (px)
DESCRIPTION
Jiří Lažanský, K13133 [email protected] Obsah. O bsah a organizace předmětu Co to je Operační systém Multiprogramování, sdílení času Rozmanitost operačních systémů , historie Základní struktura technického vybavení Procesor a jeho registry Instrukce a jejich vykonávání - PowerPoint PPT Presentation
Citation preview
Úvod, Technické vybavení 1A4B33OSS (J. Lažanský)verze: Podzim 2010
Téma 1: Úvod, Technické vybavení
1. Obsah a organizace předmětu2. Co to je Operační systém3. Multiprogramování, sdílení času4. Rozmanitost operačních systémů, historie5. Základní struktura technického vybavení6. Procesor a jeho registry7. Instrukce a jejich vykonávání8. Vstup a výstup9. Režimy práce procesoru10. Výjimečné situace, přerušení11. Paměti a jejich hierarchie12. Ochranné mechanismy
Jiří Lažanský, [email protected]
Obsah
Úvod, Technické vybavení 2A4B33OSS (J. Lažanský)verze: Podzim 2010
O čem tento předmět NENÍ
• Poznat principy práce OS• Naučit se OS využívat efektivně a bezpečně
– Vhodným programováním na uživatelské úrovni lze mnohdy výrazně zefektivnit běh úloh
• Uvidíme proč a jak– Při tvorbě složitějších systémů lze narazit na zřídka se
vyskytující, o to však nebezpečnější situace
Cíle předmětu
Jaký JE účel tohoto předmětu
• O konkrétních implementacích konkrétních operačních systémů (OS) na konkrétních hardwarových platformách
– Konkrétní implementace pouze jako ilustrace principů• O tvorbě operačních systémů jako celků
Úvod, Technické vybavení 3A4B33OSS (J. Lažanský)verze: Podzim 2010
Studijní podklady
• Souhrnná literatura v češtině není• Tyto prezentace (stránka předmětu):
http://labe.felk.cvut.cz/vyuka/A4B33OSS/• Cvičení částečně seminární a samostatná práce
– Odkaz na cvičení z uvedené stránky– Vedoucí cvičení: RNDr. Petr Štěpán, PhD.
• Zkouška: – Výsledky cvičení (až 10 b.)– Test u zkoušky (až 6 b.) – Zadaný příklad/úloha (až 14 b.) – Hodnocení:
• ≥ 27 & Minimálně 9 bodů ze cvičení → A (výborně)• 24 – 26 & Minimálně 8 bodů ze cvičení → B (velmi dobře)• 21 – 23 & Minimálně 7 bodů ze cvičení → C (dobře)• 18 – 20 → D (uspokojivě)• 15 – 17 → E (dostatečně)
Úvod, Technické vybavení 4A4B33OSS (J. Lažanský)verze: Podzim 2010
Literatura
• Silberschatz A., Galvin P. B., Gagne G.: Operating System Concepts
– http://codex.cs.yale.edu/avi/os-book/OS7/os7c/index.html
• Tanenbaum A. S.: Modern Operating Systems– http://www.cs.vu.nl/~ast/books/mos2/
• Stallings W.: Operating Systems: Internals and Design Principles
– http://williamstallings.com/OS/OS6e.html
• Comer D. E.: Internetworking With TCP/IP Volume 1: Principles Protocols, and Architecture,
– http://www.cs.purdue.edu/homes/dec/vol1/vol1_presentation.pdf
Úvod, Technické vybavení 5A4B33OSS (J. Lažanský)verze: Podzim 2010
A. S. Tanenbaum:Modern Operating Systems
Úvod, Technické vybavení 6A4B33OSS (J. Lažanský)verze: Podzim 2010
Proč studovat OS?• Pravděpodobně nikdo z nás nebude psát celý nový OS• Proč tedy OS studovat?
– Jde o nejrozsáhlejší a nejsložitější IT systémy– Uplatňují se v nich mnohé různorodé oblasti
• softwarové inženýrství, • netradiční struktury dat, • sítě, • algoritmy, …
– Čas od času je potřeba OS upravit• pak je potřeba operačním systémům rozumět• psaní ovladačů, …
– Techniky užívané v OS lze uplatnit i v jiných oblastech• neobvyklé struktury dat, krizové rozhodování, problémy
souběžnosti, správa zdrojů, ... • mnohdy aplikace technik z jiných disciplin (např. operační výzkum)• naopak techniky vyvinuté pro OS se uplatňují v jiných oblastech
(např. při plánování aktivit v průmyslu)
Úvod, Technické vybavení 7A4B33OSS (J. Lažanský)verze: Podzim 2010
Co to je Operační systém? (1)
• Neexistuje žádná obecně uznávaná definice• OS je programový subsystém fungující jako mezičlánek,
který spojuje uživatele a hardware počítače• Úkoly OS:
– dohlížet na provádění výpočtů řízených uživatelskými programy
– usnadňovat řešení uživatelských problémů– umožnit efektivní využití hardware počítače– učinit počítač snáze použitelný
• OS je – správce prostředků – spravuje a přiděluje zdroje systému– řídicí program – řídí provádění ostatních programů
• Jádro operačního systému – trvale ‘aktivní’ program• ostatní (tzv. systémové) programy lze chápat jako nadstavbu jádra• aplikační programy jsou vlastně jádrem spouštěné „rutiny“
Úvod, Technické vybavení 8A4B33OSS (J. Lažanský)verze: Podzim 2010
Co to je Operační systém? (2)• Několik koncepcí pojmu OS
– systémové (jen jádro a s ním související nadstavby)– „obchodní“ (to, co si koupíme pod nálepkou OS)– organizační (včetně pravidel pro hladký chod systému)
• OS jako rozšíření počítače– Zakrývá komplikované detaily hardware– Poskytuje uživateli „virtuální stroj“, který má se snáze
ovládá a programuje• OS jako správce systémových prostředků
– Každý program dostává prostředky v čase– Každý program dostává potřebný prostor na potřebných
prostředcích
Úvod, Technické vybavení 9A4B33OSS (J. Lažanský)verze: Podzim 2010
Skladba počítačového systému
• Hardware– základní výpočetní zdroje (CPU/procesor, paměť, I/O
zařízení)• Operační systém
– řídí a koordinuje používání hardware různými aplikačními programy různých uživatelů
• Aplikační programy– definují způsoby, jak se zdroje výpočetního systému
používají pro řešení uživatelských výpočetních problémů (kompilátory, databázové systémy, video hry, programy účetní správy, rezervace místenek, programovatelný logický automat, ...)
• Uživatelé– lidé, stroje (řízení klimatizace budovy), jiné počítače (sítě,
distribuované systémy)
Úvod, Technické vybavení 10A4B33OSS (J. Lažanský)verze: Podzim 2010
Model počítačového systému
Překladač Textový editor
Počítačová hra
Databáze
Systémové a aplikační programy
Operační systém(jádro)
Hardware počítače
Uživatel 1
Uživatel 2
Uživatel 3
Uživatel n
...
Úvod, Technické vybavení 11A4B33OSS (J. Lažanský)verze: Podzim 2010
Různorodost operačních systémů• OS „střediskových“ (mainframe) počítačů• OS datových a síťových serverů• OS multiprocesorových počítačů• OS osobních počítačů a pracovních stanic• OS reálného času (Real-time OS)• Vestavěné OS (tiskárna, pračka, telefon, ...)• OS čipových karet (smart card OS)• ... a mnoho dalších specializovaných systémů
Úvod, Technické vybavení 12A4B33OSS (J. Lažanský)verze: Podzim 2010
Klasické „střediskové“ počítače (1)• Střediskový počítač – dnes již historický pojem• V současnosti vystupují v jejich rolích podnikové
servery• Hlavní rysy „střediskových“ počítačů
– Zpravidla děrnoštítkové systémy– Redukce režijního času pro přípravu výpočtů se dosahovalo
řazením podobných prací/zakázek (jobs) do dávek – batch – Batch processing, automatizace řazení dávek včetně
automaticky předávaného řízení mezi definovanými zakázkami (jobs)
– Rezidentní řídicí program – monitor – předává řízení mezi zakázkami; když zakázka končí – řízení se vrací monitoru
– Multiprogramní režim činnosti – na primitivní úrovni (aspoň z dnešního pohledu)
Úvod, Technické vybavení 13A4B33OSS (J. Lažanský)verze: Podzim 2010
Klasické „střediskové“ počítače (2)
Historický systém dávkového zpracování– Operátor přinesl děrné štítky k IBM 1401– Zde vznikla tzv. „dávka“ (in-spooling)– Na IBM 7094 proběhlo vlastní zpracování– Výstupní IBM 1401 poslal výsledky na tiskárnu (out-spooling)
• Spooling se samozřejmě používá i v nejmodernějších systémech
Úvod, Technické vybavení 14A4B33OSS (J. Lažanský)verze: Podzim 2010
OS implementující multiprogramování (1)
• Funkcionalita pro ovládání I/O– Řízení operací provádí výhradně operační systém– Dva režimy práce CPU (jádro vs. uživatel) →
privilegované instrukce• Funkcionalita pro správu paměti
– Systém musí být schopný přidělovat paměť různým zakázkám a ze zakázek odvozeným procesům dynamicky přidělovat paměť
– Dvojí pohled na paměť• z hlediska její fyzické konstrukce a šířky fyzických adresovacích
sběrnic – fyzický adresní prostor, FAP• z hlediska konstrukce adresy ve strojovém jazyku – logický adresní
prostor, LAP– Ochrana oblastí paměti před neautorizovaným přístupem
Úvod, Technické vybavení 15A4B33OSS (J. Lažanský)verze: Podzim 2010
OS implementující multiprogramování (2)• Mechanismus přerušení
– předávání řízení mezi aplikačním programem a „monitorem“ → implementace reakcí na asynchronní události
– OS je systém řízený přerušeními• Plánování práce CPU
– reaguje se na generátor časových značek (timer) – po uplynutí daného intervalu generuje přerušení
– ochrana proti trvalému obsazení CPU uživatelským procesem (záměrně, chybou, ...)
– OS musí být schopen volit mezi různými výpočetními procesy připravenými k činnosti
• Funkcionalita pro přidělování zařízení (systémových zdrojů)
– dynamické přidělování– přidělování exklusivní či sdílené
Úvod, Technické vybavení 16A4B33OSS (J. Lažanský)verze: Podzim 2010
Systémy s přidělováním časových kvant
• Tzv. Time-Sharing Systems (TSS)• Multiprogramování vzniklo jako nástroj pro efektivní
řešení dávkového zpracování• TSS rozšiřují plánovací pravidla
– o rychlé (spravedlivé, cyklické ) přepínání mezi procesy řešícími zakázky interaktivních uživatelů
• Podpora on-line komunikace mezi uživatelem a OS – původně v konfiguraci počítač – terminál– v současnosti v síťovém prostředí
• Systém je uživatelům dostupný on-line jak pro zpřístupňování dat tak i programů
Úvod, Technické vybavení 17A4B33OSS (J. Lažanský)verze: Podzim 2010
Osobní (personální) počítače – PC
• Typicky orientované na jednoho uživatele – v současné době ale vesměs s multiprogramováním
(multitaskingem)• Typizované I/O vybavení
– klávesnice, myš, obrazovka, malá tiskárna, komunikační rozhraní
• Upřednostňovaným cílem je uživatelovo pohodlí – minimum ochran – hlavní roli hraje odpovědnost uživatele– často se nevyužívají ochranné vlastnosti CPU
• OS PC často adoptují technologie vyvinuté pro OS větších počítačů
• Mnohdy lze provozovat různé typy operačních systémů– M$ Windows , UNIXy , Linux ...
Úvod, Technické vybavení 18A4B33OSS (J. Lažanský)verze: Podzim 2010
Paralelní a distribuované systémy• Paralelní systémy
– více procesorů (tzv. multiprocesory)– sdílí společný FAP – všechny procesory mohou „současně” vidět stav paralelně
řešené úlohy udržovaný ve sdíleném FAP– paralelní systémy jsou řízeny paralelními algoritmy– někdy též „těsně vázané“ systémy (tightly-coupled systems)
• Distribuované systémy– více počítačů (ne nutně shodných)– každý má samostatný FAP – komunikují periferními operacemi (komunikační spoje, síť)– stav distribuovaně řešené úlohy si musí každý zúčastněný
počítač postupně získávat výměnou zpráv řízenou distribuovanými algoritmy
– někdy též „volně vázané“ systémy (loosely-coupled systems)
Úvod, Technické vybavení 19A4B33OSS (J. Lažanský)verze: Podzim 2010
Paralelní systémy• Zvyšují propustnost a spolehlivost při rozumných
nákladech na výpočetní systém• Multiprocesorové systémy
– systémy s více procesory vzájemně komunikujícími vnitřními prostředky jednoho výpočetního systému (např. společnou sběrnicí)
• Nesymetrický multiprocesing– každý procesor má přidělený specifický úkol– hlavní (master) procesor plánuje a přiděluje práci podřízeným
(slave) procesorům• Symetrický multiprocesing (SMP)
– podporován většinou soudobých OS– současně může běžet více procesů na různých CPU– kterýkoliv proces (i jádro OS) může běžet na kterémkoliv
procesoru
Úvod, Technické vybavení 20A4B33OSS (J. Lažanský)verze: Podzim 2010
Distribuované systémy• Rozdělení výpočtů mezi více počítačů propojených sítí
– lze sdílet zátěž (load-sharing), výpočty se tím zrychlují i za cenu vyšší režie spojené s komunikací
– zvyšuje se spolehlivost a komunikační schopnosti– každý samostatný procesor má svoji vlastní lokální paměť– vzájemně se komunikuje pomocí přenosových spojů (sítě)
mechanismem výměny zpráv• Vynucují si použití vhodné síťové infrastruktury
– LAN, Local Area Networks– WAN, Wide Area Networks
• Klasifikace– asymetrické distribuované systémy – klient-server– symetrické distribuované systémy – peer-to-peer
• OS:– Distribuovaný OS vs. síťový OS
Úvod, Technické vybavení 21A4B33OSS (J. Lažanský)verze: Podzim 2010
Paralelní a distribuované systémy
Těsně vázaný multiprocesorový systém
CPUCPUCPU ...
Paměť
Sběrnice
Klient Klient Klient Klient...
Server
Síťová infrastruktura
Distribuovaný systém typu klient-server
Úvod, Technické vybavení 22A4B33OSS (J. Lažanský)verze: Podzim 2010
Real-Time systémy (RT systémy)• Zpravidla řídicí zařízení v dedikovaných (vestavěných)
aplikacích:–vědecký přístroj, diagnostický zobrazovací systém, systém
řízení průmyslového procesu, monitorovací systémy• Obvykle dobře definované pevné časové limity• Klasifikace:
–striktní RT systémy – Hard real-time systems• omezená nebo žádná vnější paměť, data se pamatují krátkodobě v RAM
paměti• protipól TSS, univerzální OS nepodporují striktní RT systémy• plánování musí respektovat požadavek ukončení kritického úkolu v
rámci požadovaného časového intervalu –tolerantní RT systémy – Soft real-time systems
• použití např. v průmyslovém řízení, v robotice• použitelné v aplikacích požadujících dostupnost některých vlastností
obecných OS (multimedia, virtual reality, video-on-demand)• kritické úkoly mají přednost „před méně šťastnými”
Úvod, Technické vybavení 23A4B33OSS (J. Lažanský)verze: Podzim 2010
Kapesní systémy• Handheld Systems, Personal Digital Assistants (PDA)• Charakteristiky:
– Požadavek energetické úspornosti => Pomalé procesory– Omezená kapacita paměti– Zpravidla malý display – Potřeba multiprogramování, avšak obvykle bez sdílení času
• Mobilní telefony– Navíc podpora síťových komunikačních protokolů– Softwarové modemy
Úvod, Technické vybavení 24A4B33OSS (J. Lažanský)verze: Podzim 2010
Základní komponenty osobního počítače
Úvod, Technické vybavení 25A4B33OSS (J. Lažanský)verze: Podzim 2010
Komponenty univerzálního počítačeTiskárny
CPU Řadič disků
Řadičtiskáren
Řadič měniče
DVD
Jednotka správy paměti (MMU)
Hlavní paměť
Systémová sběrnice
Disky Měnič DVD-RW
disků
Úvod, Technické vybavení 26A4B33OSS (J. Lažanský)verze: Podzim 2010
Souvislost operací I/O a CPU
• I/O = to co se děje mezi lokální vyrovnávací pamětí řadiče a vlastní fyzickou periferií
• I/O zařízení (periferie) a CPU by měly pracovat souběžně– řádově odlišné rychlosti – každý řadič zařízení má lokální vyrovnávací paměť, buffer
• Každý řadič zařízení je odpovědný za činnost zařízení jistého typu
– periferie jsou velmi rozmanité• Přesun dat mezi operační pamětí a lokální vyrovnávací
pamětí periférie – zajišťuje CPU programovými prostředky (tzv. programový
kanál)– specializovaný hardware (tzv. DMA kanál)
• Řadič zařízení informuje CPU o ukončení své činnosti přerušením
Úvod, Technické vybavení 27A4B33OSS (J. Lažanský)verze: Podzim 2010
Sběrnicový pohled na počítač
Úvod, Technické vybavení 28A4B33OSS (J. Lažanský)verze: Podzim 2010
Centrální jednotka počítače (CPU)
Základní pohled na nejdůležitější
komponenty centrální jednotky
počítače
PC = Program Counter = Čítač instrukcí
IR = Instruction Register = Registr instrukcí
MAR = Memory Address Register = Adresní registr paměti
MBR = Memory Buffer Register = Datový vyrovnávací registr paměti
I/O AR = I/O Address Register = Adresní registr I/O
I/O BR = I/O Buffer Register = Datový vyrovnávací registr I/O
DBR = Data Buffer Register = Datový vyrovnávací registr řadiče
CSR = Control & Status Register = Řídicí a stavový registr na řadiči
Úvod, Technické vybavení 29A4B33OSS (J. Lažanský)verze: Podzim 2010
Registry procesoru• Uživatelské registry
– Uživatelsky viditelné (programově dostupné) registry– Umožňují vlastní programování a zpracování dat– Obsahují data, adresy a podmínkové kódy
• Řídicí a stavové registry– Obecně nedostupné uživatelským procesům– Procesor modifikuje svoji činnost jejich obsahem (řídicí) a
vykazuje v nich svůj stav (stavové)– Některé z nich používá CPU pro řízení práce programů
• Program Counter (PC) – adresa získávané instrukce (někdy též Instruction Pointer =
IP)• Instruction Register (IR) – kód instrukce přečtené z paměti• Program Status Word (PSW) – obsahuje:
Bity podmínkových kódu a stavu (např. vlastnosti výsledku předchozí operace)Interrupt enable/disable bitSystem (kernel, supervisor)/User mode bit
Úvod, Technické vybavení 30A4B33OSS (J. Lažanský)verze: Podzim 2010
Uživatelské registry• Uživatelské registry
– Dostupné běžnými strojovými instrukcemi– Používány všemi programy (tj. aplikačními i
systémovými)• Typy uživatelských registrů
– Datové – většinou univerzální použití – Adresní
• Obecné adresní• Bázové registry • Segmentační registry• Indexní registry – obsahují relativní adresy• Ukazatel zásobníku (Stack pointer)
• Příklady instrukcí: move.l D0,(A4)+ (MC 680*0) add.b (A1,D3),D0
Úvod, Technické vybavení 31A4B33OSS (J. Lažanský)verze: Podzim 2010
Základní instrukční cyklus CPU
• Přípravná fáze (fetch cycle)– nahrává do procesoru instrukci podle PC a umístí její kód
do IR– na jejím konci se (zpravidla) inkrementuje PC
• Výkonná fáze (execute cycle)– vlastní provedení instrukce– může se dále obracet (i několikrát) k paměti
loop: FETCH; /* ((PC)) → IR */Increment(PC);EXECUTE; /* proveď operaci dle (IR) */
end loop
STARTNahrát
instrukciVykonat instrukci
STOP
Přípravný cyklus Výkonný cyklusInstrukce stop
Úvod, Technické vybavení 32A4B33OSS (J. Lažanský)verze: Podzim 2010
Přerušení• Přerušení normální posloupnosti provádění instrukcí
– cílem je zlepšení účinnosti práce systému– je potřeba provést jinou posloupnost příkazů jako reakci na
nějakou „neobvyklou” událost– přerušující událost způsobí, že se pozastaví běh procesu v
CPU takovým způsobem, aby ho bylo možné později znovu obnovit, aniž by to přerušený proces „poznal“
• Souběh I/O operace – Přerušení umožní, aby CPU prováděla jiné akce než
instrukce programu čekajícího na konec I/O operace– Činnost CPU se později přeruší iniciativou „I/O modulu”– CPU předá řízení na obslužnou rutinu přerušení (Interrupt
Service Routine) – standardní součást OS• CPU testuje nutnost věnovat se obsluze přerušení
alespoň po dokončení každé instrukci– existují výjimky (např. „blokové instrukce“ Intel)
Úvod, Technické vybavení 33A4B33OSS (J. Lažanský)verze: Podzim 2010
Cyklus CPU s přerušovacím systémem• Je nevyřízená žádost o přerušení, a přerušení je povoleno
– spustí se obslužný podprogram přerušení, jehož adresa se získá z vektoru přerušení
INTF: Boolean:=False; /* Při žádostí o přerušení → True */loop: FETCH;
Increment(PC);EXECUTE;if INTF thenUlož PSW do PSWbf;Do PSW vygeneruj slovo s indikací System mode a
Interrupt disabled;Ulož PSWbf na vrchol zásobníku;Ulož PC na vrchol zásobníku;Do PC zaveď obsah příslušné položky vektorupřerušení
end loop
STARTNahrát instrukci
Vykonat instrukci
STOP
Přípravný cyklus Výkonný cyklus
Přerušeni zakázána
Přerušeni povolena
Existuje žádost o
přerušení?
Ne
Ano
Přerušovací cyklus Vektor přerušení
Adr
esy
obsl
užný
ch
podp
rogr
amů.
V
ekto
r ind
exov
án z
droj
em p
řeru
šení
Akt
ivity
při
zpra
cová
ní
přer
ušen
í
Úvod, Technické vybavení 34A4B33OSS (J. Lažanský)verze: Podzim 2010
Výjimky a jejich třídy• Přerušení je speciálním případem výjimečné situace• Synchronní (s během programu)
– Programové (naprogramované)• speciální instrukce (INT, TRAP)
– Generované kontrolními obvody počítače:• aritmetické přetečení, dělení nulou• pokus o vykonání nelegální či neznámé instrukce• neoprávněný pokus o přístup k paměťové lokaci (narušení ochrany
paměti, virtuální paměť )• Asynchronní (přicházející zvenčí – klasické přerušení)
– I/O, časovač, hardwarové problémy (např. výpadek napájení ...)• Kdy se na výjimečné situace reaguje?
– Standardní přerušení: Po dokončení instrukce během níž vznikl požadavek
– Výjimka vysoké úrovně: Během provádění instrukce (po dokončení některé fáze provádění instrukce) – instrukci nelze dokončit
– Kritická výjimka: Nelze dokončit ani cyklus přenosu dat a je nutno reagovat neprodleně
Úvod, Technické vybavení 35A4B33OSS (J. Lažanský)verze: Podzim 2010
Organizace I/O – 2 způsoby obsluhy• I/O operace:
– Zpravidla přenos sekvence údajů– Přenos dat z I/O zařízení do OP – vstup– Přenos dat z OP do I/O – výstup
• Dva způsoby obsluhy– S aktivním čekáním (busy waiting)
• v systémech bez řízení IO pomocí OS • žádné souběžné zpracovává ní I/O, nedořešený zůstává nejvýše jeden
I/O požadavek• program testuje konec IO operace opakovanými dotazy na příslušný
stavový registr IO zařízení– S přerušením a OS řízeným souběžným prováděním
• v systémech s řízením IO pomocí OS • souběžné zpracovává ní I/O s během programu(ů)• I/O operaci zahajuje OS na žádost z uživatelské ho procesu• uživatelský proces čeká na dokončení I/O operace – synchronní řešení
I/O • uživatelský proces nečeká na dokončení I/O operace – asynchronní
řešení I/O, může běžet souběžně s I/O operací
Úvod, Technické vybavení 36A4B33OSS (J. Lažanský)verze: Podzim 2010
Synchronní a asynchronní I/O operace
Čas
Ovladač periferie
Hardware
Datový přenos
Proces požadující I/O
Obslužná rutina přerušení
čeká
Událost ukončující čekáni
Synchronní operace
Uži
vat.
Sys
tém
.
Čas
Ovladač periferie
Hardware
Datový přenos
Proces požadující I/O
Obslužná rutina přerušení
pracuje
Oznámení o ukončení I/O operace
Asynchronní operace
• Synchronní operace – Obvyklé řešení
• Asynchronní operace– Obtížné programování
• Výstup – relativně schůdné• Vstup: Více vyrovnávacích pamětí („houpačka“)
Úvod, Technické vybavení 37A4B33OSS (J. Lažanský)verze: Podzim 2010
I/O s aktivním čekáním
• CPU zahajuje elementární přenos údajů a v „dotazovací smyčce“ čeká na připravenost dat
• Jednoduché• Velmi neefektivní (až na zcela výjimečné
případy)• Použitelné jen v primitivních
systémech bez multiprogramování
Zadej příkaz "read"
I/O řadiči
Přečti stavový registr řadiče
Přečti datové slovo z datového
registru řadiče
Ulož údaj do hlavní paměti
Analyzuj stav řadiče
Hotovo?
CPU→I/O
I/O→CPU
I/O→CPU
CPU→Paměť
Nepřipraven
Data platná
Chyba
Ne
Ano
Další instrukce
Úvod, Technické vybavení 38A4B33OSS (J. Lažanský)verze: Podzim 2010
Programový I/O s přerušením
• CPU inicializuje elementární přenos a věnuje se jiné činnosti
• Když je údaj připraven, adapter ZVV vyvolá přerušení
• Obslužná rutina přenese data mezi DBR a pamětí
• Pružné – data lze při přenosu upravovat• Relativně pomalé, účast CPU, řízeno
programem• Jen pro ZVV schopná práce v režimu
start-stop– Zařízení schopná pozastavit přenos dat
kdykoliv a na libovolně dlouhou dobu beze ztrát
Zadej příkaz "read"
I/O řadiči
Přečti stavový registr řadiče
Přečti datové slovo z datového
registru řadiče
Ulož údaj do hlavní paměti
Analyzuj stav řadiče
Hotovo?
CPU→I/O
I/O→CPU
I/O→CPU
CPU→Paměť
Data platná
Chyba
Ne
Ano
Další instrukce
Věnuj se jiné činnosti
Přerušení
Úvod, Technické vybavení 39A4B33OSS (J. Lažanský)verze: Podzim 2010
Přímý přístup do paměti - DMA• Určeno pro blokové přenosy dat vysokou rychlostí• I/O přenosy se uskutečňují bez přímé účasti procesoru
mezi periferním zařízením a pamětí– Procesor dovolí I/O modulu přímo číst z nebo zapisovat do
operační paměti – kradení cyklů (cycle stealing)– Procesor zadá jen velikost a umístění bloku v paměti a směr
přenosu– Přerušení se generuje až po dokončení přenosu bloku dat
CPU Paměť Řadičdisků
Úvod, Technické vybavení 40A4B33OSS (J. Lažanský)verze: Podzim 2010
I/O operace s přímým přístupem do paměti
• CPU zadá parametry přenosu DMA jednotce
• Přenos probíhá autonomně bez účasti CPU
• DMA vyvolá přerušení po ukončení přenosu bloku (nebo při chybě)
• Obslužná rutina pouze testuje chybový stav a informuje OS, že přenos skončil
Zadej příkaz"block read"
I/O řadiči
Přečti stavovýregistr DMA
Analyzuj stavDMA
CPU > DMA
DMA > CPU
Další instrukce
Chyba
Věnuj sejiné činnosti
Přerušení
Úvod, Technické vybavení 41A4B33OSS (J. Lažanský)verze: Podzim 2010
Režimy práce procesoru• Dva režimy práce procesoru
– Základ hardwarových ochran– Systémový = privilegovaný režim
• procesor může vše, čeho je schopen– Uživatelský = aplikační (ochranný) režim
• privilegované operace jsou zakázány– Privilegované operace
• ovlivnění stavu celého systému (halt, reset, Interrupt Enable/Disable, modifikace PSW, modifikace registrů MMU )
• instrukce pro vstup/výstup (in, out)– Okamžitě platný režim je zachycen v PSW (S-bit)
• Přechody mezi režimy– Po zapnutí systémový režim S U
Speciální instrukce
Jakékolivpřerušení
vč. synchronního
Úvod, Technické vybavení 42A4B33OSS (J. Lažanský)verze: Podzim 2010
Vícenásobná přerušení
• Sekvenční zpracování– během obsluhy jednoho
přerušení se další požadavky nepřijímají (pozdržují se)
– jednoduché, ale nevhodné pro časově kritické akce
• Vnořené zpracování– prioritní mechanismus– přijímají se přerušení s
prioritou striktně vyšší, než je priorita obsluhovaného přerušení
Aplikační program ISR 1
ISR 2
Aplikační program
ISR 2
ISR 1
Úvod, Technické vybavení 43A4B33OSS (J. Lažanský)verze: Podzim 2010
Postup přijímání přerušení (1)
• Žádost se vyhodnotí na přípustnost (priority přerušení)• Procesor přejde do zvláštního cyklu
1. Uschová se obsah stavového slova procesoru (PSW).2. Do PSW se vygeneruje "syntetické" stavové slovo s
nastaveným S-bitem. Nyní je CPU v privilegovaném režimu 3. Uschované původní PSW uloží na zásobník. Na zásobník se
uloží i čítač instrukcí PC (tzv. rámec přerušení).4. PC se nahradí hodnotou z vektoru přerušení, indexovaného
zdrojem přerušení.
Úvod, Technické vybavení 44A4B33OSS (J. Lažanský)verze: Podzim 2010
Postup přijímání přerušení (2)
• Procesor přechází do normálního režimu práce a zpracovává obslužnou rutinu přerušení
– Obslužná rutina musí být transparentní– Obslužnou rutinu končí instrukce „návrat z přerušení“
(IRET, RTE) mající opačný efekt: z vrcholu zásobníku vezme položky, které umístí zpět do PC a PSW
• Při vhodném naformulování položek na vrcholu systémového zásobníku se instrukce návratu z přerušení používá pro přechod ze systémového do uživatelského režimu
Úvod, Technické vybavení 45A4B33OSS (J. Lažanský)verze: Podzim 2010
Hierarchie pamětí (1)
• Hierarchie pamětí z pohledu rychlosti a kapacity– uvedená čísla představují pouze hrubá přiblížení– směrem dolů klesá rychlost i „cena za 1 bit“
• Typy prvků používaných v hlavní paměti– RAM, ROM, EEPROM, CMOS-RAM
Typická přístupová doba Typická kapacita
1 ns < 1 KB
3 ns < 16 MB
50 ns 32 MB – 8 GB
10 ms 5 – 400 GB
100 s
Registry
Cache
Hlavní paměť
Pevný magnetický disk
Magnetická páska 20 – 1000 GB
Energeticky nezávislé (persistent)
Energeticky závislé (volatile)
Úvod, Technické vybavení 46A4B33OSS (J. Lažanský)verze: Podzim 2010
Hierarchie pamětí (2)• Typické údaje
Úroveň 1 2 3 4
Označení registry CPU cache hlavní paměť disk
Typická velikost ≤ 1 KB ≤ 16 MB ≤ 8 GB > 100 GB
Technologie Uvnitř CPU (CMOS)
CMOS SRAM
CMOS DRAM
magnetický disk
Přístupová doba ~ 0,5 ns 1 – 25 ns 80 – 500 ns ~ 5 mso 4 řády pomalejší
Spravováno „překladačem“ hardwarem operačním systémem
operačním systémem
Obsah zálohován v cache v hlavní paměti na disku
na DVD, magnetické pásce, apod.
Úvod, Technické vybavení 47A4B33OSS (J. Lažanský)verze: Podzim 2010
Caching, cache paměti (1)• Caching je princip používaný v OS velmi často
– části obsahu pomalejší paměti s vyšší kapacitou jsou podle potřeby dočasně kopírovány do paměti rychlejší
• Mezipaměť ležící mezi CPU a hlavní pamětí– Transparentní pro operační systém i pro programátora– Je mnohem rychlejší než operační (hlavní) paměť– Mikroprogramem řízené kopírování informací z hlavní paměti
do cache paměti po blocích– Princip časové a prostorové lokálnosti běžných programů– Problém udržení konzistence více kopií těchže dat v
multiprocesorových systémech
Hlavní paměť
CPU Cache
CPU Cache
Jednoslovní přenosy Blokové přenosy
Úvod, Technické vybavení 48A4B33OSS (J. Lažanský)verze: Podzim 2010
Caching, cache paměti (2)• Velikost cache
– čím větší, tím častěji se najdou požadovaná data v cache, ale také roste cena
• Velikost přenosového bloku – kompromis:– velké bloky = dlouhé přenosy– malé bloky = časté přenosy
• Mapovací funkce – kam přijde blok do cache
• Nahrazovací algoritmus:– určuje, který blok v cache bude nahrazen– Least-Recently-Used (LRU) algoritmus
• Analogie– hardwarově realizované principy původně vyvinuté pro
virtuální paměť
Úvod, Technické vybavení 49A4B33OSS (J. Lažanský)verze: Podzim 2010
Struktura diskové jednotky
• Třírozměrná adresa bloku: cylindr, povrch, sektor• Moderní LBA (lineární adresování bloků)
Úvod, Technické vybavení 50A4B33OSS (J. Lažanský)verze: Podzim 2010
Bezpečnostní mechanismy v hardware• Základní opatření
– Dva režimy práce procesoru(ů)
– Vstup a výstup: Povinné a uživatelským režimem vynucené volání služeb OS
• I/O instrukce jsou privilegované
– Uživatelský program nikdy nesmí získat možnost práce v privilegovaném režimu
• Např. nesmí mít možnost zapsat do PSW a změnit tak režim práce CPU (S-bit)
• Rovněž přístupy k vektoru přerušení musí být v uživatelském režimu zakázány
11 kroků k provedení služby read (fd, buffer, nbytes)
Úvod, Technické vybavení 51A4B33OSS (J. Lažanský)verze: Podzim 2010
Další ochranné mechanismy• Ochrana paměti
– Musí zabezpečit izolaci jádra OS i aplikačních programů navzájem
– Souvisí s metodami správy paměti a zobrazováním LAP do FAP
• Ochrana dostupnosti CPU– Prevence před převzetím vlády jednoho aplikačního
programu nad CPU– Řešení: časovač (timer)
• V pravidelných (privilegovaně programovatelných) intervalech vyvolává přerušení, a tak je aktivováno jádro OS
• Mnohdy realizován jako „periferní zařízení“• O přerušení od časovače se opírají mechanismy plánování
procesoru(ů)
Úvod, Technické vybavení 52A4B33OSS (J. Lažanský)verze: Podzim 2010
Struktura standardního PC