Přerušení
Přerušení je situace, kdy mikroprocesor provede něco, co mu není přikázáno, protože se dějí věci mimo to, co má program dělat. K přerušení dochází nejčastěji proto, že procesor dostane signál z hardwaru, ale může k němu dojít i ze softwaru, který běží spolu s programem. Mezi mnoho věcí, které mohou způsobit přerušení, patří stisknutí kláves na klávesnici, spuštění vestavěného časovače, probíhající přenos dat nebo jakákoli jiná událost, která vyžaduje okamžitou akci ze strany procesoru. K přerušení může dojít kdykoli během běhu programu v procesoru, bez ohledu na to, kde ve zdrojovém kódu programu se nachází.
Tento graf ukazuje, co se stane, když je vyvoláno přerušení.
Jak fungují přerušení
O hardwarové nebo softwarové volání přerušení (tzv. požadavek na přerušení, IRQ) se stará "obsluha přerušení" nebo "rutina obsluhy přerušení" (ISR) v procesoru. Ta umístí to, co v danou chvíli dělá, na zásobník a pak následuje určité instrukce, které jménem systému provedou daný úkol, který nemusí být součástí programu, který provádí. Jakmile ISR dokončí sledování instrukcí, vezme si zpět to, co vložil na zásobník, a pokračuje v tom, co dělal předtím, než došlo k přerušení.
Mnoho řadičů přerušení dnešních procesorů používá vektor přerušení, který mimo jiné třídí přerušení podle toho, odkud přišlo. Vektor obvykle obsahuje kód, který se musí spustit, když dojde k přerušení. ISR jsou obvykle zodpovědné za vyřízení neboli "obsluhu" přerušení spolu s udržováním sebe sama v provozuschopném stavu.
Použití přerušení
- Spouštění úloh v pravidelných intervalech
- Servis externího zařízení, ke kterému může dojít kdykoli.
- Odstranění potřeby synchronního dotazování
- Spuštění akce operačního systému (OS)
Otázky a odpovědi
Otázka: Co je to přerušení?
Odpověď: Přerušení je činnost mikroprocesoru, která není součástí prováděného programu v důsledku vnějších událostí.
Otázka: Co způsobuje, že se přerušení v procesoru vyskytuje nejčastěji?
Odpověď: K přerušení dochází v procesoru nejčastěji v důsledku příjmu signálů z hardwaru.
Otázka: Mohou být přerušení způsobena softwarem?
Odpověď: Ano, přerušení mohou být způsobena také softwarem, který běží paralelně s prováděným programem.
Otázka: Uveďte několik příkladů událostí, které mohou způsobit přerušení.
Odpověď: Příklady událostí, které mohou způsobit přerušení, jsou stisknutí kláves na klávesnici, spuštění časovače a přenos dat.
Otázka: Závisí přerušení na tom, kde se program vykonává?
Odpověď: Ne, k přerušení může dojít kdykoli během provádění programu bez ohledu na to, kde se program nachází ve svém zdrojovém kódu.
Otázka: Je přerušení pro mikroprocesor žádoucí událostí?
Odpověď: Přerušení jsou pro mikroprocesor obvykle nežádoucí události, protože narušují provádění programu a vyžadují okamžitou pozornost.
Otázka: Jak mikroprocesor reaguje na přerušení?
Odpověď: Mikroprocesor dočasně pozastaví prováděný program a provede rutinu obsluhy přerušení (ISR), která přerušení zpracuje, a pak se vrátí k prováděnému programu.