Förebyggande och icke-förebyggande schemaläggning

Viktiga skillnader mellan förebyggande och icke-förebyggande schemaläggning

  • I förebyggande schemaläggning allokeras CPU:n till processerna för en specifik tidsperiod, och den icke-förebyggande schemaläggningsprocessorn allokeras till processen tills den avslutas.
  • I förebyggande schemaläggning växlas uppgifter baserat på prioritet, medan i icke-förebyggande schemaläggning sker ingen växling.
  • Den förebyggande algoritmen har overhead för att byta processen från redo-tillståndet till drifttillståndet, medan icke-förebyggande schemaläggning inte har någon sådan overhead för omkoppling.
  • Förebyggande schemaläggning är flexibel, medan icke-förebyggande schemaläggning är stel.
Förebyggande vs icke-förebyggande schemaläggning
Förebyggande vs icke-förebyggande schemaläggning

Vad är förebyggande schemaläggning?

Preemptive Scheduling är en schemaläggningsmetod där uppgifterna oftast tilldelas med sina prioriteringar. Ibland är det viktigt att köra en uppgift med högre prioritet före en annan lägre prioriterad uppgift, även om den lägre prioriterade uppgiften fortfarande körs.

Vid den tidpunkten behåller den lägre prioriterade uppgiften en tid och återupptas när den högre prioriterade uppgiften slutförs.

Vad är icke-förebyggande schemaläggning?

I denna typ av schemaläggningsmetod har CPU:n allokerats till en specifik process. Processen som håller processorn upptagen kommer att släppa processorn antingen genom att byta kontext eller avsluta.

Det är den enda metoden som kan användas för olika hårdvaruplattformar. Det beror på att den inte behöver specialiserad hårdvara (till exempel en timer) som förebyggande schemaläggning.

Icke-förebyggande schemaläggning inträffar när en process frivilligt går in i vänteläge eller avslutas.

Förebyggande vs icke-förebyggande schemaläggning: jämförelsetabell

Här är en direkt jämförelse mellan förebyggande och icke-förebyggande schemaläggning. De huvudsakliga skillnaderna mellan förebyggande och icke-förebyggande schemaläggning i OS är följande:

Förebyggande schemaläggning Icke-förebyggande schemaläggning
En processor kan förhindras att utföra de olika processerna mitt under en pågående processexekvering. När processorn startar sin exekvering måste den avsluta den innan den körs av den andra. Det går inte att pausa i mitten.
CPU-användning är effektivare jämfört med icke-förebyggande schemaläggning. CPU-användning är mindre effektiv jämfört med förebyggande schemaläggning.
Vänte- och svarstiden för förebyggande schemaläggning är mindre. Vänte- och svarstiden för den icke-förebyggande schemaläggningsmetoden är högre.
Förebyggande schemaläggning prioriteras. Den högst prioriterade processen är en process som för närvarande används. När en process går in i tillståndet att köra, tas inte processens tillstånd bort från schemaläggaren förrän den avslutar sitt jobb.
Förebyggande schemaläggning är flexibel. Icke-förebyggande schemaläggning är stel.
Exempel: – Kortaste återstående tid först, Round Robin, etc. Exempel: Först till kvarn, Kortaste jobbet först, prioriteringsplanering osv.
Algoritmen för förebyggande schemaläggning kan föregripas, dvs processen kan schemaläggas I icke-förebyggande schemaläggning kan processen inte schemaläggas
I denna process allokeras CPU till processerna för en specifik tidsperiod. I denna process allokeras CPU till processen tills den avslutas eller växlar till vänteläge.
Förebyggande algoritm har överheaden att växla processen från redo-tillståndet till körläget och vice versa. Icke-förebyggande schemaläggning har ingen sådan omkostnad för att växla processen från att köras till redo-tillståndet.

Fördelar med förebyggande schemaläggning

Här är fördelar/fördelar med förebyggande schemaläggningsmetoden:

  • Förebyggande schemaläggningsmetod är mer robust, tillvägagångssätt så att en process inte kan monopolisera CPU:n
  • Valet av pågående uppgift omprövas efter varje avbrott.
  • Varje händelse orsakar avbrott i pågående uppgifter
  • OS ser till att CPU-användningen är densamma under alla pågående processer.
  • I detta är användningen av CPU densamma, dvs alla pågående processer kommer att använda CPU lika.
  • Denna schemaläggningsmetod improviserar också den genomsnittliga svarstiden.
  • Preemptive Scheduling är fördelaktigt när vi använder det för multiprogrammeringsmiljön.

Fördelar med icke-förebyggande schemaläggning

Här är fördelar/fördelar med den icke-förebyggande schemaläggningsmetoden:

  • Erbjuder låga schemaläggningskostnader
  • Tenderar att erbjuda hög genomströmning
  • Det är begreppsmässigt mycket enkel metod
  • Less beräkningsresurser som behövs för schemaläggning

