Multitasking fleranvändarsystem operativsystem har mycket kraftfulla arkitekturer . De förväntas ha en mängd användare som loggar in via nätverket på en central server eller arbetsstation . Operativsystemets kärna - kärnan eller centrum kring vilket den yttre funktionerna i OS är skiktade - talar till hake hårdvara via drivrutiner och till programvara via sin process - styrundersystemet . Kärnan tar kontroll över resursfördelningen och process schemaläggning . Det driver processerna in och ut av aktiva lägen , vaknar sovande processer , ringar larm och skickar signaler . Process
Alla körbar bit kod som kan läsa in i systemets minne och utföra åtgärder är en process . Det finns system processer och processer användarrecensioner . En process gafflar eller spawns ett barn process . Med undantag för den ursprungliga OS -processen , som kallas processen 0 i Unix , är alla processer skapas på detta sätt och därför har en förälder process . En process får CPU uppmärksamhet endast när kärnan gör det . Addera användare och lägen Kernel
En process körs i antingen användarläge eller kernel -läge och upprätthåller två separata stackar när du växlar mellan lägena . Vissa operativsystem kan ha fler lägen . Om du skriver ett program , bygga den och köra den , är den process som körs i användarläge . Det går kernel -läge när den gör ett samtal eller tar emot en avbrottssignal . Signalen kan komma från en annan användare processen eller själva kärnan . När en process är i kernel -läge , eskalerar kärnan dess prioritet i schemaläggning systemet . Det skall heller inte föregripa den kernel-läge process tills den är klar det kritiska systemet fungerar , varefter den är tillbaka i användarläge . En process i användarläge kan bara komma åt sina egna instruktioner och data eller process utrymme . Kernel - läge process kan komma adresser i kärnan . Ett bra exempel är en bit av assembler kod som gör ett hopp till ett avbrott .
Systemanrop
Som tidigare nämnts , är det systemet samtalet , oavsett vem som gör det och hur , som ger en process i kernel-läge . Ett systemanrop är en åkallan av en låg - nivå operativsystem funktion som har åtkomst och manipulerar låg nivå enhet enheter och monopoliserade områden minne . Det är praktiskt taget OS -kod . Funktioner som är verksamma på OS-enheter som filer , rör och semaforer systemanrop . Öppna ( ) , close ( ) , läsa ( ) , skriv ( ) , lock ( ) , unlock ( ) , init ( ) , gaffel ( ) , sleep ( ) , wakeup ( ) och signal ( ) är systemanrop . De kontrollerar OS resurser och processer precis som kärnan skulle. Signal -och avbrottsbearbetning är också den del av kärnan och inte användaren processen . I kernel-läge , är kontrollen ges till systemet samtal som gör systemuppgifter , eller det arbete som kärnan skulle göra annars . Det är kod som har åtkomst speciellt minne och register reserverat för OS uppgifter . Vissa maskininstruktioner är privilegierade och resultatet av misstag om de utförs i användarläge
Avbryter och privilegierade instruktioner
. Till exempel bör en process i användarläge inte tillåtas att ändra registret processens status . Register och privilegierade kärnans minne bistå kärnan i sin processtyrning arbete . Om någon annan kommer och förändrar dem , kan resultaten vara oförutsägbar . När en annan process eller avbryter kärnan en användare process , sparar kärnan den aktuella processen på traven , bestämmer orsaken till avbrottet , tjänster avbrotts och ger tillbaka kontrollen till vad processen gjorde . Kärnan dyker processen stacken så att användaren processen kan återupptas där den slutade .