Forebyggende og ikke-forebyggende planlægning

Nøgleforskelle mellem forebyggende og ikke-forebyggende planlægning

  • I forebyggende planlægning allokeres CPU'en til processerne i en bestemt tidsperiode, og den ikke-forebyggende planlægnings-CPU allokeres til processen, indtil den afsluttes.
  • I Preemptive Scheduling skiftes opgaver baseret på prioritet, mens der i ikke-preemptive Scheduling sker ingen skift.
  • Den forebyggende algoritme har overhead til at skifte processen fra klar-tilstand til kørende tilstand, mens ikke-forebyggende planlægning ikke har nogen sådan overhead for omskiftning.
  • Forebyggende planlægning er fleksibel, mens ikke-forebyggende planlægning er stiv.
Forebyggende vs ikke-forebyggende planlægning
Forebyggende vs ikke-forebyggende planlægning

Hvad er forebyggende planlægning?

Preemptive Scheduling er en planlægningsmetode, hvor opgaverne for det meste er tildelt deres prioriteter. Nogle gange er det vigtigt at køre en opgave med en højere prioritet før en anden lavere prioritet opgave, selvom den lavere prioriterede opgave stadig kører.

På det tidspunkt holder opgaven med lavere prioritet i nogen tid og genoptages, når opgaven med højere prioritet afslutter sin udførelse.

Hvad er ikke-forebyggende planlægning?

I denne type planlægningsmetode er CPU'en blevet allokeret til en specifik proces. Processen, der holder CPU'en optaget, frigiver CPU'en enten ved at skifte kontekst eller afslutte.

Det er den eneste metode, der kan bruges til forskellige hardwareplatforme. Det er fordi det ikke har brug for specialiseret hardware (for eksempel en timer) som forebyggende planlægning.

Ikke-forebyggende planlægning opstår, når en proces frivilligt går ind i ventetilstanden eller afsluttes.

Forebyggende vs ikke-forebyggende planlægning: sammenligningstabel

Her er head-to-head sammenligning Preemptive vs Non-Preemptive Scheduling. De vigtigste forskelle mellem forebyggende og ikke-forebyggende planlægning i OS er som følger:

Forebyggende planlægning Ikke-forebyggende planlægning
En processor kan foregribes til at udføre de forskellige processer midt i enhver aktuel procesudførelse. Når processoren starter sin udførelse, skal den afslutte den, før den udfører den anden. Den kan ikke sættes på pause i midten.
CPU-udnyttelse er mere effektiv sammenlignet med ikke-forebyggende planlægning. CPU-udnyttelse er mindre effektiv sammenlignet med forebyggende planlægning.
Vente- og responstid ved forebyggende planlægning er mindre. Vente- og responstiden for den ikke-forebyggende planlægningsmetode er højere.
Forebyggende planlægning prioriteres. Den højest prioriterede proces er en proces, der i øjeblikket anvendes. Når en proces går ind i køretilstanden, slettes denne proces aldrig fra planlægningsprogrammet, før den afslutter sit job.
Forebyggende planlægning er fleksibel. Ikke-forebyggende planlægning er rigid.
Eksempler: – Korteste resterende tid først, Round Robin osv. eksempler: Først til mølle, Korteste job først, prioritetsplanlægning osv.
Forebyggende planlægningsalgoritme kan foregribes, dvs. processen kan planlægges I ikke-forebyggende planlægningsproces kan ikke planlægges
I denne proces allokeres CPU'en til processerne for en bestemt tidsperiode. I denne proces allokeres CPU til processen, indtil den afsluttes eller skifter til ventetilstand.
Forebyggende algoritme har overhead til at skifte processen fra klar tilstand til kørende tilstand og omvendt. Ikke-forebyggende planlægning har ingen sådan overhead til at skifte processen fra at køre til klar-tilstand.

Fordele ved forebyggende planlægning

Her er fordele/fordele ved forebyggende planlægningsmetode:

  • Forebyggende planlægningsmetode er mere robust, tilgang, så én proces ikke kan monopolisere CPU'en
  • Valg af kørende opgave genovervejet efter hver afbrydelse.
  • Hver hændelse forårsager afbrydelse af kørende opgaver
  • OS sørger for, at CPU-brug er det samme ved alle kørende processer.
  • I denne er brugen af ​​CPU den samme, dvs. alle de kørende processer vil bruge CPU lige meget.
  • Denne planlægningsmetode improviserer også den gennemsnitlige responstid.
  • Forebyggende planlægning er en fordel, når vi bruger det til multiprogrammeringsmiljøet.

Fordele ved ikke-forebyggende planlægning

Her er fordele/fordele ved ikke-forebyggende planlægningsmetode:

  • Tilbyder lav planlægningsoverhead
  • Har tendens til at tilbyde høj gennemstrømning
  • Det er konceptuelt meget simpel metode
  • Less behov for beregningsressourcer til planlægning

