GeeksforGeeks

, Author

Přerušení je signál vysílaný hardwarem nebo softwarem, když proces nebo událost vyžaduje okamžitou pozornost. Upozorňuje procesor na proces s vysokou prioritou, který vyžaduje přerušení aktuálního pracovního procesu. V I/O zařízeních je pro tento účel vyhrazena jedna z řídicích linek sběrnice, která se nazývá Interrupt Service Routine (ISR).

Když zařízení vyvolá přerušení u řekněme procesu i, procesor nejprve dokončí provádění instrukce i. Pak načte programový čítač (PC) s adresou první instrukce ISR. Před načtením adresy programového čítače se adresa přerušené instrukce přesune do dočasného umístění. Proto může procesor po zpracování přerušení pokračovat v procesu i+1.

Při zpracování přerušení musí procesor informovat zařízení, že jeho požadavek byl rozpoznán, aby přestalo vysílat signál žádosti o přerušení. Také ukládání registrů, aby mohl být přerušený proces v budoucnu obnoven, prodlužuje prodlevu mezi okamžikem přijetí přerušení a začátkem provádění ISR. Tomu se říká latence přerušení.

Hardwarová přerušení:
Při hardwarovém přerušení jsou všechna zařízení připojena k lince žádosti o přerušení. Pro všech n zařízení se používá jediná linka požadavku. Pro vyžádání přerušení zařízení sepne svůj přidružený přepínač. Když zařízení požádá o přerušení, hodnota INTR je logickou OR žádostí jednotlivých zařízení.

Posloupnost událostí spojených s obsluhou IRQ:

  1. Zařízení vyvolá IRQ.
  2. Procesor přeruší právě prováděný program.
  3. Zařízení je informováno, že jeho žádost byla rozpoznána, a zařízení deaktivuje signál žádosti.
  4. Je provedena požadovaná akce.
  5. Přerušení je povoleno a přerušený program pokračuje.

Obsluha více zařízení:
Pokud více než jedno zařízení vyvolá signál požadavku na přerušení, pak je zapotřebí dalších informací, aby bylo možné rozhodnout, které zařízení má být bráno v úvahu jako první. K rozhodnutí, které zařízení má být vybráno, se používají následující metody: Polling, Vectored Interrupts a Interrupt Nesting. Ty jsou vysvětleny následovně:

  1. Polling:
    Při pollingu je první zařízení, na které narazíte s nastaveným bitem IRQ, zařízením, které má být obslouženo jako první. Pro jeho obsluhu je volán příslušný ISR. Implementace je snadná, ale dotazováním na bit IRQ všech zařízení se ztrácí spousta času.
  2. Vektorovaná přerušení:
    Při vektorovaných přerušeních se zařízení žádající o přerušení identifikuje přímo tím, že procesoru po sběrnici pošle speciální kód. To umožňuje procesoru identifikovat zařízení, které přerušení vyvolalo. Speciální kód může být počáteční adresa ISR nebo místo, kde se ISR nachází v paměti, a nazývá se vektor přerušení.
  3. Vnoření přerušení:
    Při této metodě je vstupně-výstupní zařízení uspořádáno do struktury priorit. Proto je požadavek na přerušení ze zařízení s vyšší prioritou rozpoznán tam, kde požadavek ze zařízení s nižší prioritou rozpoznán není. K realizaci tohoto postupu slouží každý proces/zařízení (i procesor). Procesor přijímá přerušení pouze od zařízení/procesů, které mají vyšší prioritu než on.

Priorita procesoru je zakódována v několika bitech registru PS (Process Status Register). Lze ji měnit programovými instrukcemi, které zapisují do PS. Procesor je v režimu dohledu pouze při provádění rutin operačního systému. Před spuštěním aplikačních programů se přepne do uživatelského režimu.

Pozor čtenář! Nepřestávejte se nyní učit. Osvojte si všechny důležité koncepty teorie CS pro pohovory SDE s kurzem teorie CS za studentsky příznivou cenu a staňte se připravenými v oboru.

Article Tags :

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.