Geheugen paging

Ferranti AtlasEdit

de eerste computer die paging ondersteunde was de supercomputer Atlas, gezamenlijk ontwikkeld door Ferranti, de Universiteit van Manchester en Plessey in 1963. De machine had een associatief (inhoud-adresseerbaar) geheugen met één ingang voor elke 512 word pagina. De Supervisor behandelde niet-equivalentie onderbrekingen en beheerde de overdracht van pagina ‘s tussen kern en trommel om een one-level store aan programma’ s te bieden.

Microsoft WindowsEdit

Windows 3.X en Windows 9xEdit

Paging is een functie van Microsoft Windows sinds Windows 3.0 in 1990. Windows 3.x maakt een verborgen bestand met de naam 386SPART.PAR of WIN386.SWP aan voor gebruik als wisselbestand. Het wordt over het algemeen gevonden in de root directory, maar het kan elders verschijnen (meestal in de windows directory). De grootte hangt af van hoeveel swap ruimte het systeem heeft (een instelling geselecteerd door de gebruiker Onder het Configuratiescherm → verbeterd onder “virtueel geheugen”). Als de gebruiker dit bestand verplaatst of verwijdert, verschijnt er een blauw scherm de volgende keer dat Windows wordt gestart, met de foutmelding “Het Permanente wisselbestand is beschadigd”. De gebruiker zal worden gevraagd om te kiezen of het bestand al dan niet te verwijderen (of het al dan niet bestaat).

Windows 95, Windows 98 en Windows Me gebruiken een vergelijkbaar bestand, en de Instellingen daarvoor bevinden zich onder het Configuratiescherm → Systeem → Performance tab → virtueel geheugen. Windows stelt automatisch de grootte van het paginabestand in om te beginnen bij 1,5× de grootte van het fysieke geheugen en uit te breiden tot 3× fysiek geheugen indien nodig. Als een gebruiker geheugenintensieve toepassingen uitvoert op een systeem met weinig fysiek geheugen, is het beter om deze groottes handmatig in te stellen op een waarde die hoger is dan de standaardwaarde.

Windows NTEdit

het bestand dat wordt gebruikt voor paging in de Windows NT-familie is pagefile.sys. De standaardlocatie van het paginabestand bevindt zich in de hoofdmap van de partitie waar Windows is geïnstalleerd. Windows kan worden geconfigureerd om vrije ruimte te gebruiken op alle beschikbare schijven voor pagina-bestanden. Het is echter vereist voor de opstartpartitie (d.w.z., het station met de Windows-map) om een pagina-bestand op te hebben als het systeem is geconfigureerd om ofwel kernel of volledig geheugen dumps te schrijven na een blauw scherm van de dood. Windows gebruikt het paging-bestand als tijdelijke opslag voor de geheugendump. Wanneer het systeem opnieuw wordt opgestart, kopieert Windows de geheugendump van het paginabestand naar een apart bestand en bevrijdt de ruimte die werd gebruikt in het paginabestand.

Fragmentatiedit

deze sectie moet worden bijgewerkt. Help dit artikel bij te werken om recente gebeurtenissen of nieuw beschikbare informatie weer te geven. (Juli 2014)

in de standaardconfiguratie van Windows mag het paginabestand indien nodig verder uitbreiden dan de initiële toewijzing. Als dit geleidelijk gebeurt, kan het sterk gefragmenteerd worden, wat mogelijk prestatieproblemen kan veroorzaken. Het gemeenschappelijke advies gegeven om dit te voorkomen is om een enkele “vergrendelde” pagina Bestandsgrootte in te stellen, zodat Windows niet zal uitbreiden. Het paginabestand breidt echter alleen uit als het is gevuld, wat in de standaardconfiguratie 150% van de totale hoeveelheid fysiek geheugen is. Dus de totale vraag naar pagina file-backed virtueel geheugen moet meer dan 250% van het fysieke geheugen van de computer voordat de pagina bestand zal uitbreiden.

de fragmentatie van het paginabestand dat optreedt wanneer het wordt uitgebreid, is tijdelijk. Zodra de uitgevouwen regio ‘ s niet meer in gebruik zijn (bij de volgende herstart, zo niet eerder) worden de extra schijfruimte-toewijzingen vrijgemaakt en is het paginabestand terug in zijn oorspronkelijke staat.

