Priority Scheduling Algorithm: Ennaltaehkäisevä, Ei-ennakoiva EXAMPLE
Mitä on tärkeysjärjestys?
Ensisijainen ajoitus on menetelmä prosessien ajoittamiseen, joka perustuu prioriteettiin. Tässä algoritmissa ajoittaja valitsee tehtävät prioriteetin mukaan.
Korkeamman prioriteetin prosessit tulisi suorittaa ensin, kun taas saman prioriteetin työt suoritetaan round-robin- tai FCFS-periaatteella. Prioriteetti riippuu muistivaatimuksista, aikavaatimuksista jne.
Prioriteetin ajoituksen tyypit
Prioriteetin ajoitus on jaettu kahteen päätyyppiin:
Ennakoiva ajoitus
Ennakoivassa ajoituksessa tehtävät jaetaan enimmäkseen niiden prioriteettien mukaan. Joskus on tärkeää suorittaa korkeamman prioriteetin tehtävä ennen toista alhaisemman prioriteetin tehtävää, vaikka alhaisemman prioriteetin tehtävä olisi edelleen käynnissä. Alemman prioriteetin tehtävä on voimassa jonkin aikaa ja jatkuu, kun korkeamman prioriteetin tehtävä on suorittanut loppuun.
Ei-ennakoiva ajoitus
Tämän tyyppisessä ajoitusmenetelmässä CPU on varattu tietylle prosessille. Prosessi, joka pitää CPU:n kiireisenä, vapauttaa CPU:n joko vaihtamalla kontekstia tai lopettamalla sen. Se on ainoa menetelmä, jota voidaan käyttää eri laitteistoalustoilla. Tämä johtuu siitä, että se ei vaadi erityistä laitteistoa (esimerkiksi ajastinta), kuten ennaltaehkäisevää ajoitusta.
Priority Schedulingin ominaisuudet
- CPU-algoritmi, joka ajoittaa prosessit prioriteetin perusteella.
- Sitä käytettiin sisään Operajärjestelmät eräprosessien suorittamiseen.
- Jos kaksi työtä, joilla on sama prioriteetti, on VALMIS, se toimii a PALVELLAAN SAAPUMISJÄRJESTYKSESSÄ perusteella.
- Prioriteetin ajoituksessa kullekin prosessille annetaan numero, joka ilmaisee sen prioriteettitason.
- Mitä pienempi numero, sitä suurempi on prioriteetti.
- Jos tämän tyyppisessä ajoitusalgoritmissa saapuu uudempi prosessi, jolla on korkeampi prioriteetti kuin tällä hetkellä käynnissä olevalla prosessilla, tällä hetkellä käynnissä oleva prosessi estetään.
Esimerkki prioriteetin ajoituksesta
Harkitse viiden prosessin P1 - P5 seuraamista. Jokaisella prosessilla on yksilöllinen prioriteetti, purskeaika ja saapumisaika.
Käsitellä asiaa | prioriteetti | Räjähdysaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 0) Ajankohtana = 0 prosessi P1 ja P2 saapuvat. P1:llä on korkeampi prioriteetti kuin P2:lla. Suoritus alkaa prosessilla P1, jonka purskeaika on 4.
Vaihe 1) Ajankohtana = 1 uutta prosessia ei saavu. Suoritus jatkuu P1:llä.
Vaihe 2) Aikana 2 uutta prosessia ei tule, joten voit jatkaa P1:llä. P2 on odotusjonossa.
Vaihe 3) Aikana 3 uutta prosessia ei tule, joten voit jatkaa P1:llä. P2-prosessi on edelleen odotusjonossa.
Vaihe 4) Ajankohtana 4 P1 on lopettanut suorituksensa. P2 aloittaa suorituksen.
Vaihe 5) Ajankohtana = 5 uutta prosessia ei tule, joten jatkamme P2:lla.
Vaihe 6) Aika = 6, P3 saapuu. P3 on korkeammalla prioriteetilla (1) verrattuna P2:een, jolla on prioriteetti (2). P2 estetään ja P3 aloittaa sen suorittamisen.
Käsitellä asiaa | prioriteetti | Räjähdysaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 vireillä | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 7) Klo aika 7, uutta prosessia ei tule, joten jatkamme P3:lla. P2 on odotusjonossa.
Vaihe 8) Ajankohtana = 8 uutta prosessia ei tule, joten voimme jatkaa P3:lla.
Vaihe 9) Ajankohtana = 9 uutta prosessia ei tule, joten voimme jatkaa P3:lla.
Vaihe 10) Aikavälillä 10 ei tule uutta prosessia, joten jatkamme P3:lla
Vaihe 11) Aika = 11, P4 saapuu prioriteetilla 4. P3:lla on korkeampi prioriteetti, joten se jatkaa suoritustaan.
Käsitellä asiaa | prioriteetti | Räjähdysaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 vireillä | 0 |
P3 | 1 | 2/7 vireillä | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 12) Aika = 12, P5 saapuu. P3:lla on korkeampi prioriteetti, joten se jatkaa suoritusta.
Vaihe 13) Aika = 13, P3 suorittaa suorituksen loppuun. Meillä on P2,P4,P5 valmiusjonossa. P2 ja P5 ovat yhtä tärkeitä. P2:n saapumisaika on ennen P5:tä. Joten P2 aloittaa suorituksen.
Käsitellä asiaa | prioriteetti | Räjähdysaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 vireillä | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 14) Ajankohtana =14 P2-prosessi on lopettanut suorituksensa. P4 ja P5 ovat odotustilassa. P5:llä on korkein prioriteetti ja se aloittaa suorituksen.
Vaihe 15) Ajankohtana =15, P5 jatkaa suoritusta.
Vaihe 16) Ajankohtana = 16, P5 on suoritettu loppuun. P4 on ainoa prosessi jäljellä. Se aloittaa toteutuksen.
Vaihe 17) Ajankohtana =20, P5 on suorittanut suorituksen, eikä prosessia ole jäljellä.
Vaihe 18) Lasketaan keskimääräinen odotusaika yllä olevalle esimerkille.
Odotusaika = aloitusaika - saapumisaika + odotusaika seuraavaan purskeeseen
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
Prioriteetin ajoituksen edut
Tässä on etusija-aikataulutusmenetelmän käytön edut/edut:
- Helppokäyttöinen aikataulutusmenetelmä
- Prosessit suoritetaan prioriteetin perusteella, joten korkean prioriteetin ei tarvitse odottaa kauan, mikä säästää aikaa
- Tämä menetelmä tarjoaa hyvän mekanismin, jossa kunkin prosessin suhteellinen tärkeys voidaan määritellä tarkasti.
- Soveltuu sovelluksiin, joissa aika- ja resurssivaatimukset vaihtelevat.
Prioriteetin ajoituksen haitat
Tässä on prioriteettien ajoituksen haittoja/haittoja
- Jos järjestelmä lopulta kaatuu, kaikki alhaisen prioriteetin prosessit katoavat.
- Jos korkean prioriteetin prosessit vievät paljon CPU-aikaa, alemman prioriteetin prosessit voivat nääntyä ja niitä lykätään määräämättömäksi ajaksi.
- Tämä ajoitusalgoritmi saattaa jättää jotkin matalan prioriteetin prosessit odottamaan määräämättömäksi ajaksi.
- Prosessi estetään, kun se on valmis suoritettavaksi, mutta sen on odotettava CPU:ta, koska jokin muu prosessi on parhaillaan käynnissä.
- Jos uusi korkeamman prioriteetin prosessi tulee jatkuvasti valmiusjonossa, odotustilassa oleva prosessi saattaa joutua odottamaan pitkän ajan.
Yhteenveto
- Prioriteettiajoitus on menetelmä prosessien ajoittamiseen, joka perustuu prioriteettiin. Tässä algoritmissa ajoittaja valitsee tehtävät prioriteetin mukaan.
- Priority Preemptive Scheduling -toiminnossa tehtävät jaetaan enimmäkseen niiden prioriteettien mukaan.
- Priority Non-preemptive -aikataulutusmenetelmässä CPU on varattu tietylle prosessille.
- Prosessit suoritetaan prioriteetin perusteella, joten korkean prioriteetin ei tarvitse odottaa kauan, mikä säästää aikaa
- Jos korkean prioriteetin prosessit vievät paljon CPU-aikaa, alemman prioriteetin prosessit voivat nääntyä ja niitä lykätään määräämättömäksi ajaksi.