Arkitektene ved Bell Laboratories og deres opprinnelige forbindelser i General Electric og Massachusetts Institute of Technology utviklet Unix som en kraftig multitasking operativsystem . Unix -kjernen - kjernen eller sentrum rundt som den ytre funksjonaliteten i OS er lagdelt - snakker til bare- bones hardware via enhetsdrivere og programvare for å styre prosesser og tildele systemressurser. En prosess på Unix er noen kjørbar kontroll -flow prosedyre lastet inn i minnet , og det får CPU oppmerksomhet bare når kjernen tillater det. Prosessen
Den sentrale og avgjørende del av Unix -kjernen , prosessreguleringen delsystem , er ansvarlig for prosessen synkronisering, inter - prosess kommunikasjon, prosess planlegging og minnehåndtering . En prosessen skaper et barn prosess med gaffel ( ) system samtale , og med unntak av prosessen 0 , alle prosesser har en overordnet prosess som kalles gaffel ( ) på et tidspunkt for å lage barnet.
Kjernen identifiserer en prosess ved dens ID , referert til som PID. En Unix prosess kjører i enten bruker modus eller kernel -modus , og opprettholder to separate stabler når du bytter mellom dem . En prosess går kernel -modus når den gjør et systemkall eller mottar et avbrudd eller et signal , gir det høyere prioritet og mer beslag på ressurser og forkjøpsrett enn de brukernivå.
Planlegging
kjernen gjør en ny eller annen prosess for å bruke CPU bare når den første prosessen går i dvale , og tillater ikke det å endre tilstanden eller tilgang til ressurser tildelt til en annen prosess . Kjernens planleggeren modul preempts en bruker prosess jevne mellomrom for å hindre den fra å monopolisere CPU , imidlertid.
Kontroll
Prosesser kommuniserer med hverandre via systemkall , og mens de kan foreslå at en annen prosess gå bort, kan bare kjernen preempt det. En prosess kan gå i dvale på egen hånd , men kjernen kan vekke den . Prosesser vanligvis sove på en hendelse , venter på å okkupere CPU så lenge ønsket hendelse har ikke skjedd .
Signaler
Når kjernen tildeler CPU til en annen prosessen, som kalles en kontekst bryteren, preempted prosessen lagres på stakken, slik at det å fortsette der den slapp på sin neste tur. En prosess kan sende et signal til en annen eller kjernen kan sende et signal internt , men bare kjernen kan sende et signal til en løpende prosess for å sette en stopper for den slik at den går i dvale . Kjernen deretter bytter den med en ready- to-run prosess som hadde ventet å få kontroll over CPU . En prosess kan sove på et bestemt utkoblbart prioritet og ignorere en lav prioritet signal.
Fair Share
Kjernen implementerer en fair- share planlegging algoritme som gir prosesser en andel av CPU tid basert på prioriteringer tildelt dem , avhengig av oppgavens karakter . Høyere prioriterte prosesser blir planlagt oftere og få mer CPU tid , men en prosess kan utøve rå kontroll over planlegging sitt ved å bruke systemet samtalen fint ( ) som følger: fin ( verdi) ; Process prioritet er en funksjon av denne fin verdi . prosessen prioritet = siste CPU /en konstant + base prioritet + fin verdi .
Denne algoritmen gir brukergruppe A dobbelte av spor for gruppe B , tre ganger så stor som C og fire ganger større enn D , der brukeren prosesser er gruppert etter prioritet. Denne metoden egner seg ikke for real- time prosessering , hvor prosessen ikke har råd til å vente på virksomhetskritiske oppgaver ; en slik prosess får umiddelbar CPU-bruken ved å gjøre systemet ringe og sende høyt prioriterte avbruddssignaler
< . br >