Avbrott är avgörande för operativsystemets förmåga att hantera och prioritera uppgifter och processer. De tillåter operativsystemet att svara på händelser asynkront och förhindrar att det är bundet och väntar på att något ska hända. Här är en uppdelning av deras funktion:
1. Utlöser ett avbrott:
Avbrott utlöses av hårdvara eller mjukvaruhändelser. Exempel inkluderar:
* Hårdvaruavbrott: Dessa uppstår från enheter som tangentbordet (tangentpress), hårddisk (Data Ready), nätverkskort (paket mottagen), timer (tid som går) eller till och med interna CPU -fel. Varje enhet har en unik avbrottsbegäran (IRQ) den använder för att signalera CPU.
* Programvaruavbrott (även kallad systemsamtal eller fällor): Dessa utlöses av ett program som uttryckligen begär OS -tjänster, till exempel att läsa en fil, tilldela minne eller skapa en process. De initieras genom programvaruinstruktioner.
2. Avbrottshantering:
När ett avbrott inträffar:
1. Interrupt Signal: CPU får avbrottssignalen.
2. Avbrott Kontextbesparing: CPU sparar omedelbart det aktuella tillståndet för löpningsprocessen (register, programräknare etc.) till stacken. Detta är avgörande så att processen kan återupptas senare från exakt där den slutade. Detta räddade tillstånd kallas ibland "avbrottssammanhang".
3. Interrupt Vector Tabell: CPU konsulterar en avbrottsvektortabell. Denna tabell kartlägger varje avbrotts IRQ (eller programvaruavbrottsnummer) till adressen till en specifik avbrottshanterare (ISR - avbrottstjänstrutin) i minnet.
4. Avbrottshanterare Exekvering: CPU hoppar till adressen till lämplig avbrottshanterare. ISR utför de nödvändiga åtgärderna för att svara på avbrottet, till exempel att läsa data från en enhet, hantera ett systemsamtal eller hantera ett fel.
5. Avbrott Kontext Återställning: När ISR har slutförts återställer CPU det sparade sammanhanget från stacken och effektivt returnerar kontrollen till den tidigare löpande processen.
3. Avbrottsprioritering:
OS använder olika mekanismer för att hantera avbrottsprioritering:
* Hårdvaruprioritering: Vissa hårdvaruarkitekturer tillåter själva hårdvaran att prioritera avbrott. Avbrott med högre prioritering kan avbryta lägen med lägre prioritet (kapslade avbrott). Till exempel kan ett hårddiskfelavbrott förhindra ett tangentbordsavbrott.
* Programvaruprioritering: OS kan ytterligare prioritera avbrott med hjälp av programvarutekniker inom avbrottshanterarna själva. OS kan skjuta upp hantering av lägre prioriterade avbrott tills högre prioritering har behandlats.
* Avbrottsmaskering/inaktivering: Avbrott kan maskeras (tillfälligt inaktiveras) eller aktiveras selektivt. Detta är avgörande under kritiska kodavsnitt där ett avbrott kan orsaka datakorruption. Till exempel kan ett avbrott maskeras när man modifierar delade datastrukturer.
4. Förhållande till processer och uppgiftshantering:
Avbrott är grundläggande för multitasking. De tillåter operativsystemet att:
* Tidsskivning: Timer avbryter utlöser sammanhangsomkopplare, vilket gör att operativsystemet kan växla mellan olika körprocesser, vilket skapar en illusion av samtidighet.
* I/O -hantering: Avbrott från I/O -enheter gör det möjligt för OS att hantera asynkrona ingångs-/utgångsoperationer utan att blockera CPU. Processen som begär I/O -operationen kan fortsätta att köras medan avbrottshanteraren hanterar dataöverföringen i bakgrunden.
* Felhantering: Avbrott ger en mekanism för hantering av hårdvarufel och systemundantag effektivt, vilket förhindrar systemkrascher.
* Systemsamtal: Programvaruavbrott (systemsamtal) gör det möjligt för applikationer att begära OS -tjänster, effektivt interagera med kärnan och hantera åtkomst till systemresurser.
Sammanfattningsvis är avbrott grunden för moderna operativsystem. Deras förmåga att hantera asynkrona händelser effektivt och med ett prioriterat tillvägagångssätt är avgörande för att hantera processer, hantera I/O och upprätthålla systemstabilitet och lyhördhet. OS:s smarta användning av avbrottshantering, prioritering och kontextbyte ger effektiv multitasking och den övergripande driften av datorsystemet.