Suorittimen ajoitusalgoritmit käyttöjärjestelmissä

Sisällysluettelo:

Anonim

Mikä on suorittimen ajoitus?

CPU Scheduling on prosessi, jolla määritetään, mikä prosessi omistaa suorittimen suoritettavaksi toisen prosessin ollessa pidossa. Suorittimen ajoituksen päätehtävänä on varmistaa, että aina kun CPU pysyy käyttämättömänä, käyttöjärjestelmä valitsee ainakin yhden valmiista jonosta käytettävissä olevista prosesseista suoritettavaksi. Valintaprosessin suorittaa CPU-ajastin. Se valitsee yhden muistissa olevista prosesseista, jotka ovat valmiita suoritettavaksi.

Tässä suorittimen ajoitusoppaassa opit:

  • Mikä on suorittimen ajoitus?
  • Suorittimen ajoituksen tyypit
  • Tärkeitä suorittimen aikataulutustermejä
  • Suorittimen ajoituskriteerit
  • Intervalliajastin
  • Mikä on Dispatcher?
  • CPU-ajoitusalgoritmin tyypit
  • Tule ensin palvelemaan
  • Lyhin jäljellä oleva aika
  • Prioriteettipohjainen ajoitus
  • Round-Robin-aikataulu
  • Lyhin työ ensin
  • Monitasoisten jonojen ajoitus
  • Aikataulutusalgoritmin tarkoitus

Suorittimen ajoituksen tyypit

Tässä on kahdenlaisia ​​ajoitusmenetelmiä:

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ää CPU: 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.

Kun aikataulutus on ennakoiva tai ei-ennakoiva?

Ota huomioon nämä neljä parametria selvittääkseen, onko ajoitus ennalta ehkäisevää vai ei-ennakoivaa:

  1. Prosessi vaihtuu käynnissä olevasta odotustilaan.
  2. Tietty prosessi siirtyy käynnissä olevasta tilasta valmiustilaan.
  3. Tietty prosessi siirtyy odotustilasta valmiustilaan.
  4. Prosessi valmistui loppuun ja päättyi.

Vain ehdot 1 ja 4 pätevät, ajoitusta kutsutaan ennalta ehkäiseväksi.

Kaikki muut aikataulut ovat ennakoivia.

Tärkeitä suorittimen aikataulutustermejä

  • Burst Time / Execution Time: Se on aika, jonka prosessi vaatii suorituksen suorittamiseksi. Sitä kutsutaan myös juoksuajaksi.
  • Saapumisaika: kun prosessi siirtyy valmiustilaan
  • Viimeistelyaika: kun prosessi on valmis ja poistut järjestelmästä
  • Moniohjelmointi: Useita ohjelmia, jotka voivat olla muistissa samanaikaisesti.
  • Työpaikat: Se on eräänlainen ohjelma ilman minkäänlaista käyttäjän vuorovaikutusta.
  • Käyttäjä: Se on eräänlainen ohjelma, jolla on käyttäjän vuorovaikutusta.
  • Prosessi: Se on viite, jota käytetään sekä työhön että käyttäjään.
  • CPU / IO-purskesykli: luonnehtii prosessin suoritusta, joka vuorottelee suorittimen ja I / O-toiminnan välillä. Suorittimen ajat ovat yleensä lyhyempiä kuin I / O-aika.

Suorittimen ajoituskriteerit

Suorittimen ajoitusalgoritmi yrittää maksimoida ja minimoida seuraavat:

Maksimoida:

CPU: n käyttö: CPU: n käyttö on tärkein tehtävä, jossa käyttöjärjestelmän on varmistettava, että CPU pysyy mahdollisimman kiireisenä. Se voi vaihdella 0: sta 100 prosenttiin. RTOS: n osalta se voi kuitenkin vaihdella 40 prosentista matalan tason ja 90 prosenttiin korkean tason järjestelmässä.

Suoritusteho: Suorituksen suorittavien prosessien määrä aikayksikköä kohti tunnetaan läpäisykykynä. Joten, kun keskusyksikkö on varattu suorittamaan prosessia, työ on silloin käynnissä, ja aikayksikköä kohti suoritettua työtä kutsutaan läpäisyksi.

Minimoida:

Odotusaika: Odotusaika on määrä, jonka tietyn prosessin on odotettava valmiissa jonossa.

Vasteaika: Se on aika, jolloin pyyntö on lähetetty, kunnes ensimmäinen vastaus on tuotettu.

Läpimenoaika: Läpimenoaika on aika tietyn prosessin suorittamiseksi. Se laskee muistiin pääsemiseen, jonossa odottamiseen ja suorittimen suorittamiseen kuluneen kokonaisajan. Prosessin lähettämisen ja valmistumisajan välinen aika on läpimenoaika.

Intervalliajastin

Ajastimen keskeytys on menetelmä, joka liittyy läheisesti ennakkoon. Kun tietty prosessi saa CPU-varauksen, ajastin voidaan asettaa tietylle aikavälille. Sekä ajastimen keskeytys että ennakkolupa pakottavat prosessorin palauttamaan prosessorin ennen sen suorittimen purskeen päättymistä.

