Her er en sammenbrud af, hvad der sker, når en CPU afbrydes:
Interrupt -mekanismen
1. Interrupt Signal: En ekstern begivenhed (som en netværkspakke, der ankommer, en timer, der udløber eller en hardwarefejl) udløser et afbrydelsessignal. Dette signal sendes til CPU'en.
2. Interrupt Handler: CPU'en pauser sin nuværende instruktionsudførelse og springer straks til en foruddefineret hukommelsesplacering kaldet "Interrupt Handler." Denne handler er et stykke kode, der er specifikt designet til at håndtere den type afbrydelse, der opstod.
3. Kontekstbesparelse: CPU'en redder tilstanden for sin nuværende udførelse, herunder:
- programtæller (PC): Adressen til den næste instruktion, som CPU'en skulle udføre.
- registre: De værdier, der er gemt i CPU's registre (som har midlertidige data).
- flag: Statusoplysninger om CPU (f.eks. Bær flag, nul flag).
4. afbrydelse af service: Interrupt Handler tager kontrol og udfører de nødvendige handlinger for at reagere på den afbrydelsesbegivenhed. Dette kan involvere:
- Læsningsdata: For eksempel læser data fra et netværkskort, når en pakke ankommer.
- Sending af data: Afsendelse af data til en enhed som svar på en afbrydelse.
- Opdatering af systemtilstand: Opdatering af tællere, timere eller andre systemvariabler.
- Fejlhåndtering: At tage korrigerende handlinger i tilfælde af en hardwarefejl.
5. Kontekst restaurering: Når den afbryderhandler er færdig, gendanner den den gemte kontekst (pc, registre, flag) tilbage til CPU'en.
6. Vend tilbage til henrettelse: CPU'en genoptager udførelsen af det originale program, startende fra den instruktion, der blev afbrudt.
Hvorfor afbrydelser er vigtige
* Real-time-svar: Afbrydelser gør det muligt for CPU'en at håndtere begivenheder i realtid, hvilket sikrer, at kritiske opgaver (som netværkskommunikation eller reaktion på brugerinput) adresseres hurtigt.
* Multitasking: Afbrydelser danner grundlaget for multitasking -operativsystemer, hvilket gør det muligt for flere programmer at dele CPU's tid. CPU'en kan hurtigt skifte mellem opgaver ved at reagere på timerafbrydelser.
* Effektivitet: Afbrydelser giver CPU'en mulighed for at fokusere på sin primære opgave, mens de delegerer håndteringen af perifere enheder og andre begivenheder til dedikerede afbrydelseshåndterere.
Typer af afbrydelser
* hardware afbryder: Udløses af eksterne hardwareenheder (som tastatur, diskdrev, netværkskort).
* Software afbryder: Genereret af instruktioner i selve programmet (f.eks. Systemopkald, undtagelser).
* timer afbryder: Genereret af en timer inden for CPU'en, der bruges til planlægning og multitasking.
Eksempel:
Forestil dig, at du skriver på dit tastatur. Hver nøglepresse genererer en hardwareafbrydelse. CPU'en springer til tastaturafbrydelsesbehandleren, læser nøglekoden og opdaterer bufferen, hvor teksten er gemt. Derefter vender den tilbage til din tekstbehandler, som nu har adgang til den nyligt indtastede karakter.