Multitasking flerbruger- operativsystemer har meget stærke arkitekturer. De forventes at fastholde mange brugere logger ind over nettet på en central server eller arbejdsstation . Operativsystemets kerne - kernen eller centrum, hvorom den ydre funktionalitet OS er lagdelt - taler til bare-bone hardware via enhedsdrivere og til software via sin proces - styring delsystem . Selve kernen tager kontrol over ressourceallokering og proces planlægning. Det drev processerne ind og ud af aktive tilstande , vågner op sovende processer ringe alarmer og sender signaler. Process
Enhver eksekverbar stykke kode, der kan indlæses i systemets hukommelse og udføre handlinger er en proces. Der er system processer og bruger processer. En proces gafler eller gyder et barn proces . Bortset fra den oprindelige OS proces, der kaldes processen 0 i Unix, er alle processer skabt denne måde, og har derfor en overordnet proces . En proces, får CPU opmærksomhed , når kernen tillader det.
Bruger-og Kernel Modes
processen kører i enten bruger-tilstand eller kernel-mode og vedligeholder to separate stakke når du skifter mellem tilstandene . Nogle operativsystemer kan have flere tilstande. Hvis du skriver et program , bygge det, og kører det, den kørende proces er i brugertilstand . Den træder kernel mode, når det gør en system opkald eller modtager et interrupt signal. Signalet kan komme fra en anden bruger proces eller selve kernen . Når en proces er i kernel -mode, kernen eskalerer sin prioritet i planlægningen ordningen. Det er heller ikke foregribe kernel -mode , indtil den er færdig kritiske system arbejde , hvorefter det er tilbage i brugerniveau. En proces bruger mode kan kun få adgang sine egne instruktioner og data eller proces plads . Kernel -mode proces kan få adgang adresser i kernen. Et godt eksempel er et stykke assembler kode, der gør et hop til en interrupt .
Systemet kalder
p Som nævnt tidligere , er det system opkald , uanset hvem der gør det, og hvordan , der bringer en proces i kernel -mode. Et system opkald er en besværgelse af en lav- niveau operativsystem funktion, der får adgang , og manipulerer lavt niveau enhed enheder og reserverede områder af hukommelsen. Det er praktisk OS kode . Funktioner , der opererer på OS-enheder som filer , rør og semaforer er system opkald. Åbn () , luk () , læse () , skrive () , låsen () , låse () , init () , gaffel () , søvn () , wakeup () og signal ( ) er system opkald. De styrer OS ressourcer og processer ligesom kernen ville. Signal og afbryde behandlingen er også det område af kernen og ikke bruger processen . I kernel-mode , er styringen givet til det system opkald, der gør system opgaver , eller det arbejde, kernen ville gøre andet. Det er kode , der får adgang særlig hukommelse og registrerer forbeholdt OS opgaver.
Afbryder og privilegerede Instruktioner
nogle brugsanvisninger er privilegerede og resultere i fejl, hvis henrettet i brugerniveau . For eksempel bør en proces i bruger mode ikke få lov til at ændre processen status register. Registre og privilegeret kernel memory bistå kernen i sit proceskontrol arbejde. Hvis en anden kommer og ændrer dem, kan resultaterne være uforudsigelige. Når en anden proces eller kernen afbryder en bruger proces , kernen gemmer den aktuelle tilstand af processen på stakken bestemmer årsagen til interrupt , tjenester interrupt og bringer kontrollen tilbage til hvad processen gjorde. Selve kernen springer den proces stak så brugeren proces kan genoptage hvor den slap .