Suurin osa moniohjelmoidusta käyttöjärjestelmästä käyttää jonkinlaista ajastinta estääkseen prosessia sitomasta järjestelmää ikuisesti.

Mikä on Dispatcher?

Se on moduuli, joka tarjoaa prosessorin ohjauksen prosessille. Lähettäjän tulee olla nopea, jotta se voi toimia jokaisessa kontekstikytkimessä. Lähetysviive on aika, jonka suorittimen ajoitin tarvitsee yhden prosessin pysäyttämiseen ja toisen aloittamiseen.

Dispatcherin suorittamat toiminnot:

  • Kontekstin vaihto
  • Siirtyminen käyttäjätilaan
  • Siirtyminen oikeaan paikkaan vasta ladatussa ohjelmassa.

CPU-ajoitusalgoritmin tyypit

Prosessien ajoitusalgoritmeja on pääasiassa kuutta tyyppiä

  1. Ensimmäinen tullutta palvele ensin (FCFS)
  2. Lyhin työ ensin (SJF) -aikataulu
  3. Lyhin jäljellä oleva aika
  4. Prioriteettiaikataulu
  5. Kierros Robin -aikataulu
  6. Monitasoisen jonon ajoitus
Aikataulutusalgoritmit

Tule ensin palvelemaan

First Come First Serve on FCFS: n koko muoto. Se on helpoin ja yksinkertaisin suorittimen ajoitusalgoritmi. Tämän tyyppisessä algoritmissa prosessoria pyytävä prosessi saa ensin suorittimen varauksen. Tätä ajoitusmenetelmää voidaan hallita FIFO-jonolla.

Kun prosessi saapuu valmiiseen jonoon, sen PCB (Process Control Block) linkitetään jonon hännään. Joten, kun CPU vapautuu, se tulisi määrittää prosessille jonon alussa.

FCFS-menetelmän ominaisuudet:

  • Se tarjoaa ennaltaehkäisevän ja ennalta ehkäisevän ajoitusalgoritmin.
  • Työtehtävät toteutetaan aina ensin saapumisjärjestyksessä
  • Se on helppo toteuttaa ja käyttää.
  • Tämän menetelmän suorituskyky on kuitenkin heikko, ja yleinen odotusaika on melko pitkä.

Lyhin jäljellä oleva aika

SRT: n koko muoto on lyhin jäljellä oleva aika. Se tunnetaan myös nimellä SJF: n ennakoiva aikataulutus. Tässä menetelmässä prosessi kohdistetaan tehtävään, joka on lähinnä sen suorittamista. Tämä menetelmä estää uudempaa valmiustilan prosessia pitämästä vanhemman prosessin loppuun saattamista.

SRT-ajoitusmenetelmän ominaisuudet:

  • Tätä menetelmää käytetään enimmäkseen eräympäristöissä, joissa vaaditaan etusijalle lyhyitä töitä.
  • Tämä ei ole ihanteellinen tapa toteuttaa se jaetussa järjestelmässä, jossa vaadittavaa suorittimen aikaa ei tunneta.
  • Liitä jokaiseen prosessiin, kun sen seuraavan suorittimen purskeen pituus on. Joten käyttöjärjestelmä käyttää näitä pituuksia, mikä auttaa prosessin aikatauluttamisessa mahdollisimman lyhyessä ajassa.

Prioriteettipohjainen ajoitus

Prioriteettiaikataulu on prioriteettiin perustuva prosessiprosessointimenetelmä. Tässä menetelmässä ajoittaja valitsee tehtävät, jotka toimivat prioriteetin mukaan.

Prioriteettiaikataulu auttaa myös käyttöjärjestelmää ottamaan prioriteettimääritykset mukaan. Ensisijaisemmat prosessit tulisi suorittaa ensin, kun taas saman prioriteetin työpaikat suoritetaan kierros- tai FCFS-periaatteella. Prioriteetti voidaan päättää muistivaatimusten, aikavaatimusten jne. Perusteella

Round-Robin-aikataulu

Round robin on vanhin, yksinkertaisin ajoitusalgoritmi. Tämän algoritmin nimi tulee round-robin-periaatteesta, jossa jokainen henkilö saa yhtä suuren osan vuorostaan. Sitä käytetään enimmäkseen algoritmien aikatauluttamiseen moniajoissa. Tämä algoritmimenetelmä auttaa prosessien suorittamisessa nälkään.

Round-Robin-ajoituksen ominaisuudet

  • Round robin on hybridimalli, joka on kellokäyttöinen
  • Aikaviivan tulisi olla vähimmäismäärä, joka on osoitettu tietylle käsiteltävälle tehtävälle. Se voi kuitenkin vaihdella eri prosesseissa.
  • Se on reaaliaikainen järjestelmä, joka reagoi tapahtumaan tietyn ajan kuluessa.

Lyhin työ ensin

