Hier is een uitsplitsing van wat er gebeurt als een CPU wordt onderbroken:
Het interruptmechanisme
1. Interruptsignaal: Een externe gebeurtenis (zoals een netwerkpakket arriveert, een timer die verloopt of een hardwarefout) activeert een interruptsignaal. Dit signaal wordt naar de CPU verzonden.
2. Interrupt Handler: De CPU pauzeert zijn huidige instructie -uitvoering en springt onmiddellijk naar een vooraf gedefinieerde geheugenlocatie genaamd de "Interrupt Handler". Deze handler is een code dat speciaal is ontworpen om het type interrupt dat is opgetreden aan te pakken.
3. Context opslaan: De CPU redt de status van zijn huidige uitvoering, inclusief:
- Programmaceller (pc): Het adres van de volgende instructie die de CPU zou uitvoeren.
- Registers: De waarden die zijn opgeslagen in de registers van de CPU (die tijdelijke gegevens bevatten).
- vlaggen: Statusinformatie over de CPU (bijv. Vlag, nulvlag).
4. Onderhoudservicing: De interrupt -handler neemt de controle en voert de nodige acties uit om te reageren op de onderbrekingsgebeurtenis. Dit kan inhouden:
- Gegevens lezen: Bijvoorbeeld, het lezen van gegevens van een netwerkkaart wanneer een pakket arriveert.
- Gegevens verzenden: Gegevens naar een apparaat verzenden in antwoord op een onderbreking.
- Systeemstatus bijwerken: Tellers, timers of andere systeemvariabelen bijwerken.
- Foutafhandeling: Corrigerende acties ondernemen in geval van een hardwarefout.
5. Contextherstel: Zodra de interrupt -handler is voltooid, herstelt deze de opgeslagen context (pc, registers, vlaggen) terug naar de CPU.
6. Terug naar uitvoering: De CPU hervat het uitvoeren van het oorspronkelijke programma, beginnend bij de onderbroken instructie.
Waarom onderbrekingen belangrijk zijn
* Real-time reactie: Onderbrekingen stellen de CPU in staat om gebeurtenissen in realtime af te handelen, zodat kritische taken (zoals netwerkcommunicatie of reageren op gebruikersinvoer) onmiddellijk worden aangepakt.
* multitasking: Onderbrekingen vormen de basis van multitasking -besturingssystemen, waardoor meerdere programma's de tijd van de CPU kunnen delen. De CPU kan snel tussen taken schakelen door te reageren op timer -onderbrekingen.
* Efficiëntie: Interrupts stelt de CPU in staat om zich te concentreren op zijn primaire taak, terwijl de afhandeling van perifere apparaten en andere gebeurtenissen aan toegewijde interrupt -handlers delegeert.
Soorten onderbrekingen
* Hardware -onderbrekingen: Gevestigd door externe hardware -apparaten (zoals toetsenbord, schijfstations, netwerkkaarten).
* Software onderbreekt: Gegenereerd door instructies binnen het programma zelf (bijvoorbeeld systeemoproepen, uitzonderingen).
* Timer onderbreekt: Gegenereerd door een timer binnen de CPU, gebruikt voor planning en multitasking.
Voorbeeld:
Stel je voor dat je op je toetsenbord typt. Elke toets Press genereert een hardware -onderbreking. De CPU springt naar het toetsenbordonderbrekingshandler, leest de sleutelcode en werkt de buffer bij waar de tekst wordt opgeslagen. Vervolgens keert het terug naar uw tekstverwerker, die nu toegang heeft tot het nieuw getypte karakter. |