Moniajo

Wikipedia
Loikkaa: valikkoon, hakuun
Tämä artikkeli liittyy tietotekniikkaan. Moniajo voi viitata myös rautatieliikenteessä käytettyyn monivetoon.

Moniajo on tietokoneen käyttöjärjestelmän ominaisuus, joka mahdollistaa näennäisesti usean ohjelman ajamisen samanaikaisesti. Jos tietokoneessa on vain yksi suoritin, moniajo toteutetaan jakamalla suorittimelle eri prosessien tehtäviä nopeasti vaihdellen. Todellisessa monisuoritintietokoneessa prosessien tehtävät jaetaan usean suorittimen kesken.

Perinteisesti moniajo mikrotietokoneissa on aina tarkoittanut yhden suorittimen käyttöä. Ensimmäinen moniajotapa oli yhteistyömoniajo, missä ohjelmat vapaaehtoisesti jakoivat suoritinaikaa toisille ohjelmille. Yhteistyömoniajoa käyttivät mm. Windows 95 -käyttöjärjestelmää edeltävät Windows-käyttöjärjestelmät ja Mac OS X -käyttöjärjestelmää edeltävät Mac OS -järjestelmät.

Nykyaikaisempia moniajon toimintamalleja ovat ennakoiva moniajo, irrottava moniajo ja keskeyttävä moniajo (engl. pre-emptive), jossa käyttöjärjestelmän osa tai prosessi nimeltä vuorottaja ("skeduleri", engl. scheduler) irrottaa ajossa olevan prosessin suorittimesta, valitsee uuden suoritettavan prosessin valmiustilassa olevien joukosta, antaa suorittimen sen hallintaan ja määrittelee sen saaman aikaviipaleen prosessin prioriteetin mukaan. Näin vältetään yhteistyömoniajossa oleva ongelma, että yksi huonosti käyttäytyvä ohjelma voi varastaa koneen koko laskentatehon.

Ensimmäiset moniajojärjestelmät tulivat markkinoille 1960-luvulla. IBM 360-sarjan keskustietokone oli ensimmäinen moniajoa tukeva tietokone.