Přerušení, DMA, jeho činnost
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Přerušení
Schopnost procesoru přerušit právě vykonávaný program a začít
vykonávat jiný program
○
Typy přerušení
Vnější
Asynchronní přerušení – nečekané, neplánované
□
Přichází z I/O zařízení
□
Např. stisk klávesy, tlačítka na myši apod.
□
§
Vnitřní
Vyvolává ho sám procesor
□
Také asynchronní – nečekané, neplánované
□
Procesor tím dává najevo, že má nějaké problémy se
zpracováním strojových instrukcí (výpadek stránky, porucha
paměti, dělení nulou; jiná chyba, která by se neměla
vyskytnou)
□
§
Softwarové přerušení
Synchronní – očekávané, vyplývá z podstaty
zpracovávaného programu
□
Např. nějaké systémové volání
□
§
○
Typy přerušení dle maskovatelnosti
Maskovatelné
Přerušení pro potřeby ovladačů
□
Přenos po síti
□
§
Nemaskovatelné
Systémové
□
Fatální chyba – výpadek zdrojů apod.
□
Přerušení, které se musí provést a není možné jej
zamaskovat
□
§
○
Postup činnosti při přerušení PC
Přerušení přijímá speciální čip, který se nazývá řadič přerušení
(interrupt control er)
Řadič přerušení má požadavky na přerušení, vyhodnocuje
a rozhoduje, které přerušení nastane nebo nenastane,
případně kdy nastane, je-li rozhodnuto, že bude přerušení,
je vyrozuměn procesor, že je požadavek na přerušení a
procesor dokončí právě prováděnou instrukci, uloží operaci
do stacku (uloží instruction pointer - adresa následující
instrukce, která by se dále prováděla, kdyby nenastalo
přerušení; všechny registry - neví, který z registrů bude
potřeba)
□
§
Procesor si vezme z řadiče přerušení číslo přerušení, každé
přerušení je spojeno s určitým číslem přerušení, popisuje určitou
službu/hardwarovou funkci, která je požadována
§
Procesor hledá v tabulce vektorů přerušení (TVP je úsek operační
paměti)
Vektor přerušení = virtuální adresa první instrukce obsluhy
přerušení, ke každému přerušení náleží jeden vektor
přerušení (když procesor zjistí číslo přerušení, může zjistit
vektor přerušení a vypočte adresu (code segment + IP),
zapíše a pokračuje v přerušení)