Nackdelar med förebyggande schemaläggning

Följande är nackdelarna med förebyggande schemaläggning:

  • Behöver begränsade beräkningsresurser för schemaläggning
  • Det tar längre tid av schemaläggaren att avbryta den pågående uppgiften, byta kontext och skicka den nya inkommande uppgiften.
  • Processen som har låg prioritet behöver vänta längre tid om några högprioriterade processer kommer kontinuerligt.

Nackdelar med icke-förebyggande schemaläggning

Här är nackdelar/nackdelar med den icke-förebyggande schemaläggningsmetoden:

  • Det kan leda till svält, särskilt för dessa realtidsuppgifter
  • Buggar kan få en maskin att frysa
  • Det kan göra realtid och prioriterad schemaläggning svårt
  • Dålig responstid för processer

Exempel på icke-förebyggande schemaläggning

I icke-förebyggande SJF-schemaläggning, när CPU-cykeln är allokerad till process, håller processen den tills den når ett vänteläge eller avslutas.

Betrakta följande fem processer som var och en har sin egen unika skurtid och ankomsttid.

Processkö Sprängtid Ankomst tid
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Steg 0) Vid tid = 0 kommer P4 och startar exekvering.

Exempel på icke-förebyggande schemaläggning

Steg 1) Vid tidpunkten = 1 anländer Process P3. Men P4 behöver fortfarande 2 exekveringsenheter att slutföra. Det kommer att fortsätta att utföras.

Exempel på icke-förebyggande schemaläggning

Steg 2) Vid tidpunkten =2 anländer process P1 och läggs till i väntekön. P4 kommer att fortsätta köra.

Exempel på icke-förebyggande schemaläggning

Steg 3) Vid tidpunkten = 3 kommer process P4 att avsluta sin exekvering. Bursttiden för P3 och P1 jämförs. Process P1 exekveras eftersom dess skurtid är kortare jämfört med P3.

Exempel på icke-förebyggande schemaläggning

Steg 4) Vid tidpunkten = 4 anländer process P5 och läggs till i väntekön. P1 kommer att fortsätta köra.

Exempel på icke-förebyggande schemaläggning

Steg 5) Vid tidpunkten = 5 anländer process P2 och läggs till i väntekön. P1 kommer att fortsätta köra.

Exempel på icke-förebyggande schemaläggning

Steg 6) Vid tidpunkten = 9 kommer process P1 att avsluta sin exekvering. Bursttiden för P3, P5 och P2 jämförs. Process P2 exekveras eftersom dess skurtid är den lägsta.

Exempel på icke-förebyggande schemaläggning

Steg 7) Vid tidpunkten=10 exekveras P2 och P3 och P5 står i väntekön.

Exempel på icke-förebyggande schemaläggning

Steg 8) Vid tidpunkten = 11 kommer process P2 att avsluta sin exekvering. Bursttiden för P3 och P5 jämförs. Process P5 exekveras eftersom dess skurtid är lägre.

Exempel på icke-förebyggande schemaläggning

Steg 9) Vid tidpunkten = 15 kommer process P5 att avsluta sin exekvering.

Exempel på icke-förebyggande schemaläggning

Steg 10) Vid tidpunkten = 23 kommer process P3 att avsluta sin exekvering.

Exempel på icke-förebyggande schemaläggning

Steg 11) Låt oss beräkna den genomsnittliga väntetiden för ovanstående exempel.

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

Exempel på förebyggande schemaläggning

Tänk på detta efter tre processer i Round-robin

Processkö Sprängtid
P1 4
P2 3
P3 5

Exempel på förebyggande schemaläggning

Steg 1) Exekveringen börjar med process P1, som har bursttid 4. Här körs varje process i 2 sekunder. P2 och P3 står fortfarande i väntekön.

Exempel på förebyggande schemaläggning

steg 2) Vid tiden =2 läggs P1 till i slutet av kön och P2 börjar exekvera

Exempel på förebyggande schemaläggning

Steg 3) Vid tid=4 är P2 förebyggd och lägg till i slutet av kön. P3 börjar köras.

Exempel på förebyggande schemaläggning

Steg 4) Vid tid=6 är P3 förebyggd och lägg till i slutet av kön. P1 börjar köras.

Exempel på förebyggande schemaläggning

Steg 5) Vid tid=8 har P1 en skurtid på 4. Den har avslutat exekveringen. P2 börjar köras

Exempel på förebyggande schemaläggning

Steg 6) P2 har en skurtid på 3. Den har redan körts i 2 intervaller. Vid tidpunkten=9, avslutar P2 exekveringen. Sedan startar P3 exekvering tills den är klar.

Exempel på förebyggande schemaläggning

Steg 7) Låt oss beräkna den genomsnittliga väntetiden för ovanstående exempel.

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