Her er en oversikt over hva som skjer når en CPU blir avbrutt:
Avbruddsmekanismen
1. avbruddssignal: En ekstern hendelse (som en nettverkspakke som ankommer, en tidtaker som utløper eller en maskinvarefeil) utløser et avbruddssignal. Dette signalet sendes til CPU.
2. Avbruddsbehandler: CPU tar en pause sin nåværende instruksjonsutførelse og hopper umiddelbart til et forhåndsdefinert minneplassering kalt "Interrupt Handler." Denne behandleren er et stykke kode som er spesielt designet for å håndtere den type avbrudd som skjedde.
3. Kontekstsparing: CPU lagrer tilstanden til sin nåværende utførelse, inkludert:
- Program counter (PC): Adressen til neste instruksjon CPU skulle utføre.
- Registre: Verdiene som er lagret i CPUs registre (som har midlertidige data).
- flagg: Statusinformasjon om CPU (f.eks. Bær flagg, null flagg).
4. Avbruddservice: Interrupt Handler tar kontroll og utfører de nødvendige handlingene for å svare på den avbrytende hendelsen. Dette kan innebære:
- Lesedata: For eksempel å lese data fra et nettverkskort når en pakke kommer.
- Sendingsdata: Sende data til en enhet som svar på et avbrudd.
- Oppdateringssystemtilstand: Oppdatering av tellere, tidtakere eller andre systemvariabler.
- Feilhåndtering: Å ta korrigerende tiltak i tilfelle en maskinvarefeil.
5. Kontekstgjenoppretting: Når avbruddsbehandleren er ferdig, gjenoppretter den den lagrede konteksten (PC, registre, flagg) tilbake til CPU.
6. Gå tilbake til utførelse: CPU gjenopptar det originale programmet, med utgangspunkt i instruksjonen som ble avbrutt.
hvorfor avbrytelser er viktige
* Real-time Response: Avbrudd gjør det mulig for CPU å håndtere hendelser i sanntid, og sikre at kritiske oppgaver (som nettverkskommunikasjon eller svarer på brukerinngangen) blir adressert omgående.
* multitasking: Avbrudd danner grunnlaget for multitasking -operativsystemer, slik at flere programmer kan dele CPUs tid. CPU kan veksle mellom oppgavene raskt ved å svare på timeravbrudd.
* Effektivitet: Avbrudd lar CPU fokusere på sin primære oppgave mens de delegerer håndteringen av perifere enheter og andre hendelser til dedikerte avbruddshåndterere.
typer avbrudd
* Maskinvare avbryter: Utløst av eksterne maskinvareenheter (som tastatur, diskstasjoner, nettverkskort).
* programvare avbryter: Generert av instruksjoner i selve programmet (f.eks. Systemanrop, unntak).
* Timer avbryter: Generert av en tidtaker i CPU, brukt til planlegging og multitasking.
Eksempel:
Se for deg at du skriver på tastaturet. Hver tastetrykk genererer et maskinvareavbrudd. CPU hopper til tastaturavbruddshåndterer, leser nøkkelkoden og oppdaterer bufferen der teksten er lagret. Den vender deretter tilbake til tekstbehandleren din, som nå har tilgang til den nylig skrevne karakteren.