Ett mjukvaruavbrott (ofta förkortat som SWI, eller ibland kallas ett handledarsamtal, SVC eller undantag) är en mekanism i datorarkitektur som gör det möjligt för ett program att begära en specifik tjänst från operativsystemet eller en privilegierad kärnfunktion. Till skillnad från hårdvaruavbrott, som utlöses av externa händelser (som en tangentbordspress eller diskåtkomst), initieras programvaruavbrott uttryckligen av själva programmet med hjälp av en speciell instruktion.
Här är en uppdelning av viktiga aspekter:
* Syfte: Programvaruavbrott ger ett kontrollerat och strukturerat sätt för användarnivåprogram för att få tillgång till systemresurser och funktioner som de inte har direkt tillgång till. Dessa funktioner kan inkludera:
* I/O -operationer: Läsning från en fil, skriver till ett nätverksuttag, åtkomst till en skrivare.
* Minneshantering: Tilldela och hantera minne, ändra inställningar för minnesskydd.
* Processkontroll: Skapa, avslutas eller växla mellan processer.
* Interprocesskommunikation: Skicka och ta emot meddelanden mellan olika processer.
* Systemsamtal: Åtkomst till operativsystemtjänster på ett standardiserat sätt.
* Mekanism: Programmet utför en speciell instruktion (den specifika instruktionen varierar beroende på arkitektur; vanliga exempel inkluderar `int` i x86,` SVC 'i arm) med ett nummer som identifierar den begärda tjänsten. Denna instruktion utlöser en fälla eller undantag och överför kontrollen till operativsystemets kärna.
* privilegierad utförande: Kärnan körs i privilegierat läge och har tillgång till hårdvara och minne att program på användarnivå är förbjudna att få tillgång direkt av säkerhets- och stabilitetsskäl. Programvaruavbrott ger ett säkert, medierat sätt att få tillgång till dessa privilegierade resurser.
* Systemsamtalgränssnitt: Operativsystemet tillhandahåller ett väl definierat gränssnitt (ofta kallat ett systemsamtalgränssnitt eller API) som anger vilka programvaruavbrott som motsvarar vilka tjänster och de nödvändiga parametrarna. Programmerare använder detta gränssnitt för att begära tjänster utan att behöva veta information om implementering på låg nivå.
Exempel (konceptuell):
Föreställ dig ett program som vill skriva data till en fil. Den kan inte direkt manipulera skivhårdvaran. Istället använder den ett programavbrott för att begära operativsystemets filskrivningstjänst. Avbrottsnumret kan vara, till exempel, 10. Programmet kör instruktionen "Int 10" tillsammans med parametrar som anger filnamnet och data att skriva. Operativsystemet avlyssnar detta, verifierar programmets behörigheter, hanterar disken på låg nivå I/O och returnerar ett resultat (framgång eller misslyckande) till programmet.
I huvudsak är programvaruavbrott det primära sättet på användarnivå interagerar med operativsystemets kärna, vilket ger en säker och effektiv mekanism för systemresurshantering.