Interrupt

En afbrydelse er, når en mikroprocessor gør noget, som den ikke er blevet bedt om at gøre, fordi der sker ting, der ligger uden for det, som programmet skal gøre. Afbrydelser sker oftest, fordi processoren får et signal fra hardware, men de kan også komme fra software, der kører sammen med programmet. Blandt de mange ting, der kan forårsage afbrydelser, er at trykke på tasterne på et tastatur, at den indbyggede timer går i gang, at der finder en dataoverførsel sted eller enhver anden begivenhed, der kræver en handling fra processoren med det samme. Afbrydelser kan ske når som helst, mens processoren kører et program, uanset hvor i programmets kildekode den befinder sig.

Dette diagram viser, hvad der sker, når en afbrydelse kaldesZoom
Dette diagram viser, hvad der sker, når en afbrydelse kaldes

Sådan fungerer afbrydelser

Et hardware- eller softwarekald til en afbrydelse (kendt som en afbrydelsesanmodning eller IRQ) håndteres af en "afbrydelseshåndtering" eller "afbrydelsesservicerutine" (ISR) i processoren. Den lægger det, den laver på det pågældende tidspunkt, på en stak og følger derefter bestemte instruktioner, der udfører en given opgave på systemets vegne, som ikke behøver at være en del af det program, den udfører. Når den er færdig med at følge instruktionerne, tager ISR'en det, den har lagt på stakken, tilbage og fortsætter med det, den var i gang med, før afbrydelsen fandt sted.

Mange afbrydelsescontrollere fra nutidens processorer bruger en afbrydelsesvektor til at sortere afbrydelser på baggrund af bl.a. hvorfra den kom. Vektoren indeholder typisk den kode, der skal køres, når interrupterne opstår. ISR'er er generelt ansvarlige for at håndtere, eller "servicere", afbrydelsen, sammen med at holde sig selv i orden.

Anvendelse af afbrydelser

  • Udløsning af opgaver med jævne mellemrum
  • Service af en ekstern enhed, der kan ske når som helst
  • Fjern behovet for synkron afstemning
  • Udløsning af et operativsystem (OS) til at foretage en handling

Spørgsmål og svar

Q: Hvad er et interrupt?


A: Et interrupt er en handling, der udføres af en mikroprocessor, som ikke er en del af det program, der udføres, på grund af eksterne begivenheder.

Q: Hvad får oftest afbrydelser til at forekomme på en processor?


A: Interrupts opstår oftest på en processor på grund af modtagelse af signaler fra hardware.

Q: Kan afbrydelser forårsages af software?


A: Ja, afbrydelser kan også forårsages af software, der kører parallelt med det program, der udføres.

Q: Nævn et par eksempler på hændelser, der kan forårsage et interrupt.
A: Eksempler på hændelser, der kan forårsage et interrupt, er tryk på taster på et tastatur, en timer, der går i gang, og dataoverførsler, der finder sted.

Q: Er et interrupt afhængigt af, hvor programmet kører?


A: Nej, afbrydelser kan forekomme når som helst under programudførelsen, uanset hvor programmet er i kildekoden.

Q: Er et interrupt en ønskværdig begivenhed for en mikroprocessor?


A: Interrupts er normalt uønskede hændelser for en mikroprocessor, da de forstyrrer programmets afvikling og kræver øjeblikkelig opmærksomhed.

Q: Hvordan reagerer en mikroprocessor på et interrupt?


A: En mikroprocessor afbryder midlertidigt det program, der er ved at blive udført, og udfører en interrupt service routine (ISR) for at håndtere interruptet, før den vender tilbage til det program, der er ved at blive udført.

AlegsaOnline.com - 2020 / 2023 - License CC3