Ero sivun ”Sivutus” versioiden välillä

Wikipediasta
Siirry navigaatioon Siirry hakuun
[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
Ipr1 (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Ipr1 (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Rivi 7: Rivi 7:


Sivutus jakaa muistin kiinteän kokoisiin lohkoihin joita kutsutaan '''sivuiksi'''.<ref name="os" /> 1990-luvulla havaittiin tehokkuushyötyä käyttämällä useampaa kuin yhtä sivukokoa, mutta se ei ole hyödyksi kaikissa tilanteissa.<ref>{{Verkkoviite | osoite = https://lwn.net/Articles/374424/ | nimeke = Huge pages part 1 (Introduction) | tekijä = Mel Gorman | ajankohta = 16.2.2010 | viitattu = 23.10.2020 | kieli = {{en}} }}</ref>
Sivutus jakaa muistin kiinteän kokoisiin lohkoihin joita kutsutaan '''sivuiksi'''.<ref name="os" /> 1990-luvulla havaittiin tehokkuushyötyä käyttämällä useampaa kuin yhtä sivukokoa, mutta se ei ole hyödyksi kaikissa tilanteissa.<ref>{{Verkkoviite | osoite = https://lwn.net/Articles/374424/ | nimeke = Huge pages part 1 (Introduction) | tekijä = Mel Gorman | ajankohta = 16.2.2010 | viitattu = 23.10.2020 | kieli = {{en}} }}</ref>

Tarvittaessa enemmän muistia kuin tietokoneessa on fyysisesti voidaan osa muistisivuista ''sivuttaa levylle''.<ref name="vmbp">{{Verkkoviite | osoite = http://pages.cs.wisc.edu/~remzi/OSTEP/vm-beyondphys.pdf | nimeke = Beyond Physical Memory: Mechanisms | tekijä = Arpaci-Dusseau, Remzi H. & Arpaci-Dusseau, Andrea C. | tiedostomuoto = PDF | viitattu = 23.10.2020 | kieli = {{en}} }}</ref> Vanhoissa järjestelmissä ohjelmoijan oli manuaalisesti aloitettava tiedon siirto muistista ({{k-en|memory overlay}}).<ref name="vmbp"/>


== Heittovaihto ==
== Heittovaihto ==

Versio 23. lokakuuta 2020 kello 20.50

Sivutus tarkoittaa tietokoneen muistin pilkkomista kiinteän kokoisiin lohkoihin, joka toimii virtuaalimuistin yhteydessä.[1] Vaihtoehtoinen tapa on muistin segmentointi.[1][2]

Ennen käytettyä menetelmää koko prosessin muistin kirjoittamiseksi massamuistiin kutsutaan heittovaihdoksi.

Historia

Näennäismuistin ja sivutuksen historia juontaa Ferrantin Atlas-tietokoneeseen.[3][1]

Sivutus jakaa muistin kiinteän kokoisiin lohkoihin joita kutsutaan sivuiksi.[1] 1990-luvulla havaittiin tehokkuushyötyä käyttämällä useampaa kuin yhtä sivukokoa, mutta se ei ole hyödyksi kaikissa tilanteissa.[4]

Tarvittaessa enemmän muistia kuin tietokoneessa on fyysisesti voidaan osa muistisivuista sivuttaa levylle.[5] Vanhoissa järjestelmissä ohjelmoijan oli manuaalisesti aloitettava tiedon siirto muistista (engl. memory overlay).[5]

Heittovaihto

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

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

Viitteet

  1. a b c d Arpaci-Dusseau, Remzi H. & Arpaci-Dusseau, Andrea C.: Paging: Introduction (PDF) pages.cs.wisc.edu. Viitattu 14.8.2019. (englanniksi)
  2. Arpaci-Dusseau, Remzi H. & Arpaci-Dusseau, Andrea C.: Segmentation (PDF) pages.cs.wisc.edu. Viitattu 15.8.2019. (englanniksi)
  3. McAllister, Neil: Behold ATLAS, the fastest computer of 50 years ago The Register. Viitattu 26.7.2017.
  4. Mel Gorman: Huge pages part 1 (Introduction) lwn.net. 16.2.2010. Viitattu 23.10.2020. (englanniksi) 
  5. a b Arpaci-Dusseau, Remzi H. & Arpaci-Dusseau, Andrea C.: Beyond Physical Memory: Mechanisms (PDF) pages.cs.wisc.edu. Viitattu 23.10.2020. (englanniksi)