Ulemper ved forebyggende planlægning

Følgende er ulemperne ved forebyggende planlægning:

  • Har brug for begrænsede beregningsressourcer til planlægning
  • Det tager længere tid af planlæggeren at suspendere den kørende opgave, skifte kontekst og sende den nye indgående opgave.
  • Processen, der har lav prioritet, skal vente i længere tid, hvis der løbende kommer nogle højt prioriterede processer.

Ulemper ved ikke-forebyggende planlægning

Her er ulemper/ulemper ved den ikke-forebyggende planlægningsmetode:

  • Det kan føre til sult, især for disse opgaver i realtid
  • Fejl kan få en maskine til at fryse
  • Det kan lave realtid og prioriteret planlægning svært
  • Dårlig responstid for processer

Eksempel på ikke-forebyggende planlægning

I ikke-forebyggende SJF-planlægning, når CPU-cyklussen er allokeret til behandling, holder processen den, indtil den når en ventetilstand eller afsluttes.

Overvej de følgende fem processer, der hver har sin egen unikke burst-tid og ankomsttid.

Proceskø Burst tid Ankomsttid
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Trin 0) Ved tid=0 ankommer P4 og starter udførelse.

Eksempel på ikke-forebyggende planlægning

Trin 1) Ved tidspunkt = 1 ankommer proces P3. Men P4 mangler stadig 2 udførelsesenheder for at fuldføre. Det vil fortsætte udførelsen.

Eksempel på ikke-forebyggende planlægning

Trin 2) På tidspunktet =2 ankommer proces P1 og føjes til ventekøen. P4 fortsætter eksekveringen.

Eksempel på ikke-forebyggende planlægning

Trin 3) Ved tidspunkt = 3 vil proces P4 afslutte sin udførelse. Bursttiden for P3 og P1 sammenlignes. Proces P1 udføres, fordi dens bursttid er mindre sammenlignet med P3.

Eksempel på ikke-forebyggende planlægning

Trin 4) Ved tid = 4 ankommer proces P5 og føjes til ventekøen. P1 vil fortsætte med at udføre.

Eksempel på ikke-forebyggende planlægning

Trin 5) Ved tid = 5 ankommer proces P2 og føjes til ventekøen. P1 vil fortsætte med at udføre.

Eksempel på ikke-forebyggende planlægning

Trin 6) Ved tidspunktet = 9 vil proces P1 afslutte sin udførelse. Bursttiden for P3, P5 og P2 sammenlignes. Proces P2 udføres, fordi dens bursttid er den laveste.

Eksempel på ikke-forebyggende planlægning

Trin 7) På tidspunktet=10 udføres P2, og P3 og P5 er i ventekøen.

Eksempel på ikke-forebyggende planlægning

Trin 8) Ved tid = 11 vil proces P2 afslutte sin udførelse. Bursttiden for P3 og P5 sammenlignes. Proces P5 udføres, fordi dens bursttid er lavere.

Eksempel på ikke-forebyggende planlægning

Trin 9) Ved tid = 15 vil proces P5 afslutte sin udførelse.

Eksempel på ikke-forebyggende planlægning

Trin 10) Ved tid = 23 vil proces P3 afslutte sin udførelse.

Eksempel på ikke-forebyggende planlægning

Trin 11) Lad os beregne den gennemsnitlige ventetid for ovenstående eksempel.

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 planlægning

Overvej dette efter tre processer i Runde Robin

Proceskø Burst tid
P1 4
P2 3
P3 5

Eksempel på forebyggende planlægning

Trin 1) Udførelsen begynder med proces P1, som har burst tid 4. Her udføres hver proces i 2 sekunder. P2 og P3 står stadig i ventekøen.

Eksempel på forebyggende planlægning

Trin 2) På tidspunktet =2 tilføjes P1 til slutningen af ​​køen, og P2 begynder at udføre

Eksempel på forebyggende planlægning

Trin 3) Ved time=4 er P2 foregrebet og tilføjes i slutningen af ​​køen. P3 begynder at udføre.

Eksempel på forebyggende planlægning

Trin 4) Ved time=6 er P3 foregrebet og tilføjes i slutningen af ​​køen. P1 begynder at udføre.

Eksempel på forebyggende planlægning

Trin 5) Ved time=8 har P1 en bursttid på 4. Den har afsluttet eksekveringen. P2 starter udførelse

Eksempel på forebyggende planlægning

Trin 6) P2 har en bursttid på 3. Den er allerede udført i 2 interval. Ved tidspunkt = 9 fuldfører P2 udførelsen. Derefter starter P3 eksekveringen, indtil den er færdig.

Eksempel på forebyggende planlægning

Trin 7) Lad os beregne den gennemsnitlige ventetid for ovenstående eksempel.

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

Opsummer dette indlæg med: