Algoritme for prioriteringsplanlegging: Forebyggende, ikke-forebyggende EKSEMPEL
Hva er prioritert planlegging?
Prioritetsplanlegging er en metode for å planlegge prosesser som er basert på prioritering. I denne algoritmen velger planleggeren oppgavene som skal fungere i henhold til prioritet.
Prosessene med høyere prioritet bør utføres først, mens jobber med lik prioritering utføres på rundkjørings- eller FCFS-basis. Prioritet avhenger av minnekrav, tidskrav osv.
Typer prioritert planlegging
Prioritetsplanlegging delt inn i to hovedtyper:
Forebyggende planlegging
I Preemptive Scheduling er oppgavene stort sett tildelt deres prioriteringer. Noen ganger er det viktig å kjøre en oppgave med høyere prioritet før en annen lavere prioritet oppgave, selv om den lavere prioriterte oppgaven fortsatt kjører. Den lavere prioriterte oppgaven varer i en stund og fortsetter når den høyere prioriterte oppgaven er ferdig.
Ikke-forebyggende planlegging
I denne typen planleggingsmetode har CPU-en blitt allokert til en spesifikk prosess. Prosessen som holder CPU-en opptatt, vil frigjøre CPU-en enten ved å bytte kontekst eller avslutte. Det er den eneste metoden som kan brukes for ulike maskinvareplattformer. Det er fordi det ikke trenger spesiell maskinvare (for eksempel en tidtaker) som forebyggende planlegging.
Kjennetegn ved prioriteringsplanlegging
- En CPU-algoritme som planlegger prosesser basert på prioritet.
- Den brukes i Operasystemer for å utføre batch-prosesser.
- Hvis to jobber med samme prioritet er KLAR, fungerer det på en FØRSTEMANN TIL MØLLA basis.
- Ved prioriteringsplanlegging tildeles et nummer til hver prosess som angir prioritetsnivået.
- Senk tallet, høyere er prioritet.
- I denne typen planleggingsalgoritme, hvis en nyere prosess kommer, som har en høyere prioritet enn prosessen som kjører for øyeblikket, blir prosessen som kjører for øyeblikket, forhåndsaktivert.
Eksempel på prioritert planlegging
Vurder å følge fem prosesser P1 til P5. Hver prosess har sin unike prioritet, eksplosjonstid og ankomsttid.
| Prosess | Prioritet | Sprengtid | Ankomsttid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 3 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Trinn 0) Ved tid=0 kommer prosess P1 og P2. P1 har høyere prioritet enn P2. Utførelsen begynner med prosess P1, som har bruddtid 4.
Trinn 1) Ved tid=1 kommer ingen ny prosess. Utførelsen fortsetter med P1.
Trinn 2) Ved tidspunkt 2 kommer ingen ny prosess, så du kan fortsette med P1. P2 står i ventekø.
Trinn 3) Ved tidspunkt 3 kommer ingen ny prosess så du kan fortsette med P1. P2-prosessen er fortsatt i ventekø.
Trinn 4) På tid 4 har P1 avsluttet sin utførelse. P2 starter utførelse.
Trinn 5) Ved tid= 5 kommer ingen ny prosess, så vi fortsetter med P2.
Trinn 6) Klokken=6 kommer P3. P3 har høyere prioritet (1) sammenlignet med at P2 har prioritet (2). P2 er forhåndsaktivert, og P3 begynner utførelsen.
| Prosess | Prioritet | Sprengtid | Ankomsttid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 av 3 venter | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Trinn 7) Kl tid 7 kommer ingen ny prosess, så vi fortsetter med P3. P2 står i ventekø.
Trinn 8) Ved tid= 8 kommer ingen ny prosess, så vi kan fortsette med P3.
Trinn 9) Ved tid = 9 kommer ingen ny prosess så vi kan fortsette med P3.
Trinn 10) Ved tidsintervall 10 kommer ingen ny prosess, så vi fortsetter med P3
Trinn 11) Ved tid=11 kommer P4 med prioritet 4. P3 har høyere prioritet, så den fortsetter utføringen.
| Prosess | Prioritet | Sprengtid | Ankomsttid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 av 3 venter | 0 |
| P3 | 1 | 2 av 7 venter | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Trinn 12) Klokken=12 kommer P5. P3 har høyere prioritet, så den fortsetter utførelse.
Trinn 13) Ved tid=13 fullfører P3 utførelsen. Vi har P2,P4,P5 i klar kø. P2 og P5 har lik prioritet. Ankomsttid for P2 er før P5. Så P2 starter utførelse.
| Prosess | Prioritet | Sprengtid | Ankomsttid |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 av 3 venter | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
Trinn 14) Ved tiden =14 har P2-prosessen fullført sin utførelse. P4 og P5 er i ventetilstand. P5 har høyeste prioritet og starter utførelse.
Trinn 15) Ved tiden =15 fortsetter P5 kjøringen.
Trinn 16) Ved tid = 16 er P5 ferdig med utførelse. P4 er den eneste prosessen som gjenstår. Den starter utførelse.
Trinn 17) Ved tiden =20 har P5 fullført utførelse og ingen prosess er igjen.
Trinn 18) La oss beregne gjennomsnittlig ventetid for eksemplet ovenfor.
Ventetid = starttidspunkt – ankomsttid + ventetid for neste utbrudd
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
Fordeler med prioritert planlegging
Her er fordeler/fordeler med å bruke prioritert planleggingsmetode:
- Enkel å bruke planleggingsmetode
- Prosesser utføres på grunnlag av prioritet slik at høy prioritet ikke trenger å vente lenge, noe som sparer tid
- Denne metoden gir en god mekanisme der den relative viktigheten av hver prosess kan defineres nøyaktig.
- Egnet for applikasjoner med varierende tids- og ressursbehov.
Ulemper med prioritert planlegging
Her er ulemper/ulemper med prioriteringsplanlegging
- Hvis systemet til slutt krasjer, går alle lavprioriterte prosesser tapt.
- Hvis prosesser med høy prioritet tar mye CPU-tid, kan de lavere prioriterte prosessene sulte og vil bli utsatt på ubestemt tid.
- Denne planleggingsalgoritmen kan la noen lavprioriterte prosesser vente på ubestemt tid.
- En prosess vil bli blokkert når den er klar til å kjøre, men må vente på CPU fordi en annen prosess kjører for øyeblikket.
- Hvis en ny prosess med høyere prioritet fortsetter å komme i klarkøen, kan det hende at prosessen som er i ventetilstand må vente i lang tid.
Sammendrag
- Prioritetsplanlegging er en metode for å planlegge prosesser som er basert på prioritet. I denne algoritmen velger planleggeren oppgavene som skal fungere i henhold til prioritet.
- I prioritert forebyggende planlegging er oppgavene stort sett tildelt deres prioriteringer.
- I Priority Non-preemptive scheduling-metoden har CPU-en blitt allokert til en spesifikk prosess.
- Prosesser utføres på grunnlag av prioritet slik at høy prioritet ikke trenger å vente lenge, noe som sparer tid
- Hvis prosesser med høy prioritet tar mye CPU-tid, kan de lavere prioriterte prosessene sulte og vil bli utsatt på ubestemt tid.


















