Här är en uppdelning av vad som händer när en CPU avbryts:
Avbrottsmekanismen
1. Interrupt Signal: En extern händelse (som ett nätverkspaket som anländer, en timer som löper ut eller ett hårdvarufel) utlöser en avbrottssignal. Denna signal skickas till CPU.
2. Interrupt Handler: CPU pausar sin nuvarande instruktionsutförande och hoppar omedelbart till en fördefinierad minnesplats som kallas "avbrottshanteraren." Den här hanteraren är en kod som är specifikt utformad för att hantera den typ av avbrott som inträffade.
3. Kontextbesparing: CPU sparar tillståndet för sitt nuvarande utförande, inklusive:
- Programräknare (PC): Adressen till nästa instruktion CPU skulle utföra.
- Register: Värdena lagrade i CPU:s register (som innehåller tillfälliga data).
- flaggor: Statusinformation om CPU (t.ex. bär flagga, nollflagga).
4. Avbrottstjänst: Avbrottshanteraren tar kontroll och utför nödvändiga åtgärder för att svara på avbrottshändelsen. Detta kan innebära:
- Läsdata: Till exempel läser du data från ett nätverkskort när ett paket anländer.
- Skicka data: Skicka data till en enhet som svar på ett avbrott.
- Uppdateringssystemstillstånd: Uppdatering av räknare, timers eller andra systemvariabler.
- Felhantering: Vidta korrigerande åtgärder vid ett hårdvarufel.
5. Kontextåterställning: När avbrottshanteraren är klar återställer den det sparade sammanhanget (PC, register, flaggor) tillbaka till CPU.
6. Återgå till exekvering: CPU:erna återupptas att utföra det ursprungliga programmet, från och med den instruktion som avbröts.
Varför avbrott är viktiga
* realtidssvar: Avbrott gör det möjligt för CPU att hantera händelser i realtid och säkerställa att kritiska uppgifter (som nätverkskommunikation eller svara på användarinmatning) behandlas snabbt.
* multitasking: Avbrott utgör grunden för multitasking -operativsystem, vilket gör att flera program kan dela CPU:s tid. CPU kan snabbt växla mellan uppgifter genom att svara på timeravbrott.
* Effektivitet: Avbrott tillåter CPU att fokusera på sin primära uppgift samtidigt som hanteringen av perifera enheter och andra händelser delegerar hanteringen av perifera enheter.
typer av avbrott
* Hårdvaruavbrott: Utlöses av externa hårdvaruenheter (som tangentbord, diskenheter, nätverkskort).
* Programvaruavbrott: Genereras av instruktioner i själva programmet (t.ex. systemsamtal, undantag).
* timer avbrott: Genererad av en timer inom CPU, används för schemaläggning och multitasking.
Exempel:
Föreställ dig att du skriver på tangentbordet. Varje tangentpress genererar ett hårdvaruavbrott. CPU hoppar till tangentbordsavbrottshanteraren, läser tangentkoden och uppdaterar bufferten där texten lagras. Den återvänder sedan till din ordbehandlare, som nu har tillgång till den nyligen typade karaktären.