Ennaltaehkäisevä multitasking ( priority multitasking , englanniksi preemptive multitasking , kirjaimellisesti preemptive multitasking ) on eräänlainen moniajo , jossa käyttöjärjestelmä päättää vaihtaa tehtävien välillä tietyn ajan kuluttua [1] .
Päätös tehdään tehtävien prioriteettien mukaisesti. Toisin kuin yhteistoiminnallinen moniajo , ohjaus siirtyy käyttöjärjestelmään riippumatta käynnissä olevien sovellusten tilasta, minkä vuoksi erityisesti ripustetut (esimerkiksi silmukat ) sovellukset eivät pääsääntöisesti "riita" käyttöjärjestelmää. Säännöllinen tehtävien vaihtaminen parantaa myös järjestelmän reagointikykyä , tehokkuutta vapauttaa järjestelmäresurssit, joita tehtävä ei enää käytä [1] [2] .
Toteutuksessa ennaltaehkäisevä moniajo eroaa yhteistoiminnallisesta moniajosta erityisesti siinä, että se vaatii laitteistoajastimen järjestelmäkeskeytyksen käsittelemistä [ 3 ] . Kun prosessin aikakvantti on kulunut umpeen, tapahtuu keskeytys ja prosessin ajastin otetaan käyttöön . Aikataulun soittamisen tiheys on kriittinen: liian usein soittaminen kuluttaa CPU-aikaa.
Ennaltaehkäisevää moniajoa käytetään useimmissa nykyaikaisissa yleiskäyttöjärjestelmissä [4] , esimerkiksi: Windows 9x ja NT [5] , Linux (ja muut UNIX ) [6] ja OS/2 [7] , [8] Mac OS [9 ] ] [10] ja BeOS [11] , MenuetOS ja KolibriOS [12] . Esimerkki UNIXia aikaisemmasta ennaltaehkäisevästä moniajojärjestelmästä on VMS [13] . Sitä käytetään myös monissa sulautetuissa reaaliaikaisissa käyttöjärjestelmissä , kuten FreeRTOS [14] .
Käyttöjärjestelmien näkökohdat | |||||
---|---|---|---|---|---|
| |||||
Tyypit |
| ||||
Nucleus |
| ||||
Prosessien hallinta |
| ||||
Muistinhallinta ja osoitus |
| ||||
Lataus- ja alustustyökalut | |||||
kuori | |||||
Muut | |||||
Luokka Wikimedia Commons Wikikirjat Wikisanakirja |