Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Podobné dokumenty
Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Principy komunikace s adaptéry periferních zařízení (PZ)

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. 25

Řízení IO přenosů DMA řadičem

Profilová část maturitní zkoušky 2014/2015

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Periferní operace využívající přímý přístup do paměti

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Metody připojování periferií BI-MPP Přednáška 2

Principy operačních systémů. Lekce 8: Ovladače periferií

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

ZOS OPAKOVÁNÍ. L. Pešička

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

Metody připojování periferií

Přerušovací systém s prioritním řetězem

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Procesy a vlákna (Processes and Threads)

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Petr Holášek / 1 of 21

Vstupně - výstupní moduly

Registrový model HDD

09. Memory management. ZOS 2006, L.Pešička

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

I. Dalšívnitřní paměti

I/O systém Vnější paměti. PB 169 Počítačové sítě a operační systémy

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Operační systémy. Přednáška 1: Úvod

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

Profilová část maturitní zkoušky 2015/2016

Systém adresace paměti

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

Činnost počítače po zapnutí

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L336

Virtualizace. Lukáš Krahulec, KRA556

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Operační systémy. Přednáška 8: Správa paměti II

Témata profilové maturitní zkoušky

PB002 Základy informačních technologií

Osnova přednášky. Programové prostředky řízení Operační systémy II. Komunikace mezi řadičem a CPU. Vstupy a výstupy principy I/O zařízení

3. Principy komunikace s perifériemi: V/V brány, programové řízení, přerušení, řešení priorit. Řadiče, DMA kanály. Popis činnosti DMA kanálu.

2 Hardware a operační systémy

Zranitelnosti ovladačů jádra v praxi Martin Dráb martin.drab@ .cz

Základní typy struktur výpočetních systémů

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Metody připojování periferií

Vstupně výstupní moduly. 13.přednáška

Management procesu I Mgr. Josef Horálek

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička

Komunikace procesoru s okolím

Implementace systémů HIPS: historie a současnost. Martin Dráb

Architektury VLIW M. Skrbek a I. Šimeček

Systémová sběrnice, souvislost architektury počítače a systémové

Architektura počítače

OS řady Microsoft Windows

Disková pole (RAID) 1

Počítač jako elektronické, Číslicové zařízení

Operační systémy. Tomáš Hudec.

B4B35OSY: Operační systémy

Pokročilé architektury počítačů

Principy činnosti sběrnic

Struktura a architektura počítačů (BI-SAP) 9

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

PB153 Operační systémy a jejich rozhraní

Architektury počítačů a procesorů

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Struktura a architektura počítačů (BI-SAP) 7

Strojový kód. Instrukce počítače

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Principy počítačů a operačních systémů

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Metody připojování periferií

Principy operačních systémů. Lekce 1: Úvod

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Stavba operačního systému

Metody připojování periferií

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

Disková pole (RAID) 1

Principy operačních systémů. Lekce 2: Správa paměti

Paměťový podsystém počítače

MSP 430F1611. Jiří Kašpar. Charakteristika

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

frekvence 8 Mhz, přestože spolupracuje s procesori různe rychlými. 16 bitová ISA sběrnice je

Operační systémy. Tomáš Vojnar IOS 2010/2011. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Distribuované systémy a počítačové sítě

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Operační systémy. Přednáška 2: Procesy a vlákna

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Integrovaná střední škola, Sokolnice 496

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Metody připojování periferií BI-MPP Přednáška 1

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Mikrokontroléry. Doplňující text pro POS K. D. 2001

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Transkript:

Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti 1

Hlavní funkce V/V OS musí spravovat všechny V/V zařízení počítače. vyslat příkaz pro dané zařízení, reagovat na přerušení, reagovat na chyby. zakázat neautorizovaný přístup. OS musí poskytovat rozhraní mezi V/V zařízeními a zbytkem systému. jednotný přístup k zařízením (na úrovni API), přístup k zařízením na vyšší úrovni abstrakce, virtualizace zařízení (spooling), jednotné pojmenování, jednotné reakce na chyby. 2

Periferní zařízení V/V zařízení se obecně skládají z dvou částí: řadič zařízení, samotné V/V zařízení. Komunikace se samotným V/V zařízením probíhá na nízké úrovni. Úkolem řadičem je poskytnout jednoduchého rozhraní pro OS. 3

Periferní zařízení Každý řadič má: řídící registry Pomocí zápisu do registrů, CPU může udílet příkazy V/V zařízení Pomocí čtení těchto registrů, CPU může získat informaci o stavu V/V zařízení vyrovnávací paměti (ne vždy) CPU může číst/zapisovat do těchto pamětí. Jak CPU komunikuje s řídícími registry a vyrovnávacími paměťmi? Oddělený V/V prostor a paměť. V/V prostor mapovaný do paměti. 4

