Sivun välimuisti - Page cache
Laskennassa sivuvälimuisti , jota joskus kutsutaan myös levyvälimuistiksi , on läpinäkyvä välimuisti toissijaisesta tallennuslaitteesta , kuten kiintolevyltä (SSD) tai SSD-asemalta (SSD), peräisin oleville sivuille . Käyttöjärjestelmä pitää sivu välimuistin muuten käyttämättä jääneiden päämuistiin (RAM), jolloin nopeamman yhteyden sisältöä välimuistiin tallennetut sivut ja yleisen suorituskyvyn parannuksia. Sivun välimuisti toteutetaan ytimissä kanssa henkilöhaku muisti hallinta, ja on useimmiten läpinäkyvä sovelluksiin.
Yleensä käyttöjärjestelmä käyttää sivuvälimuistissa kaikkea fyysistä muistia, jota ei ole suoraan varattu sovelluksille. Koska muisti olisi muuten käyttämättömänä ja se voidaan helposti palauttaa, kun sovellukset sitä pyytävät, yleisesti ei ole liitetty suoritussakkoa ja käyttöjärjestelmä saattaa jopa ilmoittaa tällaisesta muistista "vapaana" tai "saatavana".
Kiintolevyasemien lukeminen / kirjoittaminen on päämuistiin verrattuna hidasta ja satunnaiset pääsyt vaativat kalliita levynhakuja . seurauksena suuremmat määrät päämuistista tuovat suorituskyvyn parannuksia, kun enemmän tietoja voidaan tallentaa välimuistiin. Laitteiston puolella on erillinen levyvälimuisti, joko erillisillä RAM- tai NVRAM- siruilla, jotka sijaitsevat joko levyohjaimessa (jolloin välimuisti on integroitu kiintolevyasemaan ja yleensä levypuskuriksi ) tai levyryhmäohjaimessa . Tällaista muistia ei pidä sekoittaa sivun välimuistiin.
Muistin säilyttäminen
Sivun välimuistissa olevia sivuja, joita on muokattu tuonnin jälkeen, kutsutaan likaisiksi sivuiksi. Koska sivuvälimuistin likaisilla sivuilla on samanlaiset kopiot toissijaisessa tallennustilassa (esim. Kiintolevyasema tai SSD-asema), niiden tilan hävittäminen ja uudelleenkäyttö on paljon nopeampaa kuin sovellusmuistin sivuttaminen, ja se on usein parempi kuin likainen sivu. toissijaiseen varastoon ja käyttävät tilaa uudelleen. Suoritettaviin binaareihin , kuten sovelluksiin ja kirjastoihin, pääsee myös tyypillisesti sivuvälimuistin kautta ja kartoitetaan yksittäisiin prosessitiloihin virtuaalimuistia käyttäen (tämä tapahtuu mmx- järjestelmän kutsun kautta Unixin kaltaisissa käyttöjärjestelmissä). Tämä ei tarkoita vain sitä, että binaaritiedostot jaetaan erillisten prosessien välillä, vaan myös sitä, että binaarien käyttämättömät osat huuhdellaan lopulta päämuistista, mikä johtaa muistin säilymiseen.
Koska välimuistissa olevat sivut voidaan helposti poistaa ja käyttää uudelleen, jotkut käyttöjärjestelmät, erityisesti Windows NT , ilmoittavat jopa sivun välimuistin käytön "käytettävissä olevana" muistina, kun taas muisti on tosiasiallisesti varattu levysivuille. Tämä on aiheuttanut jonkin verran hämmennystä sivuvälimuistin käytöstä Windowsissa.
Levy kirjoittaa
Sivun välimuisti auttaa myös kirjoittamaan levylle. Päämuistissa olevat sivut, joita on muokattu kirjoitettaessa tietoja levylle, on merkitty "likaisiksi" ja ne on huuhdeltava levylle ennen kuin ne voidaan vapauttaa. Kun tiedosto kirjoitetaan, tietyn lohkon välimuistisivu etsitään. Jos se löytyy jo sivun välimuistista, kirjoitus tehdään päämuistissa olevalle sivulle. Jos sitä ei löydy sivun välimuistista, silloin kun kirjoitus putoaa täydellisesti sivukoon rajoille, sivua ei edes lueta levyltä, vaan se varataan ja merkitään välittömästi likaiseksi. Muussa tapauksessa sivut haetaan levyltä ja vaaditut muutokset tehdään. Sivun välimuistissa luotu tai avattu tiedosto, johon ei ole kirjoitettu, saattaa johtaa nollatavun tiedostoon myöhemmin luettaessa.
Kaikkia välimuistiin tallennettuja sivuja ei kuitenkaan voida kirjoittaa, koska ohjelmakoodi kartoitetaan usein vain luku- tai kopioi kirjoitettavaksi -toiminnoksi . jälkimmäisessä tapauksessa muutokset koodiin näkyvät vain itse prosessille, eikä niitä kirjoiteta levylle.
Sivukanavan hyökkäykset
Vuonna 2019 tietoturvatutkijat osoittivat sivukanavahyökkäykset sivuvälimuistia vastaan: on mahdollista ohittaa käyttöoikeuksien erottaminen ja suodattaa tietoja muista prosesseista seuraamalla järjestelmällisesti, ovatko välimuistissa jotkut tiedostosivut (esimerkiksi suoritettavat tai kirjastotiedostot ).