het vergrendelen van een paginabestand kan problematisch zijn als een Windows-toepassing meer geheugen vraagt dan de totale grootte van het fysieke geheugen en het paginabestand, wat leidt tot mislukte verzoeken om geheugen toe te wijzen waardoor toepassingen en systeemprocessen kunnen mislukken. Ook wordt het paginabestand zelden gelezen of geschreven in sequentiële volgorde, dus het prestatievoordeel van het hebben van een volledig sequentiële paginabestand Is minimaal. Echter, een groot paginabestand staat over het algemeen het gebruik van geheugen-zware toepassingen toe, zonder boetes naast het gebruik van meer schijfruimte. Hoewel een gefragmenteerd paginabestand op zichzelf misschien geen probleem is, zal fragmentatie van een paginabestand met variabele grootte na verloop van tijd verschillende gefragmenteerde blokken op de schijf creëren, waardoor andere bestanden gefragmenteerd worden. Om deze reden is een aaneengesloten paginabestand van vaste grootte beter, op voorwaarde dat de toegewezen grootte groot genoeg is om aan de behoeften van alle toepassingen te voldoen.

de vereiste schijfruimte kan gemakkelijk worden toegewezen aan systemen met recentere SPECIFICATIES (d.w.z. een systeem met 3 GB geheugen met een paginabestand met een vaste grootte van 6 GB op een harde schijf van 750 GB, of een systeem met 6 GB geheugen en een paginabestand met een vaste grootte van 16 GB en 2 TB schijfruimte). In beide voorbeelden gebruikt het systeem ongeveer 0,8% van de schijfruimte met het paginabestand vooraf uitgebreid tot zijn maximum.

het defragmenteren van het paginabestand wordt ook af en toe aanbevolen om de prestaties te verbeteren wanneer een Windows-systeem chronisch veel meer geheugen gebruikt dan het totale fysieke geheugen. Deze weergave negeert het feit dat, afgezien van de tijdelijke resultaten van de uitbreiding, het paginabestand niet gefragmenteerd in de tijd. Over het algemeen worden prestatieproblemen met betrekking tot de toegang tot paginabestanden veel effectiever aangepakt door meer fysiek geheugen toe te voegen.

Unix en UNIX-achtige systemsEdit

Unix-systemen en andere Unix-achtige besturingssystemen gebruiken de term “swap” om de handeling van het vervangen van schijfruimte voor RAM te beschrijven wanneer fysiek RAM vol is. In sommige van deze systemen, is het gebruikelijk om een hele partitie van een harde schijf te wijden aan het ruilen. Deze partities worden swap partities genoemd. Veel systemen hebben een hele harde schijf gewijd aan swapping, los van de data drive(s), met alleen een swap partitie. Een harde schijf gewijd aan swapping wordt een “swap drive” of een “scratch drive” of een “scratch disk”genoemd. Sommige van die systemen ondersteunen alleen swappen naar een swappartitie; andere ondersteunen ook swappen naar bestanden.

LinuxEdit

zie ook: Swap partities op SSD ‘ s, zswap en zram

de Linux kernel ondersteunt een vrijwel onbeperkt aantal swap backends (apparaten of bestanden), en ondersteunt ook het toewijzen van backend prioriteiten. Wanneer de kernel pagina ‘ s uit fysiek geheugen wisselt, gebruikt het de backend met de hoogste prioriteit met beschikbare vrije ruimte. Als meerdere swap backends dezelfde prioriteit krijgen, worden ze gebruikt op een round-robin manier (wat enigszins vergelijkbaar is met RAID 0 opslag lay-outs), waardoor verbeterde prestaties worden geboden zolang de onderliggende apparaten efficiënt parallel kunnen worden benaderd.

Swap bestanden en partitionsEdit

vanuit het perspectief van de eindgebruiker, swap bestanden in versies 2.6.x en later van de Linux kernel zijn vrijwel zo snel als swap partities; de beperking is dat swap bestanden aaneengesloten moeten worden toegewezen op hun onderliggende bestandssystemen. Om de prestaties van swap-bestanden te verhogen, houdt de kernel een kaart bij van waar ze op onderliggende apparaten worden geplaatst en opent ze direct, waardoor de cache wordt omzeild en de overhead van het bestandssysteem wordt vermeden. Hoe dan ook, Red Hat raadt swap partities aan om te gebruiken. Wanneer u op HDD ‘ s woont, wat rotatiemagneetmedia zijn, is een voordeel van het gebruik van swap-partities de mogelijkheid om ze op aaneengesloten HDD-gebieden te plaatsen die een hogere gegevensdoorvoer of snellere zoektijd bieden. De administratieve flexibiliteit van swap-bestanden kan echter opwegen tegen bepaalde voordelen van swap-partities. Bijvoorbeeld, een swap bestand kan worden geplaatst op elk gemount bestandssysteem, kan worden ingesteld op elke gewenste grootte, en kan worden toegevoegd of gewijzigd als dat nodig is. Swap partities zijn niet zo flexibel; ze kunnen niet worden uitgebreid zonder gebruik te maken van partitionering of volume management tools, die verschillende complexiteit en potentiële uitvaltijden introduceren.

