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.

Ensisijainen ajoitus

Vaihe 1) Ajankohtana = 1 uutta prosessia ei saavu. Suoritus jatkuu P1:llä.

Ensisijainen ajoitus

Vaihe 2) Aikana 2 uutta prosessia ei tule, joten voit jatkaa P1:llä. P2 on odotusjonossa.

Ensisijainen ajoitus

Vaihe 3) Aikana 3 uutta prosessia ei tule, joten voit jatkaa P1:llä. P2-prosessi on edelleen odotusjonossa.

Ensisijainen ajoitus

Vaihe 4) Ajankohtana 4 P1 on lopettanut suorituksensa. P2 aloittaa suorituksen.

Ensisijainen ajoitus

Vaihe 5) Ajankohtana = 5 uutta prosessia ei tule, joten jatkamme P2:lla.

Ensisijainen ajoitus

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

Ensisijainen ajoitus

Vaihe 7) Klo aika 7, uutta prosessia ei tule, joten jatkamme P3:lla. P2 on odotusjonossa.

Ensisijainen ajoitus

Vaihe 8) Ajankohtana = 8 uutta prosessia ei tule, joten voimme jatkaa P3:lla.

Ensisijainen ajoitus

Vaihe 9) Ajankohtana = 9 uutta prosessia ei tule, joten voimme jatkaa P3:lla.

Ensisijainen ajoitus

Vaihe 10) Aikavälillä 10 ei tule uutta prosessia, joten jatkamme P3:lla

Ensisijainen ajoitus

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

Ensisijainen ajoitus

Vaihe 12) Aika = 12, P5 saapuu. P3:lla on korkeampi prioriteetti, joten se jatkaa suoritusta.

Ensisijainen ajoitus

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

Ensisijainen ajoitus

Vaihe 14) Ajankohtana =14 P2-prosessi on lopettanut suorituksensa. P4 ja P5 ovat odotustilassa. P5:llä on korkein prioriteetti ja se aloittaa suorituksen.

Ensisijainen ajoitus

Vaihe 15) Ajankohtana =15, P5 jatkaa suoritusta.

Ensisijainen ajoitus

Vaihe 16) Ajankohtana = 16, P5 on suoritettu loppuun. P4 on ainoa prosessi jäljellä. Se aloittaa toteutuksen.

Ensisijainen ajoitus

Vaihe 17) Ajankohtana =20, P5 on suorittanut suorituksen, eikä prosessia ole jäljellä.

Ensisijainen ajoitus

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.