När en processor har ett avbrott i väntan betyder det att en avbrottsförfrågningssignal har mottagits men har ännu inte varit service. Här är vad processorn vanligtvis gör:
1. Avbrottsbekräftelse (om tillämpligt): Processorn kan skicka en bekräftelsesignal tillbaka till den avbrutna enheten och erkänna att den har fått begäran. Detta beror på den specifika avbrottsarkitekturen (t.ex. vektorerade avbrott kontra omröstning).
2. Avbrottshanteringsförfarande: Processorn utför en specifik procedur för att hantera avbrottet. Detta involverar vanligtvis följande steg:
* spara sammanhang: Processorn sparar det aktuella tillståndet för det löpande programmet. Detta inkluderar saker som värden på register, programräknare (som indikerar nästa instruktion att utföra) och potentiellt andra statusflaggor. Detta säkerställer att när avbrottshanteringen är klar kan det ursprungliga programmet återuppta utförande sömlöst från var det slutade.
* Interrupt Vectoring (ofta): Processorn bestämmer vilken avbrottshanterare som ska köras. Detta görs ofta med ett avbrottsvektortabell. Varje post i denna tabell pekar på minnesadressen för koden som hanterar en viss typ av avbrott. Avbrottsvektorn bestäms baserat på avbrottets källa eller typ.
* Execute Interrupt Handler: Processorn hoppar till den adress som anges av avbrottsvektorn och kör lämplig avbrottstjänstrutin (ISR) eller avbrottshanterare. Den här koden utför den nödvändiga åtgärden för att svara på avbrottet (t.ex. läs data från en enhet, uppdatera en timer, hantera en tangentbordspress).
* Återställ sammanhang: Efter att ISR har slutförts återställer processorn det sparade sammanhanget från steg 2. Detta inkluderar omlastning av register, programräknare och statusflaggor.
* Return från avbrott: En speciell instruktion (t.ex. `IRET 'i x86) körs för att returnera kontrollen till det avbrutna programmet. Processorn återupptar exekveringen från instruktionen omedelbart efter den punkt där avbrottet inträffade.
3. Interrupt prioritet (om tillämpligt): Om flera avbrott väntar, kan processorn prioritera dem baserat på deras tilldelade prioriterade nivåer. Avbrott med högre prioritet kan föregripa lägre prioritering. Den exakta mekanismen för hantering av flera avbrott varierar beroende på processorarkitekturen.
4. Avbrottsmaskering (valfritt): Processorn kanske kan maskera (inaktivera) specifika avbrott. Detta förhindrar att vissa avbrott avbryter genomförandet av det nuvarande programmet eller en annan avbrottshanterare. Detta är ofta användbart för att förhindra konflikter eller se till att kritiska uppgifter inte avbryts.
I huvudsak får ett pågående avbrott processorn tillfälligt att avbryta sin nuvarande uppgift, hantera avbrottet och sedan återuppta den ursprungliga uppgiften. Detta gör att systemet kan svara på externa händelser på ett snabbt och effektivt sätt.