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