Hvad er præventiv planlægning?
Forebyggende planlægning er en planlægningsmetode, hvor opgaverne for det meste tildeles deres prioriteter. Nogle gange er det vigtigt at køre en opgave med en højere prioritet før en anden opgave med lavere prioritet, selvom opgaven med lavere prioritet stadig kører.
På det tidspunkt holder opgaven med lavere prioritet et stykke tid og genoptages, når opgaven med højere prioritet er færdig med udførelsen.
I denne operativsystemvejledning lærer du:
- Hvad er præventiv planlægning?
- Hvad er ikke-forebyggende planlægning?
- Forskellen mellem præemptiv og ikke-præemptiv planlægning i OS
- Fordele ved præventiv planlægning
- Fordele ved ikke-forebyggende planlægning
- Ulemper ved præventiv planlægning
- Ulemper ved ikke-forebyggende planlægning
- Eksempel på ikke-forebyggende planlægning
- Eksempel på forebyggende planlægning
Hvad er ikke-forebyggende planlægning?
I denne type planlægningsmetode er CPU'en allokeret til en bestemt 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 sker, når en proces frivilligt går ind i ventetilstanden eller afsluttes.
Forskellen mellem præemptiv og ikke-præemptiv planlægning i OS
Her er præemptive og non-preventive planlægning i OS
Forebyggende planlægning | Ikke-forebyggende planlægning |
En processor kan forhindres i 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 anden udføres. Det kan ikke pauses i midten. |
CPU-udnyttelse er mere effektiv sammenlignet med ikke-forebyggende planlægning. | CPU-udnyttelse er mindre effektiv sammenlignet med forebyggende planlægning. |
Ventetid og svartid på forebyggende planlægning er mindre. | Ventetid og svartid for den ikke-forebyggende planlægningsmetode er højere. |
Forebyggende planlægning prioriteres. Den højeste prioritetsproces er en proces, der i øjeblikket anvendes. | Når en proces går ind i kørselstilstanden, slettes tilstanden for denne proces aldrig fra planlæggeren, før den er færdig med sit job. |
Forebyggende planlægning er fleksibel. | Ikke-forebyggende planlægning er stiv. |
Eksempler: - Korteste resterende tid først, Round Robin osv. | Eksempler: First Come First Server, Shortest Job First, Priority Scheduling osv. |
Forebyggende planlægningsalgoritme kan foregribes, dvs. processen kan planlægges | I ikke-forebyggende planlægningsproces kan ikke planlægges |
I denne proces tildeles CPU'en processerne i en bestemt tidsperiode. | I denne proces allokeres CPU til processen, indtil den afsluttes eller skifter til ventetilstand. |
Forebyggende algoritme har overhead at skifte processen fra klar tilstand til kørende tilstand og omvendt. | Ikke-forebyggende planlægning har ingen sådan omkostning for at skifte processen fra at køre til klar tilstand. |
Fordele ved præventiv planlægning
Her er fordele / fordele ved præemptiv planlægningsmetode:
- Forebyggende planlægningsmetode er mere robust, så den ene proces kan ikke monopolisere CPU'en
- Valg af løbende opgave genovervejet efter hver afbrydelse.
- Hver begivenhed forårsager afbrydelse af kørende opgaver
- Operativsystemet sørger for, at CPU-brugen er den samme ved alle kørende processer.
- I dette er brugen af CPU den samme, dvs. alle kørende processer vil bruge CPU ligeligt.
- Denne planlægningsmetode improviserer også den gennemsnitlige svartid.
- Forebyggende planlægning er gavnlig, når vi bruger den til multiprogrammeringsmiljøet.
Fordele ved ikke-forebyggende planlægning
Her er fordele / fordele ved ikke-forebyggende planlægningsmetode:
- Tilbyder lave planlægningsomkostninger
- Har tendens til at tilbyde høj kapacitet
- Det er begrebsmæssigt meget enkel metode
- Mindre beregningsressourcer har brug for planlægning
Ulemper ved præventiv planlægning
Her er ulemper / ulempe ved præemptiv planlægningsmetode:
- Brug for begrænsede beregningsressourcer til planlægning
- Det tager højere tid af planlæggeren at suspendere den kørende opgave, skifte kontekst og sende den nye indgående opgave.
- Processen med lav prioritet skal vente i længere tid, hvis nogle højprioritetsprocesser ankommer kontinuerligt.
Ulemper ved ikke-forebyggende planlægning
Her er ulemper / ulempe ved ikke-forebyggende planlægningsmetode:
- Det kan føre til sult, især for disse realtidsopgaver
- Fejl kan få en maskine til at fryse
- Det kan gøre planlægning i realtid og prioritet vanskelig
- 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 følgende fem processer, der hver har sin egen unikke bursttid og ankomsttid.
Processkø | Bursttid | Ankomsttid |
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
Trin 0) På tidspunktet = 0 ankommer P4 og starter udførelsen.
Trin 1) På tidspunktet = 1 ankommer proces P3. Men P4 har stadig brug for 2 udførelsesenheder for at fuldføre. Det vil fortsætte udførelsen.
Trin 2) Ved tid = 2 ankommer proces P1 og føjes til ventekøen. P4 fortsætter udførelsen.
Trin 3) På tidspunktet = 3 afslutter proces P4 dens udførelse. Bursttiden for P3 og P1 sammenlignes. Process P1 udføres, fordi dens bursttid er mindre sammenlignet med P3.
Trin 4) Ved tid = 4 ankommer proces P5 og føjes til ventekøen. P1 fortsætter udførelsen.
Trin 5) På tidspunktet = 5 ankommer proces P2 og føjes til ventekøen. P1 fortsætter udførelsen.
Trin 6) Ved tid = 9 afslutter proces P1 dens udførelse. Bursttiden for P3, P5 og P2 sammenlignes. Process P2 udføres, fordi dens bursttid er den laveste.
Trin 7) På tidspunktet = 10 udføres P2, og P3 og P5 står i ventekøen.
Trin 8) På tidspunktet = 11 afslutter proces P2 dens udførelse. Bursttiden for P3 og P5 sammenlignes. Process P5 udføres, fordi dens bursttid er lavere.
Trin 9) På tidspunktet = 15 afslutter proces P5 sin udførelse.
Trin 10) På tidspunktet = 23 afslutter proces P3 sin udførelse.
Trin 11) Lad os beregne den gennemsnitlige ventetid for ovenstående eksempel.
Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Eksempel på forebyggende planlægning
Overvej dette efter tre processer i Round-robin
Processkø | Bursttid |
P1 | 4 |
P2 | 3 |
P3 | 5 |
Trin 1) Udførelsen begynder med proces P1, som har burst-tid 4. Her udføres hver proces i 2 sekunder. P2 og P3 er stadig i ventekøen.
Trin 2 ) Ved tid = 2 tilføjes P1 til slutningen af køen, og P2 begynder at udføre
Trin 3) På tidspunktet = 4 er P2 forudbestemt og tilføj i slutningen af køen. P3 begynder at udføre.
Trin 4) Ved tid = 6 er P3 forhindret og tilføj i slutningen af køen. P1 begynder at udføre.
Trin 5) På tid = 8 har P1 en burst-tid på 4. Den har afsluttet udførelsen. P2 starter udførelse
Trin 6) P2 har en burst-tid på 3. Den er allerede udført i 2 intervaller. På tidspunktet = 9 fuldfører P2 udførelsen. Derefter starter P3 udførelse, indtil den er afsluttet.
Trin 7) Lad os beregne den gennemsnitlige ventetid for ovenstående eksempel.
Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7
Nøgleforskelle
- I præemptive Scheduling tildeles CPU'en processerne i en bestemt tidsperiode, og ikke-preemptive scheduling CPU allokeres til processen, indtil den afsluttes.
- I forebyggende planlægning skiftes opgaver baseret på prioritet, mens ikke-forebyggende planlægning ingen skift finder sted.
- Forebyggende algoritme har overhead til at skifte processen fra klar tilstand til kørende tilstand, mens ikke-præemptiv planlægning ikke har sådan overhead for at skifte.
- Forebyggende planlægning er fleksibel, mens ikke-forebyggende planlægning er stiv.