SwappinessEdit

Swappiness is een Linux kernelparameter die het relatieve gewicht bepaalt dat wordt gegeven aan het verwisselen van runtime-geheugen, in tegenstelling tot het laten vallen van pagina ‘ s uit de systeempaginacache, wanneer een verzoek om toewijzing van geheugen niet kan worden voldaan vanuit vrij geheugen. Swappiness kan worden ingesteld op waarden tussen 0 en 200 (inclusief). Een lage waarde zorgt ervoor dat de kernel de voorkeur geeft om pagina ‘ s uit de paginacache te verwijderen, terwijl een hogere waarde ervoor zorgt dat de kernel de voorkeur geeft om “koude” geheugenpagina ‘ s uit te wisselen. De standaardwaarde is 60; hoger instellen kan een hoge latency veroorzaken als koude pagina ‘s terug moeten worden geruild (bijvoorbeeld bij interactie met een programma dat niet actief was), terwijl lager instellen (zelfs 0) een hoge latency kan veroorzaken wanneer bestanden die uit de cache zijn verwijderd opnieuw moeten worden gelezen, maar interactieve programma’ s responsiever zullen maken omdat ze minder waarschijnlijk koude pagina ‘ s terug moeten wisselen. Swapping kan ook HDD ‘s verder vertragen omdat het veel willekeurige schrijft, terwijl SSD’ s dit probleem niet hebben. Zeker de standaardwaarden werken goed in de meeste workloads, maar desktops en interactieve systemen voor elke verwachte taak kunnen de instelling willen verlagen terwijl batch processing en minder interactieve systemen kunnen willen verhogen.

Swap dededit

wanneer het systeemgeheugen zeer onvoldoende is voor de huidige taken en een groot deel van de geheugenactiviteit een langzame swap ondergaat, kan het systeem praktisch niet in staat zijn om een taak uit te voeren, zelfs als de CPU niet actief is. Wanneer elk proces op de swap wacht, wordt het systeem beschouwd als in swap death.

Swap dood kan gebeuren als gevolg van onjuist geconfigureerde geheugen overcommitment.

de oorspronkelijke beschrijving van het” swapping to death ” – probleem heeft betrekking op de X-server. Als code of gegevens die door de X-server worden gebruikt om te reageren op een toetsaanslag niet in het hoofdgeheugen zijn, dan zal de server, als de gebruiker een toetsaanslag invoert, een of meer paginafouten nemen, waardoor deze pagina ‘ s uit swap moeten worden gelezen voordat de toetsaanslag kan worden verwerkt, waardoor de reactie erop wordt vertraagd. Als deze pagina ‘ s niet in het geheugen blijven, zullen ze opnieuw moeten worden gefraulteerd om de volgende toetsaanslag af te handelen, waardoor het systeem praktisch niet reageert, zelfs als het eigenlijk andere taken normaal uitvoert.

macOSEdit

macOS gebruikt meerdere swap-bestanden. De standaard (en door Apple aanbevolen) installatie plaatst ze op de root partitie, hoewel het mogelijk is om ze in plaats daarvan op een aparte partitie of apparaat te plaatsen.

AmigaOS 4Edit

AmigaOS 4.0 introduceerde een nieuw systeem voor het toewijzen van RAM en het defragmenteren van fysiek geheugen. Het maakt nog steeds gebruik van platte gedeelde adresruimte die niet kan worden gedefragmenteerd. Het is gebaseerd op slab allocation methode en paging geheugen dat swapping mogelijk maakt. Paging werd geà mplementeerd in AmigaOS 4.1 maar kan het systeem blokkeren als alle fysieke geheugen is opgebruikt. Swap geheugen kan worden geactiveerd en gedeactiveerd elk moment waardoor de gebruiker om te kiezen voor het gebruik van alleen fysieke RAM.

Leave a Reply