Varför dubbla lägen behövs
Dubbellägen (ofta kallas kärnläge och användarläge ) är viktiga för operativsystem till:
* Skydda systemet från skadliga eller buggy användarprogram: Användarprogram som körs i användarläge har begränsad tillgång till systemresurser och kan inte direkt ändra kärnkod. Detta hindrar dem från att förstöra operativsystemet eller andra program.
* Se till att tilldelning av rättvis resurser: Genom att begränsa användarprogrammets tillgång till resurser kan operativsystemet säkerställa att inget enda program monopoliserar systemets resurser, vilket leder till rättvisa och stabilitet.
* Aktivera effektiv exekvering: Kärnan, som körs i privilegierade kärnläge, kan direkt komma åt hårdvara och utföra kritiska uppgifter, vilket möjliggör effektiv användning av systemresurser.
Utan dubbla lägen kan användarprogram potentiellt:
* Korrupt operativsystemet: Genom att direkt komma åt och modifiera kärnkoden.
* krascha systemet: Genom att komma åt och manipulera hårdvara utan korrekt tillstånd.
* störa andra program: Genom att komma åt och ändra andra program data.
Sammanfattningsvis ger dubbla lägen ett avgörande lager av skydd och kontroll, vilket gör att operativsystemet kan hantera resurser och säkerställa stabilitet och säkerhet.
Systemsamtal och lägen
Systemsamtal är bron mellan användarprogram och operativsystemkärnan. De är den mekanism som användarprogram begär tjänster från kärnan, till exempel åtkomst till filer, skapar processer eller hanterar nätverksanslutningar.
Så här systemsamtal relaterar till lägen:
1. Användarprogram körs i användarläge: De har begränsad tillgång till systemresurser och kan inte direkt interagera med hårdvara.
2. För att få tillgång till privilegierade resurser måste användarprogram ringa systemsamtal: Dessa samtal är speciella programvaruavbrott som växlar CPU från användarläge till kärnläge.
3. Kärnan kör systemsamtalet i privilegierade kärnläge: Den har full tillgång till systemresurser och kan utföra den begärda åtgärden på användarprogrammets vägnar.
4. Kärnan returnerar kontrollen till användarprogrammet: Användarprogrammet fortsätter exekvering i användarläge, omedveten om de underliggande privilegierade operationerna som utförs av kärnan.
I huvudsak är systemsamtal mekanismen för användarprogram att "be om tillåtelse" från operativsystemets kärna för att få tillgång till resurser som annars är begränsade i användarläge.
Exempel: Ett användarprogram vill öppna en fil. Det kan inte direkt komma åt filsystemet i användarläge. Istället använder det ett systemsamtal (som `open ()` eller `fopen ()`) för att begära kärnan att öppna filen. Kärnan kör sedan begäran i kärnläge, ger åtkomst till filen och returnerar kontrollen till användarprogrammet.
Denna separering av lägen och användningen av systemsamtal säkerställer en säker och kontrollerad miljö för användarprogram, vilket gör att operativsystemet kan hantera och skydda sina resurser effektivt.