Operativsystem funksjoner som brukes i kjernen og Brukerprogram

Operativsystem funksjoner som brukes i kjernen og Brukerprogram


Multitasking flerbruker operativsystemer har svært kraftige arkitekturer. De forventes å opprettholde mange brukere logger inn over nettverket på en sentral server eller arbeidsstasjon. Operativsystemkjernen - kjernen eller sentrum rundt som den ytre funksjonaliteten i OS er lagdelt - snakker til bare-bones maskinvare via enhetsdrivere og til programvare via sin prosess-kontroll delsystem. Kjernen tar kontroll over ressursallokering og prosessplanlegging. Det driver prosessene inn og ut av aktiv modus, våkner sover prosesser, ringer alarmer og sender signaler.

Prosess

Enhver kjørbar stykke kode som kan lastes inn i systemminnet og utføre handlinger er en prosess. Det er systemprosesser og brukerprosesser. En prosess gafler eller gyter et barn prosess. Med unntak av den opprinnelige OS prosessen, kalles prosessen 0 i Unix, er alle prosesser skapes på denne måten, og har derfor en overordnet prosess. En fremgangsmåte får CPU oppmerksomhet bare når kjernen tillater det.

Bruker og Kernel Modes

En prosess kjører i enten brukermodus eller kernel-modus, og opprettholder to separate stabler når du bytter mellom modusene. Noen operativsystemer kan ha flere moduser. Hvis du skriver et program, bygge den og kjøre den, er den løpende prosessen i brukermodus. Det går inn i kjernemodus når det er et systemkall eller mottar et avbruddssignal. Signalet kan komme fra en annen bruker prosessen eller kjernen i seg selv. Når en prosess er i kernel-modus, eskalerer kjernen sin prioritet i planleggingen ordningen. Det heller ikke har forrang over kernel-modus prosess til den er ferdig det kritiske systemet fungerer, etter som det er tilbake i brukermodus. En prosess i brukermodus kan bare få tilgang til sine egne instruksjoner og data eller prosess plass. Den kernel-modus prosess kan få tilgang til adresser i kjernen. Et godt eksempel er et stykke assembly kode som gjør et hopp til et avbrudd.

systemkall

Som nevnt tidligere, er det systemet samtalen, uansett hvem som gjør det og hvordan, som bringer en prosess i kernel-modus. En systemkall er en påkallelse av et lavt nivå operativsystem funksjon som krever tilgang og manipulerer enhets enheter lavt nivå og reserverte områder i minne. Det er praktisk talt OS kode. Funksjoner som opererer på OS-enheter som filer, rør og semaforer er systemkall. Open (), close (), lese (), skrive (), lås (), låse opp (), init (), gaffel (), sleep (), reaktivering () og signal () er systemkall. De kontrollerer OS ressurser og prosesser bare som kjernen ville. Signal og bryte behandling er også det område av kjernen og ikke brukerprosessen. I kjernemodus er styre gitt til systemet samtalen som gjør systemoppgaver, eller det arbeidet som kjernen ville gjøre noe annet. Det er kode som gir tilgang til spesielt minne og registre reservert for OS oppgaver.

Avbryter og Privilegerte Instruksjoner

Noen maskininstruksjoner er privilegerte og føre til feil hvis henrettet i brukermodus. For eksempel bør en prosess i brukermodus ikke få lov til å endre prosessen statusregister. Registre og privilegert kjerneminne bistå kjernen i sin prosesskontroll arbeid. Hvis noen andre kommer og endrer dem, kan resultatet bli uforutsigbart. Når en annen prosess eller kjernen avbryter en brukerprosess, sparer kjernen den nåværende tilstand av prosessen på stakken, bestemmer årsaken til avbruddet, tjenester avbruddet og bringer kontrollen tilbake til hva prosessen gjorde. Kjernen spretter prosessen stabelen slik at brukeren prosessen kan fortsette der den slapp.