SJF on täysimuotoinen (Lyhin työ ensin) on ajoitusalgoritmi, jossa seuraavaksi suoritettavaksi tulisi valita prosessi, jolla on lyhyin suoritusaika. Tämä ajoitusmenetelmä voi olla ennakoiva tai ei-ennaltaehkäisevä. Se lyhentää merkittävästi muiden suoritusta odottavien prosessien keskimääräistä odotusaikaa.

SJF-aikataulutuksen ominaisuudet

  • Se liittyy jokaiseen työhön suoritettavana aikayksikkönä.
  • Kun tässä prosessissa on käytettävissä CPU, seuraava prosessi tai työ, jolla on lyhyin valmiusaika, suoritetaan ensin.
  • Se pannaan täytäntöön ennalta ehkäisevällä politiikalla.
  • Tämä algoritmimenetelmä on hyödyllinen erätyyppisessä prosessoinnissa, jossa töiden odottaminen ei ole kriittistä.
  • Se parantaa työn tuottoa tarjoamalla lyhyempiä työpaikkoja, jotka tulisi suorittaa ensin, joiden läpimenoaika on yleensä lyhyempi.

Monitasoisten jonojen ajoitus

Tämä algoritmi erottaa valmiin jonon useisiin erillisiin jonoihin. Tässä menetelmässä prosessit määritetään jonoon tietyn prosessin ominaisuuden, kuten prosessin prioriteetin, muistin koon, perusteella.

Tämä ei kuitenkaan ole itsenäinen ajoitus-käyttöjärjestelmän algoritmi, koska sen on käytettävä muun tyyppisiä algoritmeja töiden ajoitukseen.

Ominaisuus monitasoisten jonojen ajoitukselle:

  • Prosesseille, joilla on joitain ominaisuuksia, tulisi ylläpitää useita jonoja.
  • Jokaisella jonolla voi olla erilliset ajoitusalgoritmit.
  • Prioriteetit annetaan jokaiselle jonolle.

Aikataulutusalgoritmin tarkoitus

Tässä on syitä ajoitusalgoritmin käyttöön:

  • CPU käyttää ajoitusta tehokkuuden parantamiseen.
  • Se auttaa sinua jakamaan resursseja kilpailevien prosessien kesken.
  • CPU: n maksimikäyttö voidaan saavuttaa moniohjelmoinnilla.
  • Suoritettavat prosessit ovat valmiina jonossa.

Yhteenveto:

  • Suorittimen ajoitus on prosessi, jolla määritetään, mikä prosessi omistaa suorittimen suoritettavaksi toisen prosessin ollessa pidossa.
  • Ennakoivassa aikataulussa tehtävät jaetaan enimmäkseen prioriteettiensa kanssa.
  • Ei-ennakoivassa ajoitusmenetelmässä CPU on allokoitu tietylle prosessille.
  • Purskeaika on prosessin suorittamisen edellyttämä aika. Sitä kutsutaan myös juoksuajaksi.
  • Suorittimen käyttö on tärkein tehtävä, jossa käyttöjärjestelmän on varmistettava, että CPU pysyy mahdollisimman kiireisenä
  • Suorituksen loppuun saattavien prosessien määrä aikayksikköä kohti tunnetaan läpivirtauksena.
  • Odotusaika on määrä, jonka tietyn prosessin on odotettava valmiissa jonossa.
  • Ensimmäisen vastauksen tuottamiseen kuluu aika, jolloin pyyntö on lähetetty.
  • Läpimenoaika on aika tietyn prosessin suorittamiseen.
  • Ajastimen keskeytys on menetelmä, joka liittyy läheisesti ennakkoon
  • Välittäjä on moduuli, joka tarjoaa prosessorin ohjauksen prosessille.
  • Kuusi erilaista prosessin ajoitusalgoritmia ovat:
  • Ensin palaa ensin (FCFS), 2) Lyhin-työ-ensin (SJF) -aikataulu 3) Lyhin jäljellä oleva aika 4) Prioriteettiaikataulu 5) Kierros Robin -aikataulu 6) Monitasoisen jonon ajoitus
  • First Come First Serve -menetelmässä prosessoria pyytävä prosessi saa ensin suorittimen varauksen.
  • Lyhyimmässä jäljellä olevassa ajassa prosessi kohdistetaan tehtävään, joka on lähinnä sen suorittamista.
  • Aikataulun prioriteettiaikataulu valitsee prioriteetin mukaiset tehtävät.
  • Tässä kierroskierron aikataulutus toimii periaatteessa, jolloin jokainen saa vuorollaan saman määrän jotain
  • Lyhyimmässä työssä ensin tulee valita lyhyin suoritusaika seuraavaksi suoritettavaksi
  • Monitasoisessa ajoituksessa menetelmä erottaa valmiin jonon useisiin erillisiin jonoihin. Tässä menetelmässä prosessit määritetään jonoon tietyn ominaisuuden perusteella
  • CPU käyttää ajoitusta tehokkuuden parantamiseen.