Algorithme til prioriteringsplanlægning: Forebyggende, ikke-forebyggende EKSEMPEL
Hvad er prioritetsplanlægning?
Prioritetsplanlægning er en metode til at planlægge processer, der er baseret på prioritet. I denne algoritme vælger planlæggeren de opgaver, der skal fungere efter prioritet.
Processerne med højere prioritet bør udføres først, hvorimod jobs med lige prioritet udføres på round-robin eller FCFS-basis. Prioritet afhænger af hukommelseskrav, tidskrav osv.
Typer af prioritetsplanlægning
Prioritetsplanlægning opdelt i to hovedtyper:
Forebyggende planlægning
I Preemptive Scheduling er opgaverne for det meste 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. Opgaven med lavere prioritet holder i nogen tid og genoptages, når opgaven med højere prioritet afslutter sin udførelse.
Ikke-forebyggende planlægning
I denne type planlægningsmetode er CPU'en blevet allokeret til en specifik proces. Processen, der holder CPU'en optaget, vil frigive 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 speciel hardware (for eksempel en timer) som forebyggende planlægning.
Karakteristika for prioritetsplanlægning
- En CPU-algoritme, der planlægger processer baseret på prioritet.
- Det brugt i Operatingssystemer til udførelse af batchprocesser.
- Hvis to job med samme prioritet er KLAR, virker det på en FØRST TIL MØLLE FÅR FØRST MALET grundlag.
- Ved prioriteringsplanlægning tildeles et nummer til hver proces, der angiver dens prioritetsniveau.
- Sænk tallet, højere er prioritet.
- I denne type planlægningsalgoritme, hvis en nyere proces ankommer, som har en højere prioritet end den aktuelt kørende proces, så er den aktuelt kørende proces foregrebet.
Eksempel på prioritetsplanlægning
Overvej at følge fem processer P1 til P5. Hver proces har sin unikke prioritet, bursttid og ankomsttid.
Proces | Prioritet | Burst tid | Ankomsttid |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Trin 0) Ved tid=0 ankommer proces P1 og P2. P1 har højere prioritet end P2. Udførelsen begynder med proces P1, som har bursttid 4.
Trin 1) På time=1 kommer der ingen ny proces. Udførelsen fortsætter med P1.
Trin 2) Til tidspunkt 2 kommer der ingen ny proces, så du kan fortsætte med P1. P2 står i ventekøen.
Trin 3) På tidspunkt 3 kommer der ingen ny proces, så du kan fortsætte med P1. P2-processen er stadig i ventekøen.
Trin 4) På tidspunkt 4 er P1 færdig med sin udførelse. P2 starter udførelse.
Trin 5) Til tiden = 5 kommer der ingen ny proces, så vi fortsætter med P2.
Trin 6) Ved tiden=6 ankommer P3. P3 har højere prioritet (1) sammenlignet med P2 med prioritet (2). P2 er foregrebet, og P3 begynder sin udførelse.
Proces | Prioritet | Burst tid | Ankomsttid |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ud af 3 afventer | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Trin 7) Kl tid 7 kommer der ingen ny proces, så vi fortsætter med P3. P2 står i ventekøen.
Trin 8) Til tiden = 8 kommer der ingen ny proces, så vi kan fortsætte med P3.
Trin 9) Til tiden = 9 kommer der ingen ny proces, så vi kan fortsætte med P3.
Trin 10) Ved tidsinterval 10 kommer der ingen ny proces, så vi fortsætter med P3
Trin 11) På tidspunktet=11 ankommer P4 med prioritet 4. P3 har højere prioritet, så den fortsætter sin udførelse.
Proces | Prioritet | Burst tid | Ankomsttid |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ud af 3 afventer | 0 |
P3 | 1 | 2 ud af 7 afventer | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Trin 12) Klokken=12 ankommer P5. P3 har højere prioritet, så den fortsætter eksekveringen.
Trin 13) Ved tidspunkt = 13 fuldfører P3 udførelsen. Vi har P2,P4,P5 i klar kø. P2 og P5 har samme prioritet. Ankomsttid for P2 er før P5. Så P2 begynder at udføre.
Proces | Prioritet | Burst tid | Ankomsttid |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1 ud af 3 afventer | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Trin 14) På tidspunktet =14 har P2-processen afsluttet sin udførelse. P4 og P5 er i ventetilstand. P5 har højeste prioritet og starter udførelse.
Trin 15) Ved tiden =15 fortsætter P5 eksekveringen.
Trin 16) Ved tid = 16 er P5 færdig med sin udførelse. P4 er den eneste proces tilbage. Det starter udførelsen.
Trin 17) På tidspunktet =20 har P5 afsluttet eksekveringen, og der er ingen proces tilbage.
Trin 18) Lad os beregne den gennemsnitlige ventetid for ovenstående eksempel.
Ventetid = starttidspunkt – ankomsttid + ventetid til næste burst
P1 = o - o = o P2 =4 - o + 7 =11 P3= 6-6=0 P4= 16-11=5 Average Waiting time = (0+11+0+5+2)/5 = 18/5= 3.6
Fordele ved prioriteringsplanlægning
Her er fordele/fordele ved at bruge prioriteret planlægningsmetode:
- Nem at bruge planlægningsmetode
- Processer udføres på basis af prioritet, så høj prioritet behøver ikke at vente længe, hvilket sparer tid
- Denne metode giver en god mekanisme, hvor den relative betydning af hver proces kan defineres præcist.
- Velegnet til applikationer med svingende tids- og ressourcekrav.
Ulemper ved prioriteringsplanlægning
Her er ulemper/ulemper ved prioriteringsplanlægning
- Hvis systemet til sidst går ned, går alle lavprioritetsprocesser tabt.
- Hvis processer med høj prioritet tager meget CPU-tid, kan de lavere prioritetsprocesser sulte og blive udskudt på ubestemt tid.
- Denne planlægningsalgoritme kan lade nogle lavprioritetsprocesser vente på ubestemt tid.
- En proces vil blive blokeret, når den er klar til at køre, men skal vente på CPU'en, fordi en anden proces kører i øjeblikket.
- Hvis en ny højere prioritet proces bliver ved med at komme i klarkøen, kan processen, som er i ventetilstand, være nødt til at vente i lang tid.
Resumé
- Prioritetsplanlægning er en metode til planlægning af processer, der er baseret på prioritet. I denne algoritme vælger planlæggeren de opgaver, der skal fungere efter prioritet.
- I Priority Preemptive Scheduling er opgaverne for det meste tildelt deres prioriteter.
- I Priority Non-preemptive planlægningsmetoden er CPU'en blevet allokeret til en specifik proces.
- Processer udføres på basis af prioritet, så høj prioritet behøver ikke at vente længe, hvilket sparer tid
- Hvis processer med høj prioritet tager meget CPU-tid, kan de lavere prioritetsprocesser sulte og blive udskudt på ubestemt tid.