BPC-MIC05 - Principy obsluhy V-V periferií
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.
1. Programově (instrukce INT, TRAP, SWI).
• Pro přístup ke službám jádra OS.
• Součástí instrukce může být i číslo přerušení (INT n).
2. Kontrolními obvody počítače
• 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).
Obsluha asynchronního přerušení
• Dokončí se právě prováděná instrukce.
– Výjimkou jsou např. instrukce cyklů.
• Přerušení se rozpozná až na začátku
následující instrukce.
• Do zásobníku se uloží adresa instrukce, která
přerušení rozpoznala.
Obsluha synchronního přerušení
• Instrukce se nedokončí (ani nemůže, např.
dělení 0).
• Do zásobníku se uloží adresa instrukce, která
přerušení způsobila.
• Po dokončení obsluhy přerušení se instrukce
„restartuje“.
Maskovatelné a nemaskovatelné
přerušení
• Maskovatelné přerušení
– Lze je v procesoru programově povolovat nebo
zakazovat.
– Obvykle bit I ve stavovém registru (instrukce CLI, SEI).
– Privilegované instrukce.
• Nemaskovatelné přerušení
– Nelze je uvnitř procesoru zakázat.
– Kritické události jako výpadek napájení nebo
chyba paměti.
Pseudomaskovatelné přerušení
– Problém, když systém ještě není zinicializován
(např. není nastaven SP) a přijde přerušení =>
hrozí zhroucení systému.
– Po resetu zakázáno => přerušení nemůže
nastat při inicializaci systému.
– Jakmile se jednou povolí, nelze jej již zakázat a
chová se jako nemaskovatelné přerušení.
Vnořené přerušení
• Přerušení uvnitř jiného přerušení
(Nested Interrupt).
• Během obsluhy přerušení s nižší prioritou
přijde požadavek na přerušení s vyšší
prioritou.
Problém vnořených přerušení
• Přerušovací rutiny by neměly používat
společné datové struktury, ale pouze své
lokální proměnné.
• Podprogramy volané z přerušovacích rutin
musí být reentrantní.
Reentrantní funkce
• Její provádění může být kdykoli přerušeno a
může být zavolána z obslužné rutiny jiného
přerušení.