En enhet får CPU -uppmärksamhet genom en process som heter
avbrottshantering . Här är en uppdelning:
1. Enhetsförfrågan: En perifer enhet (som ett tangentbord, mus, hårddisk, nätverkskort etc.) behöver CPU:s uppmärksamhet. Detta händer när enheten slutför en operation (t.ex. en nyckelpress, slutförande av dataöverföring) eller möter ett fel.
2. Avbrottssignal: Enheten skickar en * Interrupt Request (IRQ) * signal till CPU. Denna signal skickas vanligtvis via en dedikerad hårdvarelinje. Avbrottet är i huvudsak en signal som säger "Hej CPU, jag behöver dig!"
3. Interrupt Controller: Innan CPU når direkt går IRQ ofta genom en *avbrottskontroller *. Denna styrenhet hanterar flera enheternas avbrottsförfrågningar, prioriterar dem och säkerställer att endast ett avbrott hanteras åt gången. Styrenheten kan också utföra avbrottsmaskering (ignorera vissa avbrott) baserat på systemprioriteringar.
4. Avbrottshanteringsrutin: CPU:er, efter mottagande av avbrottssignalen, stoppar sitt nuvarande utförande (sparar sitt tillstånd) och hoppar till en fördefinierad * avbrottshanterare * (eller avbrottstjänstrutin - ISR). Detta är en specifik kodbit som är utformad för att hantera förfrågningarna från den specifika enheten.
5. Serviceförfrågan: Avbrottshanteraren undersöker källan till avbrottet (vilken enhet genererade den) och vidtar lämpliga åtgärder. Detta kan innebära att du läser data från enheten, skickar data till enheten eller hanterar ett felvillkor.
6. Återvänd från avbrott: Efter att ha betjänat avbrottsbegäran återställer avbrottshanteraren CPU:s tillstånd från innan avbrottet inträffade och returnerar kontrollen till programmet som avbröts. CPU återupptar sin exekvering från den punkt där den slutade.
Olika typer av avbrott:
* Hårdvaruavbrott: Genereras av hårdvaruenheter som de som nämns ovan.
* Programvaruavbrott: Genereras av programvaruinstruktioner (t.ex. instruktion av "int" i x86). Dessa används ofta för systemsamtal eller undantag.
Prioritet och schemaläggning:
CPU- och avbrottskontrollen hanterar avbrottsprioriteringar. Avbrott med högre prioritet kan avbryta lägen med lägre prioritering. Operativsystemets schemaläggare spelar en avgörande roll för att hantera dessa avbrott och se till att kritiska enheter servas snabbt. Ett dåligt utformat avbrottssystem kan leda till systeminstabilitet eller dataförlust.
Kort sagt, det är en samordnad hårdvaruprogramvaruinteraktion där enheten signalerar ett behov av uppmärksamhet, systemet prioriterar och hanterar denna begäran och CPU tillfälligt förskjuter sitt fokus för att betjäna enheten innan den återupptar sin tidigare uppgift.