Heittovaihto

Kohteesta Wikipedia
Siirry navigaatioon Siirry hakuun

Heittovaihto (engl. swapping) tarkoittaa tietokoneen prosessin koko käytössä olevan osoiteavaruuden siirtämistä keskusmuistista massamuistilaitteelle tai takaisin.

Heittovaihtoa käytettiin runsaasti ennen virtuaalimuistin yleistymistä ratkaisemaan keskusmuistin pienuudesta tulevia ongelmia. Koska heittovaihdossa siirretään koko prosessin muisti kerralla massamuistilaitteelle, kestää yksi heittovaihto-operaatio suhteellisen kauan. Lisäksi heittovaihdolla ei voi ratkaista tilannetta, jossa yksi prosessi on niin suuri, että se ei mahdu keskusmuistiin edes yksinään. Jälkimmäinen tilanne piti ratkaista käsintehdyllä kerrostamisella, joka on hyvin vaikea tehtävä hallittavaksi.

Heittovaihdon on lähes kokonaan korvannut sivuttavan virtuaalimuistin käyttö. Kuitenkin myös virtuaalimuistikoneissa täytyy jossain tilanteissa turvautua heittovaihtoon. Jos prosessia ajetaan liian pienellä muistin määrällä, tästä aiheutuu suuri määrä virtuaalimuistijärjestelmän aiheuttamia keskeytyksiä, joista jokainen käynnistää muistisiirron massamuistilaitteelta, mahdollisesti myös massamuistilaitteelle. Vaikka järjestelmä toimii teoriassa, käytännössä kone tuntuu pysähtyvän. Ilmiötä kutsutaan ruuhkautumiseksi (engl. thrashing). Tämän takia myös virtuaalimuistijärjestelmissä siirrytään heittovaihdon käyttöön äärimmäisissä kuormitustilanteissa. Virtuaalimuistijärjestelmän heittovaihto siirtää massamuistilaitteelle sillä hetkellä keskusmuistissa olevat sivut, palautusvaiheessa keskusmuistiin luetaan nämä viimeksi käytössä olleet sivut, ei prosessin koko osoiteavaruutta. Yleisesti ottaen virtuaalimuistijärjestelmissä on vaikea päätellä, milloin on oikea hetki siirtyä heittovaihtoon.

Lähteet[muokkaa | muokkaa wikitekstiä]

Ilkka Haikala ja Hannu-Matti Järvinen: Käyttöjärjestelmät (luku 4), Talentum 2003, ISBN 951-762-837-4.