Katkestus
Katkestus on see, kui mikroprotsessor teeb midagi, mida ta ei tohi teha, sest juhtub asju, mis on väljaspool seda, mida programm peaks tegema. Katkestused toimuvad kõige sagedamini seetõttu, et protsessor saab signaali riistvaralt, kuid need võivad tulla ka koos programmiga töötavast tarkvarast. Paljud asjad, mis võivad katkestusi põhjustada, on näiteks klaviatuuril klahvide vajutamine, sisseehitatud taimer, andmeedastuse toimumine või mõni muu sündmus, mis vajab protsessorilt kohe tegevust. Katkestused võivad toimuda igal ajal, kui protsessor töötab programmi, olenemata sellest, kus programmi lähtekoodis see asub.
See diagramm näitab, mis juhtub, kui katkestust kutsutakse
Kuidas katkestused töötavad
Riistvara- või tarkvarakutsega katkestuse (tuntud kui katkestusnõue ehk IRQ) tegeleb protsessori "katkestuse käitleja" või "katkestuse teenindusrutiin" (ISR). See paneb selle, mida ta parajasti teeb, korstnasse ja seejärel järgib teatavaid käske, mis teevad süsteemi nimel teatud ülesannet, mis ei pea olema osa programmist, mida ta teeb. Kui ISR on juhiste järgimise lõpetanud, võtab ta selle, mis ta virna pani, tagasi ja jätkab seda, mida ta tegi enne katkestuse toimumist.
Paljud tänapäeva protsessorite katkestusjuhtimisseadmed kasutavad katkestusvektorit, et sorteerida katkestusi muu hulgas selle järgi, kust see tuli. Vektor sisaldab tavaliselt koodi, mis tuleb käivitada, kui katkestus toimub. ISR-id vastutavad tavaliselt katkestuse käsitlemise ehk "teenindamise" eest koos enda töökorras hoidmisega.
Katkestuste kasutamine
- Ülesannete käivitamine korrapäraste ajavahemike järel
- Välise seadme hooldamine, mis võib toimuda igal ajal
- Kaotada vajadus sünkroonse küsitluse järele
- Operatsioonisüsteemi (OS) käivitamine meetmete võtmiseks
Küsimused ja vastused
K: Mis on katkestus?
V: Katkestus on mikroprotsessori tegevus, mis ei ole osa täidetavast programmist, mis on tingitud välistest sündmustest.
K: Mille tõttu tekivad protsessoris kõige sagedamini katkestused?
V: Kõige sagedamini tekivad katkestused protsessoril riistvaralt saadavate signaalide tõttu.
K: Kas katkestusi võib põhjustada tarkvara?
V: Jah, katkestusi võib põhjustada ka tarkvara, mis töötab paralleelselt täidetava programmiga.
K: Loetlege mõned näited sündmustest, mis võivad katkestust põhjustada.
V: Näited sündmustest, mis võivad katkestust põhjustada, on klaviatuuri klahvide vajutamine, taimerite käivitumine ja andmeedastuse toimumine.
K: Kas katkestus sõltub sellest, kus programmi täidetakse?
V: Ei, katkestused võivad tekkida igal ajal programmi täitmise ajal, sõltumata sellest, kus programm on oma lähtekoodis.
K: Kas katkestus on mikroprotsessori jaoks soovitav sündmus?
V: Katkestused on tavaliselt mikroprotsessori jaoks ebasoovitavad sündmused, kuna need häirivad programmi täitmist ja nõuavad kohest tähelepanu.
K: Kuidas mikroprotsessor reageerib katkestusele?
V: Mikroprotsessor peatab ajutiselt käimasoleva programmi täitmise ja täidab katkestuse teenindusrutiini (ISR) katkestuse käsitlemiseks enne tagasipöördumist käimasoleva programmi juurde.