Ennaltaehkäisevä ja ei-ennakoiva ajoitus

Tärkeimmät erot ennakoivan ja ei-ennaltaehkäisevän ajoituksen välillä

  • Ennakoivassa ajoituksessa CPU allokoidaan prosesseille tietylle ajanjaksolle, ja ei-ennakoiva ajoitus CPU allokoidaan prosessille, kunnes se päättyy.
  • Ennakoivassa ajoituksessa tehtävät vaihdetaan prioriteetin perusteella, kun taas ei-ennakoivassa ajoituksessa vaihtoa ei tapahdu.
  • Ennaltaehkäisevällä algoritmilla on prosessin vaihtaminen valmiustilasta käynnissä olevaan tilaan, kun taas ei-ennaltaehkäisevällä ajoituksella ei ole tällaista vaihtamisen lisäkustannuksia.
  • Ennaltaehkäisevä ajoitus on joustava, kun taas ei-ennaltaehkäisevä ajoitus on jäykkä.
Ennaltaehkäisevä vs. ei-ennakoiva ajoitus
Ennaltaehkäisevä vs. ei-ennakoiva ajoitus

Mikä on ennakoiva ajoitus?

Ennaltaehkäisevä ajoitus on ajoitusmenetelmä, jossa 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ä.

Tuolloin alemman prioriteetin tehtävä on voimassa jonkin aikaa ja jatkuu, kun korkeamman prioriteetin tehtävä on suorittanut loppuun.

Mitä on ennaltaehkäisevä ajoitus?

Tämän tyyppisessä ajoitusmenetelmässä CPU on varattu tietylle prosessille. Prosessi, joka pitää CPU:n kiireisenä, vapauttaa CPU:n joko kontekstia vaihtamalla tai lopettamalla.

Se on ainoa menetelmä, jota voidaan käyttää eri laitteistoalustoilla. Tämä johtuu siitä, että se ei tarvitse erikoislaitteistoa (esimerkiksi ajastinta), kuten ennaltaehkäisevä ajoitus.

Ei-ennaltaehkäisevä ajoitus tapahtuu, kun prosessi siirtyy vapaaehtoisesti odotustilaan tai päättyy.

Ennaltaehkäisevä vs. ei-ennakoiva ajoitus: vertailutaulukko

Tässä on suora vertailu ennaltaehkäisevään ja ei-ennaltaehkäisevään aikatauluun. Tärkeimmät erot ennakoivan ja ei-ennaltaehkäisevän ajoituksen välillä käyttöjärjestelmässä ovat seuraavat:

Ennakoiva ajoitus Ei ennaltaehkäisevä ajoitus
Prosessori voidaan ennaltaehkäistä suorittamaan eri prosesseja minkä tahansa nykyisen prosessin suorituksen keskellä. Kun prosessori aloittaa suorituksensa, sen on lopetettava se ennen toisen suorittamista. Sitä ei voi keskeyttää keskellä.
Suorittimen käyttö on tehokkaampaa verrattuna ennaltaehkäisevään ajoitukseen. Suorittimen käyttö on vähemmän tehokasta kuin ennaltaehkäisevä ajoitus.
Ennaltaehkäisevän ajoituksen odotus- ja vasteaika on lyhyempi. Ei-ennaltaehkäisevän ajoitusmenetelmän odotus- ja vasteaika on korkeampi.
Ennakoiva ajoitus on etusijalla. Korkeimman prioriteetin prosessi on tällä hetkellä käytössä oleva prosessi. Kun mikä tahansa prosessi siirtyy käynnissä olevaan tilaan, prosessin tilaa ei koskaan poisteta ajoittimesta ennen kuin se on suorittanut työnsä.
Ennakoiva ajoitus on joustavaa. Ei-ennaltaehkäisevä ajoitus on jäykkä.
Esimerkkejä: – Lyhin jäljellä oleva aika ensin, Round Robin jne. Esimerkkejä: Ensin saapunut ensin -palvelu, Lyhyin työ ensin, prioriteettiaikataulu jne.
Ennaltaehkäisevä ajoitusalgoritmi voidaan ennaltaehkäistä, eli prosessi voidaan ajoittaa Ei-ennakoivassa ajoituksessa prosessia ei voi ajoittaa
Tässä prosessissa CPU allokoidaan prosesseille tietylle ajanjaksolle. Tässä prosessissa CPU allokoidaan prosessille, kunnes se päättyy tai siirtyy odotustilaan.
Ennaltaehkäisevän algoritmin tehtävänä on vaihtaa prosessi valmiustilasta käynnissä olevaan tilaan ja päinvastoin. Ei-ennaltaehkäisevällä ajoituksella ei ole sellaista ylimääräistä prosessia, joka vaihtaisi prosessin valmiustilaan.

Ennaltaehkäisevän ajoituksen edut

Tässä ovat ennaltaehkäisevän ajoitusmenetelmän edut/edut:

  • Ennaltaehkäisevä ajoitusmenetelmä on vankempi, joten yksi prosessi ei voi monopolisoida prosessoria
  • Ajotehtävän valintaa harkitaan uudelleen jokaisen keskeytyksen jälkeen.
  • Jokainen tapahtuma aiheuttaa keskeytyksen käynnissä olevien tehtävien suorittamisessa
  • Käyttöjärjestelmä varmistaa, että suorittimen käyttö on sama kaikissa käynnissä olevissa prosesseissa.
  • Tässä CPU:n käyttö on sama, eli kaikki käynnissä olevat prosessit käyttävät prosessoria tasapuolisesti.
  • Tämä ajoitusmenetelmä improvisoi myös keskimääräistä vasteaikaa.
  • Ennaltaehkäisevä ajoitus on hyödyllinen, kun käytämme sitä moniohjelmointiympäristössä.

Ei-ennaltaehkäisevän ajoituksen edut

Tässä on ei-ennaltaehkäisevän ajoitusmenetelmän edut/edut:

  • Tarjoaa alhaiset aikataulutuskustannukset
  • Tarjoaa yleensä korkean suorituskyvyn
  • Se on käsitteellisesti hyvin yksinkertainen menetelmä
  • Less laskentaresurssien tarve ajoitukseen

Ennaltaehkäisevän ajoituksen haitat

Seuraavat ovat ennakoivan ajoituksen haitat:

  • Tarvitsevat rajoitettuja laskentaresursseja ajoitukseen
  • Aikatauluttajalta kuluu enemmän aikaa käynnissä olevan tehtävän keskeyttämiseen, kontekstin vaihtamiseen ja uuden saapuvan tehtävän lähettämiseen.
  • Prosessin, jolla on matala prioriteetti, on odotettava pidempään, jos korkean prioriteetin prosesseja saapuu jatkuvasti.

Ei-ennaltaehkäisevän ajoituksen haitat

Tässä on ei-ennaltaehkäisevän ajoitusmenetelmän haittoja/haittoja:

  • Se voi johtaa nälkään varsinkin niissä reaaliaikaisissa tehtävissä
  • Virheet voivat aiheuttaa koneen jäätymisen
  • Se voi tehdä reaaliajassa ja prioriteetti ajoitus vaikea
  • Huono vasteaika prosesseille

Esimerkki ei-ennakoivasta ajoituksesta

Ei-ennaltaehkäisevässä SJF-ajoituksessa, kun CPU-jakso on varattu prosessiin, prosessi pitää sitä, kunnes se saavuttaa odotustilan tai lopetetaan.

Harkitse seuraavia viittä prosessia, joilla kullakin on oma ainutlaatuinen purskeaikansa ja saapumisaikansa.

Prosessin jono Räjähdysaika Saapumisaika
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Vaihe 0) Ajankohtana = 0, P4 saapuu ja aloittaa suorituksen.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 1) Ajankohtana = 1, prosessi P3 saapuu. Mutta P4 tarvitsee vielä 2 suoritusyksikköä suorittaakseen loppuun. Se jatkaa täytäntöönpanoa.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 2) Ajankohtana =2 prosessi P1 saapuu ja lisätään odotusjonoon. P4 jatkaa suoritusta.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 3) Ajankohtana = 3 prosessi P4 lopettaa suorituksensa. P3:n ja P1:n purskeaikoja verrataan. Prosessi P1 suoritetaan, koska sen purskeaika on lyhyempi verrattuna P3:een.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 4) Ajankohtana = 4, prosessi P5 saapuu ja lisätään odotusjonoon. P1 jatkaa suoritusta.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 5) Ajankohtana = 5, prosessi P2 saapuu ja lisätään odotusjonoon. P1 jatkaa suoritusta.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 6) Ajankohtana = 9, prosessi P1 lopettaa suorituksensa. P3:n, P5:n ja P2:n purskeaikoja verrataan. Prosessi P2 suoritetaan, koska sen purskeaika on pienin.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 7) Ajankohtana = 10, P2 suorittaa, ja P3 ja P5 ovat odotusjonossa.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 8) Ajankohtana = 11, prosessi P2 päättää suorituksensa. P3:n ja P5:n purskeaikoja verrataan. Prosessi P5 suoritetaan, koska sen purskeaika on pienempi.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 9) Ajankohtana = 15, prosessi P5 lopettaa suorituksensa.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 10) Ajankohtana = 23, prosessi P3 lopettaa suorituksensa.

Esimerkki ei-ennakoivasta ajoituksesta

Vaihe 11) Lasketaan keskimääräinen odotusaika yllä olevalle esimerkille.

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Esimerkki ennakoivasta ajoituksesta

Harkitse tätä seuraavaa kolmea prosessia Round robin

Prosessin jono Räjähdysaika
P1 4
P2 3
P3 5

Esimerkki ennakoivasta ajoituksesta

Vaihe 1) Suoritus alkaa prosessilla P1, jonka purskeaika on 4. Tässä jokainen prosessi suoritetaan 2 sekuntia. P2 ja P3 ovat edelleen odotusjonossa.

Esimerkki ennakoivasta ajoituksesta

Vaihe 2) Ajankohtana =2 P1 lisätään jonon loppuun ja P2 alkaa suorittaa

Esimerkki ennakoivasta ajoituksesta

Vaihe 3) Ajankohtana = 4 , P2 ennalta määrätään ja lisätään jonon loppuun. P3 alkaa suorittaa.

Esimerkki ennakoivasta ajoituksesta

Vaihe 4) Ajankohtana = 6 , P3 ennalta määrätään ja lisätään jonon loppuun. P1 alkaa suorittaa.

Esimerkki ennakoivasta ajoituksesta

Vaihe 5) Ajankohtana = 8, P1:n purskeaika on 4. Se on suorittanut suorituksen. P2 aloittaa suorituksen

Esimerkki ennakoivasta ajoituksesta

Vaihe 6) P2:n purskeaika on 3. Se on jo suoritettu 2:n välein. Ajankohtana = 9, P2 suorittaa suorituksen loppuun. Sitten P3 aloittaa suorituksen, kunnes se on valmis.

Esimerkki ennakoivasta ajoituksesta

Vaihe 7) Lasketaan keskimääräinen odotusaika yllä olevalle esimerkille.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7