Oddělěný V/V prostor a paměť Adresový prostor paměti je jiný než V/V prostor. Každý řídící registr má přiřazeno číslo V/V portu. CPU používá speciální V/V instrukce: IN REG, PORT pro zkopírování hodnoty řídícího registru PORT do registru REG v CPU OUT PORT,REG pro zápis hodnotu z REG do řídícího registru PORT. Následující instrukce jsou rozdílné!!! IN R0, 4 x MOV R0,4 5

V/V prostor mapovaný do paměti Ve V/V prostoru mapovaném do paměti, každý řídící registr má přiřazenu jedinečnou paměťovou adresu. V hybridním modelu, jsou vyrovnávací paměti mapovány do paměti, ale řídící registry jsou odděleny pomocí čísel portů. 6

Programovatelný V/V CPU se stará o celou V/V operaci. CPU zahájí V/V operaci. Potom CPU čeká na její dokončení pomocí aktivního čekání. 7

Programovatelný V/V Příklad: Uživatelský proces chce vytisknout osmi znakový řetězec ABCDEFGH na tiskárnu. Předpokládáme V/V prostor mapovaný do paměti a tiskárnu bez vyrovnávací paměti. Uživatelský proces použije systémové volání. OS provádí následující kód: c o p y _ f r o m _ u s e r ( b u f f e r, p, c o u n t ) ; / * p i s t h e k e r n e l b u f f e r * / f o r ( i = 0 ; i < c o u n t ; i + + ) { / * l o o p o n e v e r y c h a r a c t e r * / w h i l e ( * p r i n t e r _ s t a t u s _ r e g! = R E A D Y ) ; / * l o o p u n t i l r e a d y * / * p r i n t e r _ d a t a _ r e g i s t e r = p [ i ] ; / * o u t p u t o n e c h a r a c t e r * / } r e t u r n _ t o _ u s e r ( ) ; 8

Přerušení V/V operace pomocí přerušení 1. CPU řekne řadiči co má dělat tím, že zapíše příkaz do řídícího registru. 2. Když řadič V/V zařízení dokončí operaci, pošle signál do řadiče přerušení. 3. Pokud je řadič přerušení připraven přijmout přerušení, informuje o tom CPU. 4. Řadič přerušení pošle přes sběrnici číslo V/V zařízení do CPU. 9

V/V používající přerušení CPU je zahájí V/V operaci a pak pokračuje v jiné práci. Není zde aktivní čekání. Když jsou data připravena je vyvoláno přerušení a CPU zkopíruje data do paměti. 10

V/V používající přerušení Příklad: Uživatelský proces chce vytisknout osmi znakový řetězec ABCDEFGH na tiskárnu. Předpokládáme V/V prostor mapovaný do paměti a tiskárnu bez vyrovnávací paměti. Uživatelský proces použije systémové volání. OS provádí následující kód: / * C o d e e x e c u t e d w h e n * / / * t h e p r i n t s y s t e m c a l l i s m a d e * / c o p y _ f r o m _ u s e r ( b u f f e r, p, c o u n t ) ; e n a b l e _ i n t e r r u p t s ( ) ; w h i l e ( * p r i n t e r _ s t a t u s _ r e g! = R E A D Y ) ; * p r i n t e r _ d a t a _ r e g i s t e r = p [ 0 ] ; s c h e d u l e r ( ) ; / * I n t e r r u p t s e r v i c e * / / * p r o c e d u r e * / i = 1 ; i f ( c o u n t = = 0 ) { u n b l o c k _ u s e r ( ) ; } e l s e { * p r i n t e r _ d a t a _ r e g i s t e r = p [ i ] ; c o u n t = c o u n t 1 ; i = i + 1 ; } a c k n o w l e d g e _ i n t e r r u p t ( ) ; r e t u r n _ f r o m _ i n t e r r u p t ( ) ; 11

Direct Memory Access (DMA) Speciální DMA chip může řídit tok dat mezi pamětí a V/V zařízením bez asistence CPU. 12

DMA V/V operace pomocí DMA 1. CPU naprogramuje DMA řadič nastavením jeho registrů. 2. DMA pošle příkaz do řadiče V/V zařízení. 3. Přenos dat do paměti. 4. Když je přenos dat dokončen, řadič disku pošle potvrzení do řadiče DMA. DMA inkrementuje adresu paměti a dekrementuje čítač dat. Pokud je čítač větší než 0, opakují se kroky 2-4. 9. Pokud je čítač roven 0, potom řadič DMA přeruší CPU. 13

