Muistihaku

Ferranti AtlasEdit

ensimmäinen kaukohakua tukeva tietokone oli Ferrantin, Manchesterin yliopiston ja Plesseyn yhdessä kehittämä supertietokone Atlas vuonna 1963. Koneessa oli assosiatiivinen (sisältöosoitteinen) muisti, jossa oli yksi merkintä jokaista 512 sanan sivua kohti. Valvoja hoiti ei-ekvivalenssiset keskeytykset ja hoiti sivujen siirron ytimen ja rummun välillä, jotta ohjelmille saatiin yksitasoinen säilö.

Microsoft WindowsEdit

Windows 3.x ja Windows 9xEdit

hakulaitteet ovat olleet Microsoft Windowsin ominaisuus Windows 3.0: sta lähtien vuonna 1990. Windows 3.x luo piilotiedoston nimeltä 386SPART.PAR tai WIN386.SWP käytettäväksi swap-tiedostona. Se löytyy yleensä juurihakemistosta, mutta se voi näkyä muualla (tyypillisesti WINDOWS-hakemistossa). Sen koko riippuu siitä, kuinka paljon swap-tilaa järjestelmällä on (asetus, jonka käyttäjä valitsee Ohjauspaneelin → parannettu kohdassa “virtuaalimuisti”). Jos käyttäjä siirtää tai poistaa tämän tiedoston, seuraavan kerran Windowsin käynnistyessä ilmestyy sininen ruutu, jossa on virheilmoitus”pysyvä swap-tiedosto on korruptoitunut”. Käyttäjää pyydetään valitsemaan, poistetaanko tiedosto vai ei (onko sitä olemassa).

Windows 95, Windows 98 ja Windows Me käyttävät samanlaista tiedostoa, ja sen asetukset löytyvät Ohjauspaneelista → Järjestelmä → Suorituskyky-välilehti → virtuaalimuisti. Windows asettaa automaattisesti page-tiedoston koon alkamaan 1,5× fyysisen muistin koko ja laajentaa tarvittaessa jopa 3× fyysisen muistin kokoiseksi. Jos käyttäjä käyttää muistipainotteisia sovelluksia järjestelmässä, jossa on alhainen fyysinen muisti, on suositeltavaa asettaa nämä koot manuaalisesti oletusarvoa suuremmaksi.

Windows NTEdit

Windows NT-perheen hakuun käytetty tiedosto on pagefile.sys. Page-tiedoston oletussijainti on sen osion juurihakemistossa, johon Windows on asennettu. Windows voidaan konfiguroida käyttämään vapaata tilaa millä tahansa käytettävissä olevilla page-tiedostojen asemilla. Sitä tarvitaan kuitenkin boot-osioon (ts., asema, joka sisältää Windows directory) on sivun tiedoston sitä, jos järjestelmä on määritetty kirjoittamaan joko kernel tai Täysi muisti dumps jälkeen sinisen ruudun kuoleman. Windows käyttää hakutiedostoa väliaikaisena tallennustilana muistinsiirtoa varten. Kun järjestelmä käynnistetään uudelleen, Windows kopioi muistidumppauksen page-tiedostosta erilliseksi tiedostoksi ja vapauttaa page-tiedostossa käytetyn tilan.

FragmentationEdit

tämä kohta on päivitettävä. Auta päivittämään tämä artikkeli vastaamaan viimeaikaisia tapahtumia tai äskettäin saatavilla olevia tietoja. (Heinäkuu 2014)

Windowsin oletusasetuksissa page-tiedosto saa tarvittaessa laajentua alkuperäisen kohdentamisensa ulkopuolelle. Jos tämä tapahtuu vähitellen, se voi pirstoutua voimakkaasti, mikä voi mahdollisesti aiheuttaa suorituskykyongelmia. Yleinen neuvo tämän välttämiseksi on asettaa yhden “lukitun” sivun tiedostokoko niin, että Windows ei laajenna sitä. Sivu-tiedosto laajenee kuitenkin vasta täytettyään, mikä on oletusmäärityksessään 150% fyysisen muistin kokonaismäärästä. Näin ollen page-tiedostotaustaisen virtuaalimuistin kokonaiskysynnän täytyy ylittää 250% tietokoneen fyysisestä muistista ennen kuin sivu-tiedosto laajenee.

laajennettaessa tapahtuva page-tiedoston pirstoutuminen on väliaikaista. Heti kun laajennetut alueet eivät ole enää käytössä (seuraavassa uudelleenkäynnistyksessä, jos ei aikaisemmin) ylimääräiset levytilan varaukset vapautuvat ja sivu-tiedosto on takaisin alkuperäiseen tilaansa.

