Forebyggende og ikke-forebyggende planlegging

Viktige forskjeller mellom forebyggende og ikke-forebyggende planlegging

  • I Preemptive Scheduling tildeles CPU-en til prosessene for en bestemt tidsperiode, og den ikke-preemptive planleggings-CPUen tildeles prosessen til den avsluttes.
  • I Preemptive Scheduling byttes oppgaver basert pรฅ prioritet, mens i ikke-preemptive Scheduling, skjer ingen veksling.
  • Den forebyggende algoritmen har overhead for รฅ bytte prosessen fra klar-tilstand til kjรธrende tilstand, mens ikke-forebyggende planlegging ikke har noen slik overhead for bytte.
  • Forebyggende planlegging er fleksibel, mens ikke-forebyggende planlegging er rigid.
Forebyggende vs ikke-forebyggende planlegging
Forebyggende vs ikke-forebyggende planlegging

Hva er forebyggende planlegging?

Preemptive Scheduling er en planleggingsmetode der oppgavene stort sett blir tildelt deres prioriteringer. Noen ganger er det viktig รฅ kjรธre en oppgave med hรธyere prioritet fรธr en annen lavere prioritet oppgave, selv om den lavere prioriterte oppgaven fortsatt kjรธrer.

Pรฅ det tidspunktet holder den lavere prioriterte oppgaven en stund og fortsetter nรฅr den hรธyere prioriterte oppgaven er ferdig.

Hva er ikke-forebyggende planlegging?

I denne typen planleggingsmetode har CPU-en blitt allokert til en spesifikk prosess. Prosessen som holder CPU-en opptatt vil frigjรธre CPU-en enten ved รฅ bytte kontekst eller avslutte.

Det er den eneste metoden som kan brukes for ulike maskinvareplattformer. Det er fordi den ikke trenger spesialisert maskinvare (for eksempel en timer) som forebyggende planlegging.

Ikke-forebyggende planlegging oppstรฅr nรฅr en prosess frivillig gรฅr inn i ventetilstanden eller avsluttes.

Forebyggende vs ikke-forebyggende planlegging: sammenligningstabell

Her er head-to-head sammenligning Preemptive vs Non-Preemptive Scheduling. Hovedforskjellene mellom forebyggende og ikke-forebyggende planlegging i OS er som fรธlger:

Forebyggende planlegging Ikke-forebyggende planlegging
En prosessor kan bli forhindret til รฅ utfรธre de forskjellige prosessene midt i enhver pรฅgรฅende prosesskjรธring. Nรฅr prosessoren starter sin kjรธring, mรฅ den fullfรธre den fรธr den kjรธrer den andre. Den kan ikke settes pรฅ pause pรฅ midten.
CPU-utnyttelse er mer effektiv sammenlignet med ikke-forebyggende planlegging. CPU-utnyttelse er mindre effektiv sammenlignet med forebyggende planlegging.
Vente- og responstiden for forebyggende planlegging er mindre. Vente- og responstiden for den ikke-forebyggende planleggingsmetoden er hรธyere.
Forebyggende planlegging er prioritert. Den hรธyest prioriterte prosessen er en prosess som brukes i dag. Nรฅr en prosess gรฅr inn i kjรธretilstanden, slettes aldri tilstanden til den prosessen fra planleggeren fรธr den er ferdig med jobben.
Forebyggende planlegging er fleksibel. Ikke-forebyggende planlegging er rigid.
Eksempler: โ€“ Korteste gjenvรฆrende tid fรธrst, Round Robin, etc. Eksempler: Fรธrste mann til mรธlla, Korteste jobb fรธrst, prioritert planlegging osv.
Forebyggende planleggingsalgoritme kan foregripes, det vil si at prosessen kan planlegges I ikke-forebyggende planleggingsprosessen kan ikke planlegges
I denne prosessen blir CPU allokert til prosessene for en bestemt tidsperiode. I denne prosessen blir CPU allokert til prosessen til den avsluttes eller gรฅr over til ventetilstand.
Forebyggende algoritme har overhead for รฅ bytte prosessen fra klar tilstand til kjรธrende tilstand og omvendt. Ikke-forebyggende planlegging har ingen slik overhead for รฅ bytte prosessen fra รฅ kjรธre til klar-tilstand.

Fordeler med forebyggende planlegging

Her er fordeler/fordeler med Preemptive Scheduling-metoden:

  • Forebyggende planleggingsmetode er mer robust, tilnรฆrming slik at en prosess ikke kan monopolisere CPU'en
  • Valg av lรธpende oppgave vurderes pรฅ nytt etter hvert avbrudd.
  • Hver hendelse forรฅrsaker avbrudd i kjรธrende oppgaver
  • Operativsystemet sรธrger for at CPU-bruken er den samme under alle prosesser som kjรธrer.
  • I dette er bruken av CPU den samme, dvs. at alle de kjรธrende prosessene vil bruke CPU likt.
  • Denne planleggingsmetoden improviserer ogsรฅ den gjennomsnittlige responstiden.
  • Forebyggende planlegging er fordelaktig nรฅr vi bruker den for flerprogrammeringsmiljรธet.

