Operační systémy a databáze A3B33OSD Jiří Lažanský, K13133 [email protected] A3B33OSD (J. Lažanský) verze: Jaro 2014 Úvod, Technické vybavení.

Download Report

Transcript Operační systémy a databáze A3B33OSD Jiří Lažanský, K13133 [email protected] A3B33OSD (J. Lažanský) verze: Jaro 2014 Úvod, Technické vybavení.

Operační systémy a
databáze
A3B33OSD
Jiří Lažanský, K13133
[email protected]
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
1
Téma 1: Úvod, Technické vybavení
Obsah
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Obsah 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í
Vstup a výstup
Režimy práce procesoru
Výjimečné situace, přerušení
Paměti a jejich hierarchie
Ochranné mechanismy
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
2
Cíle předmětu
O čem tento předmět NENÍ
• O konkrétních implementacích konkrétních operačních
systémů (OS) na konkrétních hardwarových platformách
ani o konkrétních databázových systémech
– Konkrétní implementace pouze jako ilustrace principů
• O tvorbě operačních systémů jako celků
Jaký JE účel tohoto předmětu
• Poznat principy práce OS a databázových systémů
• Naučit se systémy využívat efektivně a bezpečně
– Vhodným programováním na uživatelské úrovni lze mnohdy výrazně
zefektivnit běh úloh
• Ukážeme 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
– Systematická organizace dat v databázích je základem efektivního
přístupu k nim a minimalizace duplicit v datech
• Vícenásobný přístup k datům vede na otázky řešené v operačních
systémech
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
3
Studijní podklady
• Předmět má dvě volně provázané části: OS a DBMS
• Souhrnná literatura v češtině není
• Tyto prezentace (stránka předmětu):
http://labe.felk.cvut.cz/vyuka/A3B33OSD/
• 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ž 5 b. – k pokračování ve zkoušce nutno aspoň 3 body)
Zadané příklady/úlohy (až 15 b.)
Hodnocení:
• ≥ 27 & Minimálně 9 b. ze cvičení
+ ≥ 4.5 b. z testu
• ≥ 24 & Minimálně 8 b. ze cvičení
• ≥ 21 & Minimálně 7 b. ze cvičení
• ≥ 18
• ≥ 15
A3B33OSD (J. Lažanský)
verze: Jaro 2014
→
→
→
→
→
A (výborně)
B (velmi dobře)
C (dobře)
D (uspokojivě)
E (dostatečně)
Úvod, Technické vybavení
4
Literatura
• Silberschatz A., Galvin P. B., Gagne G.:
Operating System Concepts
– http://codex.cs.yale.edu/avi/osbook/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
• Silberschatz A., Korth H. F., Sudarshan
S.: Database System Concepts
– http://codex.cs.yale.edu/avi/db-book/
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
5
A. S. Tanenbaum:
Modern Operating Systems
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
6
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
• inspirace a systémový pohled na řadu jiných úloh
– 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 porozumě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)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
7
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í’ sada
spolupracujících programových komponent
• ostatní (tzv. systémové) programy lze chápat jako nadstavbu jádra
• aplikační programy jsou vlastně jádrem spouštěné „rutiny“
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
8
Co to je Operační systém? (2)
• Několik koncepcí pojmu OS
– systémové
– „obchodní“
– organizační
(jen jádro a s ním související nadstavby)
(to, co si koupíme pod nálepkou OS)
(včetně pravidel pro hladký chod výpočetního
systému)
• OS jako rozšíření počítače
– Zakrývá komplikované detaily hardware závislé na
konkrétní výpočetní platformě
– 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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
9
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 úloh
(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)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
10
Model počítačového systému
Uživatel
1
Uživatel
2
Uživatel
3
Překladač
Textový editor
Počítačová
hra
...
Uživatel
n
Databáze
Systémové a aplikační programy
Operační systém
(jádro)
Hardware
počítače
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
11
Různorodost operačních systémů
• OS „střediskových“ (mainframe) počítačů nebo
„cloudů“
• 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ů
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
12
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 „historických 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)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
13
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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
14
OS implementující multiprogramování (1)
• Funkcionalita pro ovládání I/O
– Řízení operací provádí výhradně operační systém (proč?)
– 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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
15
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
– spolupráce s generátorem časových značek (timer) – po
uplynutí daného intervalu se 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í exkluzivní či sdílené
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
16
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ů
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
17
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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
, UNIXy
, Linux
...
Úvod, Technické vybavení
18
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)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
19
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)
– využívá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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
20
Distribuované systémy
• Rozdělení výpočtů mezi více počítačů propojených sítí
– lze vyvažovat 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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
21
Paralelní a distribuované systémy
CPU
CPU
...
CPU
Těsně vázaný
multiprocesorový
systém
Sběrnice
Paměť
Klient
Klient
Klient
Distribuovaný
systém typu
klient-server
...
Klient
Síťová infrastruktura
Server
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
22
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
• použití např. v přímém průmyslovém řízení, v robotice
–tolerantní RT systémy – Soft real-time systems
• 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”
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
23
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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
24
Základní komponenty osobního počítače
Display
Procesor
Paměť
Video
řadič
Klávesnice
Disketová
mechanika
Pevný
disk
Řadič
klávesnice
Řadič
diskety
Řadič
hard disku
Sběrnice
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
25
Komponenty „univerzálního“ počítače
Tiskárny
Disky
CPU
Měnič
DVD-RW
disků
Řadič
disků
Řadič
tiskáren
Řadič
měniče
DVD
Systémová sběrnice
Jednotka správy
paměti (MMU)
Hlavní paměť
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
26
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ě
– mnohdy řá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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
27
Sběrnicový pohled na počítač
Tři sekce:
 datová
 adresní (fyzické adresy)
 služební
RAM
(OP)
Arbiter
sběrnice
Systémová sběrnice
FA
Řadič
1
MMU
LAP->FAP

Řadič
2
LA – logické adresy
Procesor
A3B33OSD (J. Lažanský)
verze: Jaro 2014
CPU
ZVV
Úvod, Technické vybavení
28
Centrální jednotka počítače (CPU)
Hlavní paměť
CPU
PC
MAR
IR
MBR
Systémová
sběrnice
.
.
.
I/O AR
ALU
Data
Data
Data
Data
I/O BR
I/O Řadič
DBR
DBR
CSR
A3B33OSD (J. Lažanský)
verze: Jaro 2014
.
.
.
Instrukce
Instrukce
Instrukce
.
.
.
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í
29
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 bit
System (kernel, supervisor)/User mode bit 
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
30
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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
31
Základní instrukční cyklus CPU
Přípravný cyklus
START
Výkonný cyklus
Nahrát
instrukci
• Přípravná fáze (fetch cycle)
Instrukce stop
Vykonat
instrukci
STOP
Animace
– 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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
32
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)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
33
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í
Přerušeni
zakázána
START
Nahrát
instrukci
Vykonat
instrukci
Vektor přerušení
Přerušovací cyklus
Výkonný cyklus
Přerušeni
povolena
Ne
Existuje
žádost o
přerušení?
Ano
Adresy obslužných
podprogramů.
Vektor indexován
zdrojem přerušení
Přípravný cyklus
STOP
Aktivity při
zpracování
přerušení
INTF: Boolean:=False; /* Při žádostí o přerušení → True */
loop: FETCH;
Increment(PC);
EXECUTE;
if INTF then
Ulož 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 vektoru
přerušení
end loop
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
34
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ě
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
35
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í
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
36
Uživat.
Synchronní a asynchronní I/O operace
Proces požadující I/O
Systém
.
čeká
Událost
ukončující
čekáni
Proces požadující I/O
pracuje
Ovladač periferie
Ovladač periferie
Obslužná rutina
přerušení
Obslužná rutina
přerušení
Hardware
Hardware
Datový přenos
Datový přenos
Čas
Synchronní operace
Oznámení o
ukončení I/O
operace
Čas
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“)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
37
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é
Zadej příkaz
"read"
I/O řadiči
CPU→I/O
Přečti stavový
registr řadiče
I/O→CPU
Nepřipraven
případy)
Analyzuj stav
řadiče
• Použitelné jen v primitivních
systémech bez multiprogramování
Chyba
Data platná
Přečti datové
slovo z datového
registru řadiče
I/O→CPU
Ulož údaj
do hlavní paměti
CPU→Paměť
Ne
Hotovo?
Ano
Další instrukce
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
38
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
CPU→I/O
Věnuj se
jiné činnosti
Přerušení
Přečti stavový
registr řadiče
Analyzuj stav
řadiče
I/O→CPU
Chyba
Data platná
Přečti datové
slovo z datového
registru řadiče
I/O→CPU
Ulož údaj
do hlavní paměti
CPU→Paměť
Ne
Hotovo?
Ano
Další instrukce
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
39
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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Paměť
Řadič
disků
Úvod, Technické vybavení
40
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 stav
DMA
CPU > DMA
Věnuj se
jiné činnosti
Přerušení
DMA > CPU
Chyba
Další instrukce
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
41
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
Speciální
instrukce 
S
U
Jakékoliv
přerušení
vč. synchronního
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
42
Vícenásobná přerušení
• Sekvenční zpracování
Aplikační
program
ISR 1
– 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í
A3B33OSD (J. Lažanský)
verze: Jaro 2014
ISR 2
Aplikační
program
ISR 1
ISR 2
Úvod, Technické vybavení
43
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í.
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
44
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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
45
Hierarchie pamětí (1)
Typická přístupová doba
1 ns
Energeticky
závislé
(volatile)
3
ns
50 ns
Energeticky 10 ms
nezávislé
(persistent) 100 s
Typická kapacita
< 1 KB
Registry
< 16 MB
Cache
Hlavní paměť
32 MB – 16 GB
Pevný magnetický disk
5 – 4000 GB
Magnetická páska
20 – 1000 GB
• 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
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
46
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
Uvnitř CPU
(CMOS)
CMOS
SRAM
CMOS
DRAM
magnetický
disk
~ 0,5 ns
1 – 25 ns
80 – 500 ns
~ 5 ms
Technologie
Přístupová doba
Spravováno
Obsah zálohován
A3B33OSD (J. Lažanský)
verze: Jaro 2014
„překladačem“ hardwarem
v cache
v hlavní
paměti
o 4 řády pomalejší
operačním
systémem
operačním
systémem
na disku
na DVD,
magnetické
pásce, apod.
Úvod, Technické vybavení
47
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
Cache
CPU
Jednoslovní přenosy
CPU
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Blokové přenosy
Hlavní paměť
Cache
Úvod, Technické vybavení
48
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ěť
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
49
Struktura diskové jednotky
• Třírozměrná adresa bloku: cylindr, povrch, sektor
• Moderní LBA (lineární adresování bloků)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
50
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 v PSW) nebo modifikovat vektor přerušení
• 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(ů)
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
51
Struktura standardního PC
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
52
Dotazy
A3B33OSD (J. Lažanský)
verze: Jaro 2014
Úvod, Technické vybavení
53