Mis on prioriteetide ajastamine?
Prioriteediajastus on protsesside ajastamise meetod, mis põhineb prioriteedil. Selles algoritmis valib ajakava prioriteedina toimivad ülesanded.
Kõigepealt tuleks läbi viia suurema prioriteediga protsessid, samal ajal kui võrdsete prioriteetidega töökohad viiakse läbi ümmarguse või FCFS-i alusel. Prioriteet sõltub mälunõuetest, ajavajadusest jne.
Selles opsüsteemi õpetuses saate teada:
- Mis on prioriteetne ajastamine?
- Prioriteetsete ajastuste tüübid
- Prioriteetse ajakava iseloomustus
- Näide prioriteetsest ajastamisest
- Prioriteetse ajastamise eelised
- Prioriteetse ajastamise puudused
Prioriteetsete ajastuste tüübid
Prioriteetne ajakava jaguneb kaheks põhitüübiks:
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 endiselt töötab. Madalama prioriteediga ülesanne kehtib mõnda aega ja jätkub siis, kui kõrgema prioriteediga ülesanne on selle täitmise lõpetanud.
Mittepreemektiivne ajastamine
Seda tüüpi ajastamismeetodis on protsessor eraldatud konkreetsele protsessile. Protsess, mis hoiab protsessorit hõivatud, vabastab protsessori kas konteksti vahetades või lõpetades. See on ainus meetod, mida saab kasutada erinevate riistvara platvormide jaoks. Seda seetõttu, et see ei vaja erilist riistvara (näiteks taimerit), nagu ennetav ajakava.
Prioriteetse ajakava iseloomustus
- CPU algoritm, mis ajastab protsessid prioriteedi alusel.
- Seda kasutati operatsioonisüsteemides pakettprotsesside läbiviimiseks.
- Kui kaks sama prioriteediga tööd on VALMIS, töötab see ESIMESE TULEMISE, ESIMENE TEENINDAMISE põhimõttel.
- Prioriteedi ajastamisel määratakse igale protsessile number, mis näitab selle prioriteeditaset.
- Madalam arv, suurem on prioriteet.
- Seda tüüpi ajastamisalgoritmi korral, kui saabub uuem protsess, millel on suurem prioriteet kui praegu käimasoleval protsessil, siis praegu töötav protsess on ennustatud.
Näide prioriteetsest ajastamisest
Mõelge viie protsessi P1 kuni P5 järgimisele. Igal protsessil on oma ainulaadne prioriteet, purskeaeg ja saabumisaeg.
Protsess | Prioriteet | Plahvatuse aeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Samm 0) Ajal = 0 saabuvad protsessid P1 ja P2. P1 on kõrgema prioriteediga kui P2. Käivitamine algab protsessiga P1, mille purskeaeg on 4.
Samm 1) Ajal = 1 ei saabu uut protsessi. Täitmine jätkub P1-ga.
2. samm. 2. ajal uut protsessi ei saabu, nii et saate jätkata P1-ga. P2 on ootejärjekorras.
Samm 3) Ajal 3 ei saabu uut protsessi, nii et saate jätkata P1-ga. P2 protsess on endiselt ootejärjekorras.
Samm 4) Ajal 4 on P1 oma täitmise lõpetanud. P2 alustab täitmist.
Samm 5) Ajal = 5 uut protsessi ei saabu, seega jätkame P2-ga.
Samm 6) Ajal = 6 saabub P3. P3 on kõrgema prioriteediga (1) võrreldes prioriteediga P2 (2). P2 on ennustatud ja P3 alustab selle täitmist.
Protsess | Prioriteet | Plahvatuse aeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 ootel | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Samm 7) Ajal 7 ei saabu uut protsessi, seega jätkame P3-ga. P2 on ootejärjekorras.
8. samm. Ajal = 8 uut protsessi ei saabu, nii et saame jätkata P3-ga.
Samm 9) Ajal = 9 ei tule uut protsessi, et saaksime jätkata P3-ga.
10. samm. Ajavahemiku 10 ajal uut protsessi ei tule, seega jätkame P3-ga
Samm 11) Ajal = 11 saabub P4 prioriteediga 4. P3 on kõrgema prioriteediga, nii et see jätkab oma käivitamist.
Protsess | Prioriteet | Plahvatuse aeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 ootel | 0 |
P3 | 1 | 2 seitsmest ootel | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
12. samm) Ajal = 12 saabub P5. P3-l on kõrgem prioriteet, nii et see jätkab käivitamist.
Samm 13) Ajahetkel = 13 lõpetab P3 täitmise. Meil on järjekorras P2, P4, P5. P2 ja P5 on võrdse prioriteediga. P2 saabumisaeg on enne P5. Nii et P2 alustab täitmist.
Protsess | Prioriteet | Plahvatuse aeg | Saabumise aeg |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 ootel | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Samm 14) Ajahetkel = 14 on protsess P2 oma täitmise lõpetanud. P4 ja P5 on ooteseisundis. P5 on kõrgeima prioriteediga ja alustab käivitamist.
Samm 15) Ajal = 15 jätkab P5 täitmist.
Samm 16) Ajal = 16 on P5 selle täitmisega lõpetatud. P4 on ainus järelejäänud protsess. See alustab täitmist.
Samm 17) Ajal = 20 on P5 täitmine lõpetatud ja protsessi pole jäänud.
18. samm. Arvutame ülaltoodud näite keskmise ooteaja.
Ooteaeg = algusaeg - saabumisaeg + järgmise plahvatuse ooteaeg
P1 = o - o = oP2 =4 - o + 7 =11P3= 6-6=0P4= 16-11=5Average 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 ajastamismeetodit
- Protsessid viiakse läbi prioriteedi alusel, nii et kõrge prioriteet ei pea kaua ootama, mis säästab aega
- See meetod annab hea mehhanismi, kus iga protsessi suhtelise tähtsuse saab täpselt määratleda.
- Sobib kõikuvate aja- ja ressursinõuetega rakendustele.
Prioriteetse ajastamise puudused
Siin on prioriteedi ajastamise miinused / puudused
- Kui süsteem lõpuks kokku jookseb, lähevad kõik madala prioriteediga protsessid kaduma.
- 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 lõputult ootama.
- Protsess blokeeritakse, kui see on töötamiseks valmis, kuid peab ootama protsessorit, kuna praegu töötab mõni muu protsess.
- Kui uus kõrgema prioriteediga protsess jätkub valmisjärjekorras, võib ootel olekus olev protsess oodata pikka aega.
Kokkuvõte:
- Prioriteedi ajastamine on protsesside ajastamise meetod, mis põhineb prioriteedil. Selles algoritmis valib ajakava prioriteedina toimivad ülesanded.
- Prioriteetses ennetavas ajakavas määratakse ülesanded enamasti nende prioriteetidega.
- Prioriteetses mittepreuptiivses ajastamismeetodis on protsessor eraldatud konkreetsele protsessile.
- Protsessid viiakse läbi 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.