Prioriteedi ajastamise algoritm: ennetav, mitteennetav NÄIDE
Mis on prioriteetide ajastamine?
Prioriteetne ajakava on protsesside ajastamise meetod, mis põhineb prioriteedil. Selles algoritmis valib planeerija prioriteedi järgi tööülesanded.
Esmalt tuleks läbi viia kõrgema prioriteediga protsessid, samas kui võrdse prioriteediga tööd tehakse ring- või FCFS-põhiselt. Prioriteet sõltub mälunõuetest, ajanõuetest jne.
Prioriteetse ajastamise tüübid
Prioriteetne ajakava on jagatud kahte põhitüüpi:
Ennetav ajakava
Ennetavas ajastamises määratakse ülesanded enamasti nende prioriteetidega. Mõnikord on oluline käivitada kõrgema prioriteediga ülesanne enne teist madalama prioriteediga ülesannet, isegi kui madalama prioriteediga ülesanne on endiselt töös. Madalama prioriteediga ülesanne kehtib mõnda aega ja jätkub, kui kõrgema prioriteediga ülesanne on täitmise lõpetanud.
Mitteennetav ajakava
Seda tüüpi ajastamismeetodi puhul on CPU määratud kindlale protsessile. Protsess, mis hoiab CPU hõivatud, vabastab CPU kas konteksti vahetades või lõpetades. See on ainus meetod, mida saab erinevate riistvaraplatvormide jaoks kasutada. Seda seetõttu, et see ei vaja spetsiaalset riistvara (näiteks taimerit), nagu ennetav ajastamine.
Prioriteetse ajastamise omadused
- Protsessori algoritm, mis ajastab protsessid prioriteedi alusel.
- Seda kasutati sisse Operapartiiprotsesside teostamise süsteemid.
- Kui kaks sama prioriteediga tööd on VALMIS, töötab see a ESIMENE TULE, ESIMESE TEENINDUS alusel.
- Prioriteedi ajastamises määratakse igale protsessile number, mis näitab selle prioriteedi taset.
- Mida väiksem arv, seda suurem on prioriteet.
- Kui seda tüüpi ajastamisalgoritmi puhul saabub uuem protsess, millel on kõrgem prioriteet kui praegu töötaval protsessil, siis parajasti töötav protsess eelneb.
Prioriteetse ajastamise näide
Kaaluge viie protsessi P1 kuni P5 järgimist. Igal protsessil on ainulaadne prioriteet, sarivõtte aeg ja saabumisaeg.
Protsess | Prioriteet | Purskeaeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Step 0) Ajaga = 0 saabuvad protsess P1 ja P2. P1 prioriteet on kõrgem kui P2. Täitmine algab protsessiga P1, mille sarivõtte aeg on 4.
Step 1) Aeg=1 uut protsessi ei saabu. Täitmine jätkub P1-ga.
Step 2) Ajahetkel 2 uut protsessi ei saabu, nii et saate jätkata P1-ga. P2 on ootejärjekorras.
Step 3) Ajahetkel 3 ei saabu ühtegi uut protsessi, nii et saate jätkata P1-ga. P2 protsess on endiselt ootejärjekorras.
Step 4) Kell 4 on P1 täitmise lõpetanud. P2 alustab täitmist.
Step 5) Kell = 5, uut protsessi ei saabu, seega jätkame P2-ga.
Step 6) Kell = 6, saabub P3. P3 on kõrgema prioriteediga (1) võrreldes P2-ga, millel on prioriteet (2). P2 on ennetatud ja P3 alustab selle täitmist.
Protsess | Prioriteet | Purskeaeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 on ootel | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Samm 7) Kell kell 7, uut protsessi ei saabu, seega jätkame P3-ga. P2 on ootejärjekorras.
Step 8) Kell = 8, uut protsessi ei saabu, seega saame jätkata P3-ga.
Step 9) Kell = 9, uut protsessi ei tule, nii et saame jätkata P3-ga.
Step 10) Ajavahemikul 10 uut protsessi ei tule, seega jätkame P3-ga
Step 11) Kell = 11, saabub P4 prioriteediga 4. P3 on kõrgema prioriteediga, seega jätkab täitmist.
Protsess | Prioriteet | Purskeaeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 on ootel | 0 |
P3 | 1 | 2/7 on ootel | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Step 12) Kell = 12, saabub P5. P3-l on kõrgem prioriteet, nii et see jätkab täitmist.
Step 13) Kell = 13, lõpetab P3 täitmise. Meil on P2, P4, P5 valmis järjekorras. P2 ja P5 on võrdse prioriteediga. P2 saabumisaeg on enne P5. Nii et P2 alustab täitmist.
Protsess | Prioriteet | Purskeaeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 on ootel | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Step 14) Ajahetkel =14 on protsess P2 oma täitmise lõpetanud. P4 ja P5 on ooteolekus. P5 on kõrgeima prioriteediga ja alustab täitmist.
Step 15) Ajahetkel =15 jätkab P5 täitmist.
Step 16) Kell = 16, on P5 täitmine lõpetatud. P4 on ainus protsess. See alustab täitmist.
Step 17) Ajahetkel =20 on P5 täitmise lõpetanud ja ühtegi protsessi pole jäänud.
Step 18) Arvutame ülaltoodud näite jaoks keskmise ooteaja.
Ooteaeg = algusaeg – saabumisaeg + järgmise saristuse ooteaeg
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
Prioriteetse ajastamise eelised
Siin on prioriteetse ajastamise meetodi kasutamise eelised/plussid:
- Lihtne kasutada ajakava meetodit
- Protsessid teostatakse prioriteedi alusel, nii et kõrge prioriteet ei pea kaua ootama, mis säästab aega
- See meetod annab hea mehhanismi, kus saab täpselt määratleda iga protsessi suhtelise tähtsuse.
- Sobib rakendustele, mille aja- ja ressursivajadused on kõikuvad.
Prioriteetse ajastamise miinused
Siin on prioriteetse ajastamise miinused / puudused
- Kui süsteem lõpuks kokku jookseb, lähevad kõik madala prioriteediga protsessid kaotsi.
- Kui kõrge prioriteediga protsessid võtavad palju protsessori aega, võivad madalama prioriteediga protsessid nälga jääda ja need lükatakse määramata ajaks edasi.
- See ajastamisalgoritm võib jätta mõned madala prioriteediga protsessid määramata ajaks ootama.
- Protsess blokeeritakse, kui see on tööks valmis, kuid peab ootama CPU-d, kuna praegu töötab mõni muu protsess.
- Kui valmisjärjekorda tuleb pidevalt uus kõrgema prioriteediga protsess, võib ooteolekus olev protsess vajada pikka aega ootamist.
kokkuvõte
- Prioriteetne ajastamine on protsesside ajastamise meetod, mis põhineb prioriteedil. Selles algoritmis valib planeerija prioriteedi järgi tööülesanded.
- Prioriteedi ennetavas plaanimises määratakse ülesanded enamasti koos nende prioriteetidega.
- Prioriteetse mitteennetava ajastamise meetodi puhul on CPU määratud konkreetsele protsessile.
- Protsessid teostatakse prioriteedi alusel, nii et kõrge prioriteet ei pea kaua ootama, mis säästab aega
- Kui kõrge prioriteediga protsessid võtavad palju protsessori aega, võivad madalama prioriteediga protsessid nälga jääda ja need lükatakse määramata ajaks edasi.