page-tiedoston koon lukitseminen voi olla ongelmallista, jos Windows-sovellus pyytää enemmän muistia kuin fyysisen muistin ja page-tiedoston kokonaiskoko, mikä johtaa epäonnistuneisiin pyyntöihin jakaa muistia, mikä voi aiheuttaa sovellusten ja järjestelmäprosessien epäonnistumisen. Myös, sivu tiedosto harvoin luetaan tai kirjoitetaan peräkkäisessä järjestyksessä, joten suorituskyky etu ottaa täysin peräkkäinen sivu tiedosto on minimaalinen. Suuri sivutiedosto mahdollistaa kuitenkin yleensä muistipainotteisten sovellusten käytön, jolloin ei ole rangaistuksia lisätilan käytön lisäksi. Vaikka pirstoutunut sivutiedosto ei välttämättä itsessään ole ongelma, muuttuvan kokoisen sivutiedoston pirstoutuminen luo ajan myötä levylle useita pirstaleisia lohkoja, jolloin muut tiedostot pirstoutuvat. Tästä syystä kiinteän kokoinen vierekkäinen sivutiedosto on parempi, edellyttäen, että varattu koko on riittävän suuri kaikkien sovellusten tarpeisiin.

tarvittava levytila voidaan helposti jakaa järjestelmille, joilla on uudempia spesifikaatioita (ts. järjestelmä, jossa on 3 gigatavun muistia ja 6 gigatavun kiinteäkokoinen sivutiedosto 750 gigatavun levyasemalla, tai järjestelmä, jossa on 6 gigatavun muisti ja 16 gigatavun kiinteäkokoinen sivutiedosto ja 2 TB levytilaa). Molemmissa esimerkeissä järjestelmä käyttää noin 0,8% levytilasta sivutiedoston esipidettyä maksimiinsa.

page-tiedoston eheyttämistä suositellaan toisinaan myös suorituskyvyn parantamiseksi, kun Windows-järjestelmä käyttää kroonisesti paljon enemmän muistia kuin sen fyysinen kokonaismuisti. Tämä näkemys jättää huomiotta sen, että tilapäisten laajennustulosten lisäksi sivutiedosto ei pirstaloidu ajan myötä. Yleensä sivutiedostojen käyttöön liittyvät suorituskykyyn liittyvät huolenaiheet käsitellään paljon tehokkaammin lisäämällä fyysistä muistia.

Unix – ja Unixin kaltaiset systeemit

Unix-järjestelmät ja muut Unixin kaltaiset käyttöjärjestelmät käyttävät termiä “swap” kuvaamaan sitä, miten RAM-muistin levytila korvataan fyysisen RAM-muistin ollessa täynnä. Joissakin näistä järjestelmistä, on tavallista omistaa koko osio kiintolevyn swap. Näitä osioita kutsutaan swap osioiksi. Monissa järjestelmissä on koko kiintolevy omistettu swap, erillinen data-asema (t), joka sisältää vain swap-osio. Vaihtamiseen omistettua kiintolevyä kutsutaan “swap-asemaksi” tai “scratch driveksi”tai” scratch diskiksi”. Jotkut näistä järjestelmistä tukevat vain vaihtamista swap-osioon, toiset tukevat myös vaihtamista tiedostoihin.

LinuxEdit

Katso myös: Swap osiot SSD, zswap, ja zram

Linux-ydin tukee lähes rajaton määrä swap backend (laitteet tai tiedostot), ja tukee myös jakaminen backend prioriteetit. Kun ydin vaihtaa sivuja pois fyysisestä muistista, se käyttää korkeimman prioriteetin taustajärjestelmää, jossa on vapaata tilaa. Jos Useita swap backends on määritetty sama prioriteetti, niitä käytetään round-robin muoti (joka on hieman samanlainen RAID 0 varastointi asetteluja), joka tarjoaa paremman suorituskyvyn niin kauan kuin taustalla olevat laitteet voidaan tehokkaasti käyttää rinnakkain.

Swap files and partitionsEdit

loppukäyttäjän näkökulmasta, swap files in Version 2.6.Linux-ytimen x ja uudempi versio ovat käytännössä yhtä nopeita kuin swap-osiot; rajoituksena on, että swap-tiedostot on jaettava johdonmukaisesti niiden taustalla oleviin tiedostojärjestelmiin. Tehostaakseen swap-tiedostojen suorituskykyä ydin pitää kartan siitä, missä ne on sijoitettu taustalla oleviin laitteisiin,ja käyttää niitä suoraan, ohittaen näin välimuistin ja välttäen tiedostojärjestelmän yläpuolella. Siitä huolimatta Red Hat suosittelee vaihtamaan osioita käytettäväksi. Kun asuvat HDD, jotka ovat pyörivä magneettisia medialaitteita, yksi etu käyttämällä swap osioita on kyky sijoittaa ne vierekkäisille HDD-alueille, jotka tarjoavat suuremman tiedon läpimenon tai nopeammin etsiä aikaa. Kuitenkin, hallinnollinen joustavuus swap tiedostoja voi ylittää tiettyjä etuja swap osiot. Esimerkiksi swap-tiedosto voidaan sijoittaa mihin tahansa asennettuun tiedostojärjestelmään, se voidaan asettaa haluttuun kokoon ja sitä voidaan lisätä tai muuttaa tarpeen mukaan. Swap osiot eivät ole yhtä joustavia; niitä ei voida laajentaa ilman osiointia tai äänenvoimakkuuden hallintatyökaluja, jotka ottavat käyttöön erilaisia mutkikkuuksia ja mahdollisia seisokkeja.

