Avainero – ajoittaja vs. lähettäjä
Scheduler ja Dispatcher liittyvät käyttöjärjestelmän prosessien ajoitukseen. Keskeinen ero ajoittajan ja lähettäjän välillä on, että ajoittaja valitsee prosessin useista suoritettavista prosesseista, kun taas välittäjä varaa CPU:n valitulle prosessille ajoittajan toimesta.
Tietokonejärjestelmässä on käynnissä useita prosesseja. Ajoitus on prosessi, jossa käyttöjärjestelmä päättää, mikä prosessi tulee varata CPU:lle useiden prosessien suorittamista varten.
Mikä on Scheduler?
Käyttöjärjestelmässä on kolmenlaisia ajastimia. He ovat pitkän aikavälin aikatauluttaja, lyhyen aikavälin aikatauluttaja ja keskipitkän aikavälin aikatauluttaja. Pitkän aikavälin aikatauluttaja tunnetaan myös työn aikatauluttajana. Tietokonejärjestelmässä on useita prosesseja, jotka odottavat suorittamista. Nämä prosessit sijoitetaan toissijaiseen muistiin tai työjonoon suoritettavaksi myöhemmin. Pitkän aikavälin ajastimen tavoitteena on valita prosessit työjonosta ja tuoda se valmiiseen jonoon päämuistissa.
Lyhytaikataulu tunnetaan myös prosessorin ajoittimena. Lyhyen aikavälin ajoittajan tehtävänä on valita valmiusjonosta prosessi, joka tulisi varata CPU:lle. Lyhyen aikavälin ajoittajan tulee valita prosessi valmiusjonosta, kun taas edellinen prosessi siirtyy odotustilaan. Sen pitäisi olla nopea, muuten CPU-aika menee hukkaan.
Kuva 01: Prosessin ajoitus
Suoritusprosessi saattaa vaatia I/O-toiminnon. Joten prosessi siirtyy odotustilaan. Tämän prosessin sanotaan keskeytetyn. Prosessorin maksimaalisen käytön saavuttamiseksi jonkin muun prosessin tulisi suorittaa. Keskeytetty prosessi siirretään takaisin toissijaiseen muistiin. Jonkin ajan kuluttua siirretty prosessi voi palata takaisin päämuistiin ja jatkaa suoritusta siitä, mihin se lopetettiin. Keskeytetyn prosessin siirtämistä toissijaiseen muistiin kutsutaan vaihtamiseksi pois. Prosessin palauttaminen päämuistiin tunnetaan vaihtamisena. Tämän vaihtamisen suorittaa keskitason ajastin.
Mikä on Dispatcher?
Kun lyhyen aikavälin ajoittaja valitsee valmiista jonosta, lähettäjä suorittaa tehtävän allokoida valitun prosessin CPU:lle. Käynnissä oleva prosessi siirtyy odotustilaan IO-toimintoa jne. Sitten CPU allokoidaan jollekin muulle prosessille. Tätä CPU:n vaihtamista prosessista toiseen kutsutaan kontekstin vaihtamiseksi. Välittäjä suorittaa erilaisia tehtäviä, kuten kontekstin vaihtamisen, käyttäjärekisterien asettamisen ja muistikartoituksen. Nämä ovat välttämättömiä prosessin suorittamiseksi ja suorittimen ohjauksen siirtämiseksi kyseiselle prosessille. Lähetettäessä prosessi muuttuu valmiustilasta käynnissä tilaan.
Joskus lähettäjää pidetään osana lyhytaikaista ajoitusta, joten koko yksikköä kutsutaan lyhyen aikavälin ajoittajaksi. Tässä skenaariossa lyhyen aikavälin ajoittajan tehtävänä on valita prosessi valmiusjonosta ja myös varata CPU tälle prosessille.
Mikä on ajoittajan ja lähettäjän välinen suhde?
Lähettäjä määrittää lyhytaikaisen ajastimen valitseman prosessin CPU:lle
Mitä eroa ajoittajalla ja lähettäjällä on?
Ajoitus vs. työnvälittäjä |
|
Ajoitus on erityinen järjestelmäohjelmisto, joka käsittelee prosessien ajoituksen valitsemalla suoritettavan prosessin. | Lähettäjä on moduuli, joka ohjaa CPU:ta lyhytaikaisen ajoittajan valitsemalle prosessille. |
Tyypit | |
On olemassa kolmenlaisia ajastimia, jotka tunnetaan nimellä;
|
Ei ole luokitusta työnvälittäjälle. |
Päätehtävät | |
Pitkän aikavälin ajastin valitsee prosessin työjonosta ja tuo sen valmiiseen jonoon. Lyhytaikataulu valitsee prosessin valmiusjonosta. Keskikokoinen ajoitus suorittaa vaihdon, swap pois prosessista. |
Lähettäjä varaa CPU:n lyhytaikaisen ajoittajan valitsemalle prosessille. |
Yhteenveto – ajoittaja vs. lähettäjä
Scheduleria ja Dispatcheria käytetään käyttöjärjestelmän prosessien ajoituksessa. Ero ajoittajan ja lähettäjän välillä on se, että ajoittaja valitsee prosessin useista suoritettavista prosesseista, kun taas välittäjä varaa CPU:n valitulle prosessille ajoittajan toimesta.