Mikä on prioriteettiaikataulu?
Prioriteettiajastus on prosessien ajoitusmenetelmä, joka perustuu prioriteettiin. Tässä algoritmissa ajoittaja valitsee priorisoitavat tehtävät.
Ensisijaisemmat prosessit tulisi suorittaa ensin, kun taas saman prioriteetin työpaikat suoritetaan kierros- tai FCFS-periaatteella. Prioriteetti riippuu muistivaatimuksista, aikavaatimuksista jne.
Tässä käyttöjärjestelmän opetusohjelmassa opit:
- Mikä on prioriteettiaikataulu?
- Prioriteettiaikataulutyypit
- Prioriteettiaikataulun ominaisuudet
- Esimerkki prioriteettiaikataulusta
- Prioriteettiaikataulun edut
- Prioriteettiaikataulun haitat
Prioriteettiaikataulutyypit
Prioriteettiaikataulu jaettuna kahteen päätyyppiin:
Ennakoiva aikataulutus
Ennakoivassa aikataulussa tehtävät jaetaan enimmäkseen prioriteettiensa kanssa. Joskus on tärkeää suorittaa tehtävä, jolla on korkeampi prioriteetti ennen toista matalamman prioriteetin tehtävää, vaikka alemman prioriteetin tehtävä on edelleen käynnissä. Alemman prioriteetin tehtävä kestää jonkin aikaa ja jatkuu, kun korkeamman prioriteetin tehtävä on suoritettu loppuun.
Ei-ennaltaehkäisevä aikataulutus
Tämän tyyppisessä ajoitusmenetelmässä CPU on varattu tietylle prosessille. Prosessi, joka pitää keskusyksikön kiireisenä, vapauttaa suorittimen joko vaihtamalla kontekstia tai lopettamalla. Se on ainoa menetelmä, jota voidaan käyttää erilaisille laitteistoalustoille. Tämä johtuu siitä, että se ei tarvitse erityislaitteistoa (esimerkiksi ajastinta), kuten ennakoivaa ajoitusta.
Prioriteettiaikataulun ominaisuudet
- CPU-algoritmi, joka aikatauluttaa prosessit prioriteetin perusteella.
- Sitä käytettiin käyttöjärjestelmissä eräprosessien suorittamiseen.
- Jos kaksi samaa prioriteettia olevaa työtä on VALMIS, se toimii ENSIMMÄISEN TULOKSEN, ENSIMMÄISEN PALVELUN perusteella.
- Prioriteettiaikataulussa jokaiselle prosessille annetaan numero, joka osoittaa sen prioriteettitason.
- Pienempi määrä, korkeampi on prioriteetti.
- Tämän tyyppisessä ajoitusalgoritmissa, jos saapuu uudempi prosessi, jolla on korkeampi prioriteetti kuin käynnissä olevalla prosessilla, käynnissä oleva prosessi on ennalta asetettu.
Esimerkki prioriteettiaikataulusta
Harkitse seuraavaksi viittä prosessia P1 - P5. Jokaisella prosessilla on ainutlaatuinen prioriteetti, purskeaika ja saapumisaika.
Prosessi | Prioriteetti | Sarjaaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 3 | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 0) Aikana = 0 saapuvat prosessit P1 ja P2. P1: llä on korkeampi prioriteetti kuin P2: lla. Suoritus alkaa prosessilla P1, jolla on purskeaika 4.
Vaihe 1) Aikana = 1, uutta prosessia ei tule. Suoritusta jatketaan P1: llä.
Vaihe 2) Aikana 2 uutta prosessia ei tule, joten voit jatkaa P1: n kanssa. P2 on odotusjonossa.
Vaihe 3) Aikana 3 ei tule uutta prosessia, joten voit jatkaa P1: n kanssa. P2-prosessi on edelleen odotusjonossa.
Vaihe 4) Aikana 4 P1 on suorittanut loppuun. P2 aloittaa suorituksen.
Vaihe 5) Aikana = 5, uutta prosessia ei tule, joten jatkamme P2: lla.
Vaihe 6) Aikana = 6, P3 saapuu. P3 on korkeammalla prioriteetilla (1) verrattuna prioriteettiin P2 (2). P2 on estetty, ja P3 aloittaa suorituksen.
Prosessi | Prioriteetti | Sarjaaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 odottaa | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 7) Aikana 7 ei tule uutta prosessia, joten jatkamme P3: lla. P2 on odotusjonossa.
Vaihe 8) Kun aika = 8, uutta prosessia ei tule, joten voimme jatkaa P3: lla.
Vaihe 9) Aikana = 9, uutta prosessia ei tule, jotta voimme jatkaa P3: lla.
Vaihe 10) Aikavälillä 10 uutta prosessia ei tule, joten jatkamme P3: lla
Vaihe 11) Aikana = 11, P4 saapuu prioriteetilla 4. P3: lla on korkeampi prioriteetti, joten se jatkaa suoritustaan.
Prosessi | Prioriteetti | Sarjaaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 odottaa | 0 |
P3 | 1 | 2/7 odottaa | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 12) Aikana = 12, P5 saapuu. P3: lla on korkeampi prioriteetti, joten se jatkaa suoritusta.
Vaihe 13) Aikana = 13, P3 suorittaa suorituksen. Meillä on P2, P4, P5 valmiina jonossa. P2: lla ja P5: llä on sama prioriteetti. P2: n saapumisaika on ennen P5. Joten P2 aloittaa suorituksen.
Prosessi | Prioriteetti | Sarjaaika | Saapumisaika |
---|---|---|---|
P1 | 1 | 4 | 0 |
P2 | 2 | 1/3 odottaa | 0 |
P3 | 1 | 7 | 6 |
P4 | 3 | 4 | 11 |
P5 | 2 | 2 | 12 |
Vaihe 14) Aikana = 14, P2-prosessi on suorittanut loppuun. P4 ja P5 ovat odotustilassa. P5: llä on korkein prioriteetti ja se käynnistää suorituksen.
Vaihe 15) Aikana = 15, P5 jatkaa suoritusta.
Vaihe 16) Aikana = 16, P5 on suoritettu loppuun. P4 on ainoa jäljellä oleva prosessi. Se aloittaa toteutuksen.
Vaihe 17) Aikana = 20, P5 on suorittanut suorituksen eikä prosessia ole jäljellä.
Vaihe 18) Laske keskimääräinen odotusaika yllä olevalle esimerkille.
Odotusaika = alkamisaika - saapumisaika + odotusaika seuraavaan purskeeseen
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
Prioriteettiaikataulun edut
Tässä on etuja / etuja prioriteettiajastusmenetelmän käytöstä:
- Helppo käyttää ajoitusmenetelmää
- 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 merkitys voidaan määritellä tarkasti.
- Soveltuu sovelluksiin, joiden aika- ja resurssitarpeet vaihtelevat.
Prioriteettiaikataulun haitat
Tässä ovat prioriteettiaikataulun haitat / haitat
- Jos järjestelmä lopulta kaatuu, kaikki matalan prioriteetin prosessit menetetään.
- Jos korkean prioriteetin prosessit vievät paljon suorittimen aikaa, alemman prioriteetin prosessit voivat nälkää ja niitä lykätään määrittelemättömäksi ajaksi.
- Tämä ajoitusalgoritmi saattaa jättää joitakin matalan prioriteetin prosesseja odottamaan loputtomiin.
- Prosessi estetään, kun se on valmis suoritettavaksi, mutta sen on odotettava suorittinta, koska jokin muu prosessi on käynnissä.
- Jos uusi korkeamman prioriteetin prosessi tulee jatkuvasti valmiiksi jonoon, odotusprosessissa olevan prosessin täytyy joutua odottamaan pitkään.
Yhteenveto:
- Prioriteettiaikataulu on prioriteettiin perustuva menetelmä prosessien aikatauluttamiseksi. Tässä algoritmissa ajoittaja valitsee tehtävät, jotka toimivat prioriteetin mukaan.
- Priority Preemptive Scheduling -ohjelmassa tehtävät jaetaan enimmäkseen niiden prioriteettien kanssa.
- Prioriteettisessa ei-ennakoivassa ajoitusmenetelmässä CPU on allokoitu tietylle prosessille.
- Prosessit suoritetaan prioriteetin perusteella, joten korkean prioriteetin ei tarvitse odottaa kauan, mikä säästää aikaa
- Jos korkean prioriteetin prosessit vievät paljon suorittimen aikaa, alemman prioriteetin prosessit voivat nälkää ja niitä lykätään määrittelemättömäksi ajaksi.