SwappinessEdit

Swappiness on Linux-ytimen parametri, joka ohjaa ajonaikaisen muistin vaihtamiselle annettua suhteellista painoarvoa, toisin kuin sivujen pudottamiselle järjestelmän sivuvälimuistista, aina kun muistin jakopyyntöä ei voida täyttää vapaasta muistista. Swappiness voidaan asettaa arvoiksi välille 0-200 (mukaan lukien). Alhainen arvo saa ytimen häätämään sivuja sivuvälimuistista, kun taas korkeampi arvo saa ytimen vaihtamaan mieluummin “kylmät” muistisivut. Oletusarvo on 60; sen asettaminen korkeammalle voi aiheuttaa korkean latenssin, jos kylmät sivut on vaihdettava takaisin (kun ne ovat vuorovaikutuksessa esimerkiksi tyhjäkäynnillä olleen ohjelman kanssa), kun taas sen asettaminen alemmas (jopa 0) voi aiheuttaa korkean latenssin, kun välimuistista häädetyt tiedostot on luettava uudelleen, mutta se tekee interaktiivisista ohjelmista herkempiä, koska ne eivät todennäköisesti tarvitse kylmien sivujen vaihtoa takaisin. Swapping voi myös hidastaa HDDs edelleen, koska siihen liittyy paljon satunnaisia kirjoittaa, kun taas SSD ei ole tätä ongelmaa. Varmasti oletusarvot toimivat hyvin useimmissa työkuormissa, mutta pöytätietokoneet ja interaktiiviset järjestelmät mihin tahansa odotettuun tehtävään saattavat haluta alentaa asetusta, kun taas eräkäsittely ja vähemmän Interaktiiviset järjestelmät saattavat haluta lisätä sitä.

Swap deathEdit

kun järjestelmän muisti on erittäin riittämätön nykyisiin tehtäviin ja suuri osa muistitoiminnasta kulkee hitaan swapin kautta, järjestelmä voi muuttua käytännössä kykenemättömäksi suorittamaan mitään tehtävää, vaikka suoritin olisi tyhjäkäynnillä. Kun jokainen prosessi odottaa swap, järjestelmän katsotaan olevan swap kuolema.

Vaihtokuolema voi johtua väärin konfiguroidusta muistin ylisitoumuksesta.

“swapping to death” – ongelman alkuperäinen kuvaus liittyy X-palvelimeen. Jos X-palvelimen näppäilyyn vastaamiseen käyttämä koodi tai data ei ole päämuistissa, niin jos käyttäjä syöttää näppäilyn, palvelin ottaa yhden tai useamman sivun vian, joka vaatii näitä sivuja lukemaan swapista ennen näppäilyn käsittelyä, mikä hidastaa siihen vastaamista. Jos nämä sivut eivät pysy muistissa, ne täytyy moittia uudelleen käsittelemään seuraavaa näppäimen painallusta, jolloin järjestelmä ei käytännössä reagoi, vaikka se suorittaisi muita tehtäviä normaalisti.

macOSEdit

macOS käyttää useita swap-tiedostoja. Oletus (ja Applen suosittelema) asennus sijoittaa ne juuriosioon, vaikka on mahdollista sijoittaa ne sen sijaan erilliseen osioon tai laitteeseen.

AmigaOS 4Edit

AmigaOS 4.0 otti käyttöön uuden järjestelmän RAM-muistin jakamiseksi ja fyysisen muistin eheyttämiseksi. Se käyttää edelleen tasaista jaettua osoiteavaruutta, jota ei voi eheyttää. Se perustuu laatan jakomenetelmään ja hakumuistiin, joka mahdollistaa vaihtamisen. Haku toteutettiin AmigaOS 4.1: ssä, mutta se voi lukita järjestelmän, jos kaikki fyysinen muisti on käytetty loppuun. Swap muisti voidaan aktivoida ja deaktivoida milloin tahansa, jolloin käyttäjä voi valita käyttää vain fyysistä RAM-muistia.

Leave a Reply