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.
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.
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.
Steg 2) Vid tidpunkten =2 anländer process P1 och läggs till i väntekön. P4 kommer att fortsätta köra.
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.
Steg 4) Vid tidpunkten = 4 anländer process P5 och läggs till i väntekön. P1 kommer att fortsätta köra.
Steg 5) Vid tidpunkten = 5 anländer process P2 och läggs till i väntekön. P1 kommer att fortsätta köra.
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.
Steg 7) Vid tidpunkten=10 exekveras P2 och P3 och P5 står i väntekön.
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.
Steg 9) Vid tidpunkten = 15 kommer process P5 att avsluta sin exekvering.
Steg 10) Vid tidpunkten = 23 kommer process P3 att avsluta sin exekvering.
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 |
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.
steg 2) Vid tiden =2 läggs P1 till i slutet av kön och P2 börjar exekvera
Steg 3) Vid tid=4 är P2 förebyggd och lägg till i slutet av kön. P3 börjar köras.
Steg 4) Vid tid=6 är P3 förebyggd och lägg till i slutet av kön. P1 börjar köras.
Steg 5) Vid tid=8 har P1 en skurtid på 4. Den har avslutat exekveringen. P2 börjar köras
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.
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