Fordeler med ikke-forebyggende planlegging

Her er fordeler/fordeler med ikke-forebyggende planleggingsmetode:

  • Tilbyr lav planlegging overhead
  • Har en tendens til รฅ tilby hรธy gjennomstrรธmning
  • Det er konseptuelt veldig enkel metode
  • Less beregningsressursbehov for planlegging

Ulemper med forebyggende planlegging

Fรธlgende er ulempene med forebyggende planlegging:

  • Trenger begrensede beregningsressurser for planlegging
  • Det tar lengre tid av planleggeren รฅ suspendere den kjรธrende oppgaven, bytte kontekst og sende den nye innkommende oppgaven.
  • Prosessen som har lav prioritet mรฅ vente i lengre tid dersom noen hรธyprioriterte prosesser kommer kontinuerlig.

Ulemper med ikke-forebyggende planlegging

Her er ulemper/ulemper med ikke-forebyggende planleggingsmetode:

  • Det kan fรธre til sult, spesielt for disse sanntidsoppgavene
  • Feil kan fรธre til at en maskin fryser
  • Det kan gjรธre sanntid og prioritert planlegging vanskelig
  • Dรฅrlig responstid for prosesser

Eksempel pรฅ ikke-forebyggende planlegging

I ikke-forebyggende SJF-planlegging, nรฅr CPU-syklusen er allokert til prosess, holder prosessen den til den nรฅr en ventetilstand eller avsluttes.

Tenk pรฅ fรธlgende fem prosesser som hver har sin egen unike serietid og ankomsttid.

Prosesskรธ Sprengtid Ankomsttid
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Trinn 0) Ved tid=0 kommer P4 og starter utfรธrelse.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 1) Ved tid = 1 kommer prosess P3. Men P4 trenger fortsatt 2 utfรธrelsesenheter for รฅ fullfรธre. Det vil fortsette utfรธrelse.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 2) Ved tiden =2 kommer prosess P1 og legges til ventekรธen. P4 vil fortsette kjรธringen.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 3) Ved tid = 3 vil prosess P4 fullfรธre utfรธrelsen. Bursttiden til P3 og P1 sammenlignes. Prosess P1 utfรธres fordi eksplosjonstiden er kortere sammenlignet med P3.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 4) Ved tid = 4 kommer prosess P5 og legges til ventekรธen. P1 vil fortsette kjรธringen.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 5) Ved tid = 5 kommer prosess P2 og legges til ventekรธen. P1 vil fortsette kjรธringen.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 6) Ved tid = 9 vil prosess P1 fullfรธre utfรธrelsen. Bursttiden til P3, P5 og P2 sammenlignes. Prosess P2 utfรธres fordi eksplosjonstiden er den laveste.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 7) Ved tid=10 kjรธrer P2, og P3 og P5 er i ventekรธen.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 8) Ved tid = 11 vil prosess P2 fullfรธre utfรธrelsen. Bursttiden til P3 og P5 sammenlignes. Prosess P5 utfรธres fordi eksplosjonstiden er kortere.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 9) Ved tid = 15 vil prosess P5 fullfรธre utfรธrelsen.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 10) Ved tid = 23 vil prosess P3 fullfรธre utfรธrelsen.

Eksempel pรฅ ikke-forebyggende planlegging

Trinn 11) La oss beregne gjennomsnittlig ventetid for eksempelet ovenfor.

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Eksempel pรฅ forebyggende planlegging

Tenk pรฅ dette etter tre prosesser i Round-robin

Prosesskรธ Sprengtid
P1 4
P2 3
P3 5

Eksempel pรฅ forebyggende planlegging

Trinn 1) Utfรธrelsen starter med prosess P1, som har bruddtid 4. Her kjรธres hver prosess i 2 sekunder. P2 og P3 stรฅr fortsatt i ventekรธ.

Eksempel pรฅ forebyggende planlegging

Trinn 2) Ved tiden =2 legges P1 til pรฅ slutten av kรธen og P2 begynner รฅ kjรธre

Eksempel pรฅ forebyggende planlegging

Trinn 3) Ved time=4 er P2 forhรฅndsaktivert og legg til pรฅ slutten av kรธen. P3 begynner รฅ kjรธre.

Eksempel pรฅ forebyggende planlegging

Trinn 4) Ved time=6 er P3 forhรฅndsaktivert og legg til pรฅ slutten av kรธen. P1 begynner รฅ kjรธre.

Eksempel pรฅ forebyggende planlegging

Trinn 5) Ved tid=8 har P1 en bruddtid pรฅ 4. Den har fullfรธrt utfรธrelse. P2 starter utfรธrelse

Eksempel pรฅ forebyggende planlegging

Trinn 6) P2 har en serietid pรฅ 3. Den har allerede utfรธrt for 2 intervaller. Ved tid=9 fullfรธrer P2 utfรธrelsen. Deretter starter P3 kjรธringen til den er fullfรธrt.

Eksempel pรฅ forebyggende planlegging

Trinn 7) La oss beregne gjennomsnittlig ventetid for eksempelet ovenfor.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7

Oppsummer dette innlegget med: