Ero ennaltaehkäisevän ja muun kuin ennaltaehkäisevän aikataulun välillä käyttöjärjestelmissä

Suorittimen ajoitus (tai Suorittimen ajoitus) määrittelee prosessorille osoitetut ja poistettavat prosessit ajoitusmallien, kuten ennaltaehkäisevä ja Ei-ennaltaehkäisevä aikataulu (tunnetaan myös Osuuskuntaohjelma).

Vanhemmat järjestelmät voisivat toimia yksinkertaisissa erillisissä tiloissa, mutta reagoivien, joustavien järjestelmien sekä virtualisoinnin kasvavan tarpeen myötä monikäsittelyn hallinta tehokkaasti tarjoaa nopean vastauksen kaikkiin tehtävänkäsittelypyyntöihin.

Aikatauluyksiköihin viitataan usein nimellä a tehtävä ja Aikataulun suunnittelijan tehtävänä on suorittaa ja hallita näitä tehtäviä tarvittaessa; ajoitusohjelma valitsee poistettavan tehtävän, joka määritetään prosessorille prosessointia varten käytetyn aikataulumallin mukaisesti.

Kuinka aikataulu tietää, mitkä tehtävät ovat ensisijaisia??

Aikataulun on suoritettava oikeudenmukainen ja tehokas valintaprosessi ottaen huomioon muuttuvat, dynaamiset käsittelypyynnöt ja hyödyntämällä CPU-jaksoja irti.

Tehtävät voivat olla prosessoinnin aikana kahdessa tilassa:

  1. Jonkin sisällä CPU-purske missä CPU suorittaa laskelmia tehtävän käsittelemiseksi (CPU-purskeen aika vaihtelee tehtävästä toiseen ja ohjelmasta toiseen).
  2. Vuonna Tulo- / lähtö (I / O) -purske odottaa tietojen vastaanottamista tai lähettämistä järjestelmästä.

Kun suoritin on käyttämätön, Aikataulu lukee Valmis jono, ja valitsee seuraavan suoritettavan tehtävän. Sitten se on lähettäjä joka antaa valitulle prosessorin ohjaukselle, joten sen on oltava nopea! Jokainen lähettäjän käyttämä aika tunnetaan nimellä Lähetyslatenssi.

Määrittelemään on erilaisia ​​rakenteita ja mukautettuja parametreja Valmis jono, samoin kuin useita menetelmiä, joita voidaan käyttää hallitsemaan ajoitusprosessin monimutkaisuutta.

Yleensä prosessorin käytön, suorituskyvyn jne. Optimoinnista ja maksimoimisesta.

Aikataulunviejän on tehtävä päätös yhdessä seuraavista vaiheista:

  1. Kun tehtävä muuttuu a Running a Odottava tila (esimerkiksi odottaa I / O-pyynnön aikana).
  2. Kun tehtävä muuttuu Running että Valmis (esimerkiksi vastaaminen keskeytykseen).
  3. Kun tehtävä muuttuu Waiting että Valmis (esimerkiksi I / O-pyyntö on suoritettu).
  4. Kun Tehtävä

Uusi tehtävä on valittava, jos vaihe 1 tai 4 sattuu varmistamaan suorittimen täyden hyödyntämisen, ja sekä vaiheessa 2 että 3 tehtävä voi jatkaa suorittamista tai uusi on valittu.

Kun olemme ymmärtäneet, miten tehtävä käsitellään, tarkastellaan kahta aikataulumallia, jotka käsittelevät suorittimen keskeytyksiä.

Molemmilla on samanlaiset ominaisuudet tehtävien, tehtävätilojen, jonojen ja prioriteettien (staattiset tai dynaamiset) kanssa:

  • Ei-ennaltaehkäisevä aikataulu on, kun tehtävä suoritetaan, kunnes se pysähtyy (vapaaehtoisesti) tai päättyy. Windows®: lla oli ei-ennaltaehkäisevä ajoitus Windows 3.x: iin saakka, jonka jälkeen se muuttui Preemptiveksi Windows 95: stä.
  • Ennaltaehkäisevä aikataulu missä CPU-keskeytykset voivat keskeyttää tehtävän, toisin kuin ei-ennaltaehkäisevä, jossa tehtävä suoritetaan, kunnes se vapauttaa CPU: n hallinnan..

Ei-ennaltaehkäisevä aikataulu

Ei-ennaltaehkäisevässä järjestelmässä tehtävät suoritetaan loppuun saakka.

Aikataulu tarkistaa sitten kaikkien tehtävien tilan ja ajoittaa seuraavan korkeimman prioriteetin tehtävän painikkeella Valmis osavaltio.

Ei-ennaltaehkäisevällä ajoituksella, kun tehtävä on osoitettu CPU: lle, sitä ei voida poistaa, vaikka lyhyiden tehtävien on odotettava pidempiä tehtäviä loppuunsaattamiseksi.

Aikatauluhallinta kaikissa tehtävissä on ”oikeudenmukaista” ja vasteajat ovat ennustettavissa, koska korkean prioriteetin tehtävät eivät voi lyödä odottavia tehtäviä jonossa pidemmälle..

Aikataulu varmistaa, että kukin tehtävä saa osuutensa suorittimesta välttäen minkään tehtävän viivästymisen. CPU: lle varattu 'aikamäärä' ei välttämättä ole yhtä suuri, koska se riippuu siitä, kuinka kauan tehtävän suorittaminen kestää.

Ennaltaehkäisevä aikataulu

Tämä aikataulumalli mahdollistaa tehtävien keskeyttämisen - toisin kuin ei-ennaltaehkäisevä ajoitus, jolla on "suorittamisen loppuun" -lähestymistapa.

Keskeytykset, jotka voidaan aloittaa ulkoisista puheluista, kutsuvat Aikataulua keskeyttämään käynnissä olevan tehtävän toisen korkeamman prioriteetin tehtävän hallitsemiseksi - siten, että suorittimen ohjausta voidaan estää.

Korkeimman prioriteetin tehtävä a Valmis tila suoritetaan, mikä mahdollistaa nopean reagoinnin reaaliaikaisiin tapahtumiin.

Joihinkin ennaltaehkäisevän ajoituksen haitoihin liittyy resurssien yleiskustannusten lisääntyminen, kun käytetään keskeytyksiä, ja ongelmia voi ilmetä kahden tiedon jakamisen kanssa tehtävän kanssa, koska yksi voidaan keskeyttää päivitettäessä jaettuja tietorakenteita, ja se voi vaikuttaa negatiivisesti tietojen eheyteen..

Toisaalta on käytännöllistä pystyä keskeyttämään tehtävä hallitsemaan toista, joka voi olla kriittinen.

Yhteenvetona

Eri politiikoissa voidaan määritellä monia variansseja ja riippuvuuksia, esimerkiksi käyttämällä a ”Pyöreä robinipolitiikka [i]” jossa jokainen tehtävä (yhtä tärkeysjärjestyksessä) suoritetaan kerran ja asetetaan sitten jonon loppuun seuraavaa jaksoa varten.

Muut politiikat sisältävät Ensimmäinen sisällä ensimmäinen ulkona, Lyhin-Job-First, Lyhin-Job-Seuraava, Lyhin jäljellä oleva aika, jne.

Historiallisen datan analyysi voi tarjota tietoa näkökohdista, kuten uusien tehtävien saapumisnopeudesta, CPU: n ja I / O-purskeista jne., Jotta todennäköisyysjakaumat voivat laskea tehtävien odotusaikojen ominaispiirteet, siten virittämällä järjestelmänvalvojia asiaankuuluvilla tiedoilla ajoitusmallien määrittelemiseksi..