Katkestused

Allikas: Kuutõrvaja

Interrupt ehk katkestus on signaal sündmuste kohta. Tavaliselt genereeritud mingi riistavaralise seadme poolt. Tüüpilisent tähendab interrupt seda, et mingi seade vajab tähelepanu.

Tänapäeva arvuti külge on ühendatud väga palju seadmeid (klaviatuur, hiir, ekraan, kettaseadmed, printerid, helikaardid, kaamerad, võrgukaardid jne). Need seadmed nõuavad cpu poolset teenindamist. Kuid raske on ennustada seda, et kuna.

Interrt.gif

Lahenduseks on katkestused. Mis äraseletatult tähendab seda, et igale seadmele antakse oma liin (interrupt line) mida see saab kasutada protsessorile signaliseerimiseks.

 _____           ___________           ________
|     |--INT----| interrupt |---INT---|        |
| CPU |         | controller|         | Adapter|
|_____|--INTA---|___________|---INTA--|________|
                     PIC

Interrupt tähendab põhimõtteliselt ootamist kuni telefon heliseb ja siis selle toru tõstmist ja kõne alustamist.

Kui katkestus on edastatud protsessorile käivitab see katkestusetöötleja (interrupt handler või interrupt service routine (ISR)) mis programmkood, mille poole pöördutakse katkestuse tekkimisel. Tema ülesandeks on katkestuse töötlemine ja seejärel katkestatud protsessi jätkamise tagamine.

Understandlk 0404.jpg

Alternatiivne lahendus: Polling. Mis äraseletatult tähendab, et CPU kontrollib perioodiliselt igat seadet vaadates kas see nõuab tähelepanu. Miinuseks on sellel, et kulutab palju CPU aega ja overhead saab vähendatud vastamise aja arvelt. Positiivseks küljeks on juhul kui sündmusi sajab peale vihmana.

Polling on põhimõtteliselt iga paari sekundi tagant telefonitoru tõstmine, et näha kas sulle on kõne.

Positiivne külg on, et overheadi ei ole kui ka evente pole.