Smazaný obsah Přidaný obsah
m Odstranění linku na rozcestník Procesor s použitím robota - Změněn(y) odkaz(y) na Mikroprocesor
Řádek 1:
'''Přerušení''' ({{Vjazyce|en}} {{Cizojazyčně|en|'''interrupt'''}}) je v [[Informatika|informatice]] metoda pro [[asynchronní]] obsluhu událostí, kdy [[Mikroprocesor|procesor]] přeruší vykonávání sledu instrukcí, vykoná [[Obsluha přerušení|obsluhu přerušení]], a pak pokračuje v předchozí činnosti. Původně přerušení sloužilo k obsluze [[hardware|hardwarových]] zařízení, které tak signalizovaly potřebu obsloužit (tj. odebrat z [[Vyrovnávací paměť|vyrovnávací paměti]] vstupně-výstupního zařízení [[data]] nebo do ní další data nakopírovat, odtud označení ''vnější přerušení''). Později byla přidána ''vnitřní přerušení'', která vyvolává sám procesor, který tak oznamuje chyby vzniklé při provádění [[Strojová instrukce|strojových instrukcí]] a synchronní ''softwarová přerušení'' vyvolávaná speciální strojovou instrukcí, která se obvykle používají pro vyvolání služeb [[Operační systém|operačního systému]].
 
== Obsluha přerušení ==
Přijde-li do [[procesorMikroprocesor|procesoru]]u signalizace přerušení, je v případě, že obsluha přerušení je povolena, nejprve dokončena právě rozpracovaná [[strojová instrukce]]. Pak je na [[Zásobník (datová struktura)|zásobník]] uložena adresa následující strojové instrukce, která by měla být zpracována, kdyby k přerušení nedošlo. Pak je podle tabulky přerušení vyvolána [[obsluha přerušení]], která obslouží událost, kterou přerušení vyvolalo. Obsluha přerušení je zodpovědná za to, aby na jeho konci byl uveden stav procesoru do stavu jako na jejím začátku, aby výpočet přerušené úlohy nebyl ovlivněn, což se z důvodu vyšší rychlosti obvykle dělá softwarově (některé procesory umožňují uložit svůj stav pomocí speciální strojové instrukce). Na konci obsluhy přerušení je umístěna instrukce návratu (RET, někdy speciální IRET), která vyzvedne ze zásobníku návratovou adresu a tak způsobí, že z této adresy bude vyzvednuta následující strojová instrukce. Přerušená úloha tak až na zpoždění nepozná, že proběhla obsluha přerušení.
 
Tabulka přerušení umožňuje, aby procesor mohl rozlišit více různých přerušení (rozlišených čísly), ke každému vyvolat odpovídající obsluhu přerušení (podprogram) a aby šlo jednotlivé obsluhy umístit na libovolná místa v paměti. Obsluha přerušení je obvykle uložena v [[Ovladač zařízení|ovladači]], který spolu s novým hardwarovým zařízením do operačního systému instalujeme.
Řádek 11:
 
=== Vnější přerušení ===
Vnější přerušení (též hardwarové přerušení) je označováno podle toho, že přichází ze [[Vstup/výstup|vstupně-výstupních]] zařízení (tj. z pohledu procesoru přicházejí z ''vnějšku''). Vstupně-výstupní zařízení tak má možnost si [[Asynchronní|asynchronně]] vyžádat pozornost [[procesorMikroprocesor|procesoru]]u a zajistit tak svoji obsluhu ve chvíli, kdy to právě potřebuje bez ohledu na právě zpracovávanou úlohu.
 
Vnější přerušení jsou do procesoru doručována prostřednictvím [[Řadič přerušení|řadiče přerušení]], což je specializovaný obvod, který umožňuje stanovit prioritu jednotlivým přerušením, rozdělovat je mezi různé procesory a další související akce.
Řádek 29:
# Řadič přerušení vygeneruje signál INTR – „někdo“ žádá o přerušení a vyšle ho k procesoru.
# Procesor se na základě maskování rozhodne obsloužit přerušení a signálem INTA se zeptá, jaké zařízení žádá o přerušení.
# Řadič přerušení identifikuje zařízení, které žádá o přerušení a odešle číslo typu přerušení k [[procesorMikroprocesor|procesoru]]u.
# Procesor uloží stavové informace o právě zpracovávaném programu do [[Zásobník (datová struktura)|zásobníku]].
# Podle čísla typu příchozího přerušení nalezne ve [[vektor přerušení|vektoru přerušení]] adresu příslušného obslužného [[podprogram]]u.