Mis on ennetav ajakava?
Preemptive Scheduling on ajastamismeetod, kus ülesanded määratakse 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.
Sel ajal kehtib madalama prioriteediga ülesanne mõnda aega ja see jätkub, kui kõrgema prioriteediga ülesanne on selle täitmise lõpetanud.
Selles opsüsteemi õpetuses saate teada:
- Mis on ennetav ajakava?
- Mis on ennetamatu ajakava?
- Erinevus OS-i ennetava ja mitte-eelistatava ajastamise vahel
- Ennetava ajastamise eelised
- Ennetava planeerimise eelised
- Ennetava ajakava puudused
- Mittepreformatiivse ajakava puudused
- Näide mitte-ennetavast ajastamisest
- Näide ennetavast ajastamisest
Mis on ennetamatu ajakava?
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 spetsiaalset riistvara (näiteks taimerit), nagu ennetav ajakava.
Mittenõuetekohane ajastamine toimub siis, kui protsess siseneb vabatahtlikult ooteseisundisse või lõpeb.
Erinevus OS-i ennetava ja mitte-eelistatava ajastamise vahel
Siin on OS-i ennetav ja mitte-eelistatud ajakava
Ennetav ajakava | Ennetav ajakava |
Protsessoril võib olla õigus erinevate protsesside käivitamiseks mis tahes protsesside praeguse täitmise keskel. | Kui protsessor käivitab, peab ta selle enne teise käivitamist lõpetama. Keskelt ei saa seda peatada. |
Protsessori kasutamine on tõhusam võrreldes mittepreemendilise ajakavaga. | Protsessori kasutamine on vähem efektiivne võrreldes ennetava ajakavaga. |
Ennetava ajastamise ooteaeg ja reageerimisaeg on lühemad. | Mitte-ennetava ajastamise meetodi ooteaeg ja reageerimisaeg on pikemad. |
Eelistatav ajakava on prioriteet. Kõrgeima prioriteediga protsess on protsess, mida praegu kasutatakse. | Kui mõni protsess siseneb töötamise olekusse, ei kustutata selle protsessi olekut ajastajalt enne, kui see on oma töö lõpetanud. |
Ennetav ajakava on paindlik. | Mittepreivatiivne ajakava on jäik. |
Näited: - kõigepealt lühim järelejäänud aeg, ring Robin jne | Näited: Esimesena tulek, esimene teenimine, lühim töö kõigepealt, prioriteetide ajastamine jne. |
Preemptive Scheduling algoritmi saab ära hoida, see tähendab protsessi saab ajastada | Mitte-ennetava ajastamise korral ei saa ajakava planeerida |
Selles protsessis eraldatakse protsessor protsessidele teatud ajaperioodiks. | Selles protsessis eraldatakse protsessor protsessorile, kuni see lõpetab või lülitub ooteseisundisse. |
Ennetaval algoritmil on protsessi üleminek valmisolekust tööolekusse ja vastupidi. | Mittepreivatiivsel ajastamisel ei ole sellist protsessiülekande üleminekut valmisolekusse lülitamisest. |
Ennetava ajastamise eelised
Siin on ennetava ajastamise meetodi plussid / eelised:
- Ennetav ajastamismeetod on kindlam lähenemisviis, nii et üks protsess ei saa protsessorit monopoliseerida
- Pärast iga katkestust vaadatakse jooksva ülesande valik uuesti läbi.
- Iga sündmus põhjustab jooksvate ülesannete katkestuse
- Operatsioonisüsteem tagab, et protsessori kasutamine oleks kogu käimasoleva protsessi puhul sama.
- Selles protsessori kasutamine on sama, st kõik käimasolevad protsessid kasutavad protsessorit võrdselt.
- See ajastamismeetod parandab ka keskmist reageerimisaega.
- Ennetav ajastamine on kasulik, kui kasutame seda mitme programmeerimise keskkonnas.
Ennetava planeerimise eelised
Siin on mittepreemptive planeerimise meetodi plussid / eelised:
- Pakub madalat ajakava üldkulusid
- Kipub pakkuma suurt läbilaskvust
- See on kontseptuaalselt väga lihtne meetod
- Planeerimise jaoks on vaja vähem arvutuslikke ressursse
Ennetava ajakava puudused
Siin on ennetava ajastamise meetodi miinused / puudused:
- Vajad ajakava koostamiseks piiratud arvutuslikke ressursse
- Planeerija võtab töötava ülesande peatamiseks, konteksti vahetamiseks ja uue sissetuleva ülesande saatmiseks suurema aja.
- Madala prioriteediga protsess peab ootama kauem, kui mõni kõrge prioriteediga protsess saabub pidevalt.
Mittepreformatiivse ajakava puudused
Siin on mittenõuetekohase ajastamise meetodi miinused / puudused:
- See võib põhjustada näljahäda, eriti nende reaalajas toimuvate ülesannete täitmisel
- Vead võivad põhjustada masina külmumise
- See võib muuta reaalajas ja prioriteetide ajastamise keerukaks
- Kehv reageerimisaeg protsessidele
Näide mitte-ennetavast ajastamisest
Mitte-ennetava SJF-i ajastamise korral hoiab protsessor pärast protsessori tsükli eraldamist protsessis seda kuni ooteseisundini jõudmiseni või lõpetamiseni.
Mõelge järgmisele viiel protsessil, millel on oma ainulaadne purskeaeg ja saabumisaeg.
Protsessi järjekord | Plahvatuse aeg | Saabumise aeg |
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
Samm 0) Ajal = 0 saabub P4 ja alustab täitmist.
Samm 1) Ajal = 1 saabub protsess P3. Kuid P4 vajab veel 2 täitmisüksust. See jätkab hukkamist.
Samm 2) Ajal = 2 saabub protsess P1 ja see lisatakse ootejärjekorda. P4 jätkab täitmist.
Samm 3) Ajal = 3 lõpetab protsess P4 selle käivitamise. Võrreldakse P3 ja P1 purskeaega. Protsess P1 viiakse läbi, kuna selle purskeaeg on väiksem kui P3.
Samm 4) Ajal = 4 saabub protsess P5 ja see lisatakse ootejärjekorda. P1 jätkab täitmist.
Samm 5) Ajal = 5 saabub protsess P2 ja see lisatakse ootejärjekorda. P1 jätkab täitmist.
Samm 6) Ajal = 9 lõpetab protsess P1 selle käivitamise. Võrreldakse P3, P5 ja P2 purskeaega. Protsess P2 käivitatakse, kuna selle purskeaeg on kõige väiksem.
Samm 7) Ajahetkel = 10 teostab P2 ning P3 ja P5 on ootejärjekorras.
8. samm. Ajal = 11 lõpetab protsess P2 selle täitmise. Võrreldakse P3 ja P5 purskeaega. Protsess P5 käivitatakse, kuna selle purskeaeg on väiksem.
Samm 9) Ajal = 15 lõpetab protsess P5 selle käivitamise.
Samm 10) Ajal = 23 lõpetab protsess P3 selle käivitamise.
Samm 11) Arvutame ülaltoodud näite keskmise ooteaja.
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
Näide ennetavast ajastamisest
Mõelge sellele järgmisele kolmele ring-robin protsessile
Protsessi järjekord | Plahvatuse aeg |
P1 | 4 |
P2 | 3 |
P3 | 5 |
Samm 1) Käivitamine algab protsessiga P1, millel on plahvatusaeg 4. Siin käivitatakse iga protsess 2 sekundit. P2 ja P3 on endiselt ootejärjekorras.
Samm 2 ) Ajal = 2 lisatakse järjekorra lõppu P1 ja P2 hakkab käivitama
Samm 3) Ajal = 4 ennetatakse P2 ja lisatakse see järjekorra lõppu. P3 hakkab käivitama.
Samm 4) Ajahetkel = 6 ennetatakse P3 ja lisatakse see järjekorra lõppu. P1 hakkab käivitama.
Samm 5) Ajal = 8 on P1 purskeaeg 4. See on täitmise lõpetanud. P2 alustab täitmist
Samm 6) P2 plahvatusaeg on 3. See on juba 2 intervalli jooksul käivitatud. Ajal = 9 lõpetab P2 täitmise. Seejärel alustab P3 täitmist, kuni see lõpeb.
7. samm. Arvutame ülaltoodud näite keskmise ooteaja.
Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7
PÕHISED VAHED
- Preemptive Scheduling'is eraldatakse protsessor protsessidele teatud ajaperioodiks ja mittepreemptive'i ajastamise protsessor eraldatakse protsessile, kuni see lõpeb.
- Preemptive Scheduling'is vahetatakse ülesanded prioriteedi alusel, samal ajal kui mitte-Preemptive Schedulign ei toimu vahetamist.
- Ennetaval algoritmil on protsessi üleminek valmisolekust jooksvaks olekuks, samal ajal kui mittepreempektiivsel ajastamisel sellist üleminekut ei ole.
- Ennetav ajakava on paindlik, mitte-ennetav ajakava on jäik.