V/V využívající DMA Přesouvá data přímo do/z paměti. K přerušení dojde až když je V/V operace dokončena. CPU pouze zahájí a dokončí V/V operaci. 14

V/V využívající DMA Příklad: Uživatelský proces chce vytisknout osmi znakový řetězec ABCDEFGH na tiskárnu. Předpokládáme V/V prostor mapovaný do paměti a tiskárnu bez vyrovnávací paměti. Uživatelský proces použije systémové volání. OS provádí následující kód: / * C o d e e x e c u t e d w h e n * / / * t h e p r i n t s y s t e m c a l l i s m a d e * / c o p y _ f r o m _ u s e r ( b u f f e r, p, c o u n t ) ; s e t _ u p _ D M A _ c o n t r o l l e r ( ) ; s c h e d u l e r ( ) ; / * I n t e r r u p t s e r v i c e * / / * p r o c e d u r e * / a c k n o w l e d g e _ i n t e r r u p t ( ) ; u n b l o c k _ u s e r ( ) ; r e t u r n _ f r o m _ i n t e r r u p t ( ) ; 15

Typicky organizován do čtyř vrstev. Struktura V/V softwaru Každá vrstva má přesně definovanou funkci, kterou plní, a přesně definované rozhraní k sousedním vrstvám. Funkce a rozhraní je závislé na systému. 16

User-Space I/O Software Většina V/V software je součástí OS. Malá část je v knihovnách, které jsou spojené s uživatelským programem a běží mimo jádro. knihovní funkce printf( The square of %3d is %6d\n, i, i*i); systémová volání count=write(fd, &buffer, nbytes); Spooling system = cesta umožnit přístup k jednotlivým V/V zařízením ve více úlohovém systému (e.g. printer, file transfer over a network, ). 17

Volání služeb jádra Nástroj rozhraní mezi aplikacemi a jádrem OS. Volání jsou přímo dostupná na úrovni symbolického strojového jazyka (assembleru), vyššího programovacího jazyka (C/C++). Metody předávání parametrů mezi aplikací a jádrem v registrech (jsou dostupné aplikaci i jádru), v tabulce uložené v hlavní paměti a adresa tabulky se umístí do Registru, na zásobník (je dostupný aplikaci i jádru). 18

Příklad: count=read(fd,&buff, nbytes) 19

Kroky systémového volání: 1.-3. aplikace umístí parametry na zásobník, 4. aplikace zavolá knihovní funkci, Příklad: count=read(fd,&buff, nbytes) 5. každé systémové volání má přiřazeno unikátní číslo, knih. funkce vloží toto číslo do příslušného registru, 6. knih. funkce provede instrukci TRAP, CPU se přepne do kernel módu 7. jádro zkontroluje číslo systémového volání a pak zavolá odpovídající system call handler, 8. běží system call handler, 9. CPU se přepne do uživatelského režimu a řízení se vrací knih. Funkci, 10. knih. funkce vrací řízení aplikaci, 11. aplikace vyčistí zásobník a pokračuje. 20

Device-Independent I/O Software Hlavní funkce Jednotné rozhraní pro ovladače Jednoduché přidávání nových ovladačů. Mapování symbolických jmen zařízení na konkrétní ovladače (např. major a minor čísla v UNIXu). Buffering Vyrovnávací paměti v uživatelském prostoru, v prostoru jádra. Error reporting Alokace a uvolňování jednotlivých V/V zařízení Velikost datových bloků nezávislých na jednotlivých zařízení 21

Device Drivers Každé V/V zařízení připojené k počítači potřebuje nějaký devicespecific kód (device driver), který ho umí řídít. Hlavní funkce Překlad device independent požadavků pro konkrétní zařízení (čtení datového bloku -> určení cylindru, hlavičky, sektoru). Komunikace s řadičem V/V zařízení (zapsání příkazu do řídícího registru). Řazení více požadavků do fronty. Zablokování a čekání na dokončení V/V operace. Error handling. 22

Po HW přerušení, SW musí provést: Interrupt Handlers 1. Uložení některých registrů, které nebyly uloženy HW. 2. Nastavení kontextu přerušovací rutiny (ISP), např. nastavení TLB, MMU, tabulky stránek, 3. Nastavení zásobníku pro ISP. 4. Potvrdit přerušení řadiči přerušení. 5. Kopírovat registry přerušeného procesu z dočasného umístění do prostoru procesu. 6. Spustit ISP. 7. Vybrat další proces, který poběží jako další. 8. Nastavit kontext pro další proces. 9. Nahrát registry nového procesu. 10. Spustit další proces. 23