Memory paging

Ferranti AtlasEdit

den första datorn som stöder personsökning var superdatorn Atlas, gemensamt utvecklad av Ferranti, University of Manchester och Plessey 1963. Maskinen hade ett associativt (innehållsadresserbart) minne med en post för varje 512 word-sida. Handledaren hanterade avbrott i icke-ekvivalens och hanterade överföringen av sidor mellan kärna och trumma för att tillhandahålla en butik på en nivå till program.

Microsoft WindowsEdit

Windows 3.X och Windows 9xEdit

personsökning har varit en funktion i Microsoft Windows sedan Windows 3.0 1990. Windows 3.x skapar en dold fil med namnet 386SPART.PAR eller WIN386.SWP för användning som en swap-fil. Det finns vanligtvis i rotkatalogen, men det kan visas någon annanstans (vanligtvis i Windows-katalogen). Dess storlek beror på hur mycket swap utrymme systemet har (en inställning som valts av användaren under kontrollpanel Bisexuell förbättras under “virtuellt minne”). Om användaren flyttar eller tar bort den här filen visas en blå skärm nästa gång Windows startas, med felmeddelandet “den permanenta swap-filen är skadad”. Användaren uppmanas att välja om filen ska raderas eller inte (om den finns eller inte).

Windows 95, Windows 98 och Windows Me använder en liknande fil,och inställningarna för den finns under Kontrollpanelen i det virtuella minnet i systemet för prestanda i systemet i Kontrollpanel. Windows ställer automatiskt in sidfilens storlek så att den börjar vid 1,5 sek storleken på det fysiska minnet och expanderar upp till 3 sek fysiskt minne om det behövs. Om en användare kör minnesintensiva applikationer på ett system med lågt fysiskt minne är det att föredra att manuellt ställa in dessa storlekar till ett värde högre än standard.

Windows NTEdit

filen som används för personsökning i Windows NT-familjen är pagefile.sys. Standardplatsen för sidfilen finns i rotkatalogen på den partition där Windows är installerat. Windows kan konfigureras för att använda ledigt utrymme på alla tillgängliga enheter för sidfiler. Det krävs dock för startpartitionen (dvs., enheten som innehåller Windows-katalogen) för att ha en sidfil på den om systemet är konfigurerat för att skriva antingen kärna eller fulla minnesdumpar efter en blå dödsskärm. Windows använder personsökningsfilen som tillfällig lagring för minnesdumpen. När systemet startas om kopierar Windows minnesdumpen från sidfilen till en separat fil och frigör det utrymme som användes i sidfilen.

FragmentationEdit

detta avsnitt behöver uppdateras. Hjälp uppdatera den här artikeln för att återspegla de senaste händelserna eller nyligen tillgänglig information. (Juli 2014)

i standardkonfigurationen för Windows får sidfilen expandera utöver den ursprungliga allokeringen vid behov. Om detta händer gradvis kan det bli kraftigt fragmenterat vilket potentiellt kan orsaka prestandaproblem. Det vanliga rådet som ges för att undvika detta är att ställa in en enda “låst” sidfilstorlek så att Windows inte expanderar den. Sidfilen expanderar dock bara när den har fyllts, vilket i sin standardkonfiguration är 150% av den totala mängden fysiskt minne. Således måste den totala efterfrågan på sidfilstödda virtuella minne överstiga 250% av datorns fysiska minne innan sidfilen kommer att expandera.

fragmenteringen av sidfilen som uppstår när den expanderar är tillfällig. Så snart de expanderade regionerna inte längre används (vid nästa omstart, om inte tidigare) frigörs ytterligare diskutrymme och sidfilen är tillbaka till sitt ursprungliga tillstånd.

att låsa en sidfilstorlek kan vara problematiskt om ett Windows-program begär mer minne än den totala storleken på fysiskt minne och sidfilen, vilket leder till misslyckade förfrågningar om att allokera minne som kan orsaka att applikationer och systemprocesser misslyckas. Sidfilen läses eller skrivs sällan i sekventiell ordning, så prestandafördelen med att ha en helt Sekventiell sidfil är minimal. En stor sidfil tillåter dock i allmänhet användning av minnestunga applikationer, utan några påföljder förutom att använda mer diskutrymme. Medan en fragmenterad sidfil kanske inte är ett problem i sig, kommer fragmentering av en sidfil med variabel storlek med tiden att skapa flera fragmenterade block på enheten, vilket gör att andra filer blir fragmenterade. Av denna anledning är en sammanhängande sidfil med fast storlek bättre, förutsatt att den tilldelade storleken är tillräckligt stor för att tillgodose behoven hos alla applikationer.

det nödvändiga diskutrymmet kan enkelt tilldelas på system med nyare SPECIFIKATIONER (dvs. ett system med 3 GB minne med en 6 GB sidfil med fast storlek på en 750 GB hårddisk, eller ett system med 6 GB minne och en 16 GB sidfil med fast storlek och 2 TB diskutrymme). I båda exemplen använder systemet cirka 0,8% av diskutrymmet med sidfilen fördelad till sitt maximala.

defragmentering av sidfilen rekommenderas också ibland för att förbättra prestanda när ett Windows-system kroniskt använder mycket mer minne än dess totala fysiska minne. Denna vy ignorerar det faktum att sidfilen, förutom de tillfälliga resultaten av expansionen, inte blir fragmenterad över tiden. I allmänhet hanteras prestandaproblem relaterade till sidfilåtkomst mycket mer effektivt genom att lägga till mer fysiskt minne.

Unix och Unix-liknande systemredigera

Unix-system och andra Unix-liknande operativsystem använder termen “swap” för att beskriva handlingen att ersätta diskutrymme för RAM när fysiskt RAM är fullt. I vissa av dessa system är det vanligt att ägna en hel partition på en hårddisk till byte. Dessa partitioner kallas swap partitioner. Många system har en hel hårddisk dedikerad till byte, separat från dataenheten(erna), som endast innehåller en swap-partition. En hårddisk tillägnad byta kallas en “swap drive” eller en “scratch drive”eller en ” scratch disk”. Vissa av dessa system stöder bara byte till en swap-partition; andra stöder också byte till filer.

LinuxEdit

Se även: Byt partitioner på SSD: er, zswap och zram

Linux-kärnan stöder ett praktiskt taget obegränsat antal swap-backends (enheter eller filer) och stöder också tilldelning av backend-prioriteringar. När kärnan byter sidor ur fysiskt minne använder den högsta prioriterade backend med tillgängligt ledigt utrymme. Om flera swap-backends tilldelas samma prioritet används de på ett Round-robin-sätt (vilket liknar RAID 0-lagringslayouter), vilket ger förbättrad prestanda så länge de underliggande enheterna effektivt kan nås parallellt.

Byt filer och partitionsEdit

byt filer i version 2.6 ur slutanvändarens perspektiv.x och senare av Linux-kärnan är praktiskt taget lika snabba som swap-partitioner; begränsningen är att swap-filer ska tilldelas sammanhängande på deras underliggande filsystem. För att öka prestanda för swap-filer håller kärnan en karta över var de placeras på underliggande enheter och får åtkomst till dem direkt, vilket kringgår cachen och undviker filsystemkostnader. Oavsett, Red Hat rekommenderar swap partitioner som ska användas. När du bor på hårddiskar, som är roterande magnetiska medieenheter, är en fördel med att använda swap-partitioner möjligheten att placera dem på angränsande HÅRDDISKOMRÅDEN som ger högre dataflöde eller snabbare söktid. Den administrativa flexibiliteten hos swap-filer kan dock uppväga vissa fördelar med swap-partitioner. Till exempel kan en swap-fil placeras på ett monterat filsystem, kan ställas in på önskad storlek och kan läggas till eller ändras efter behov. Swap-partitioner är inte lika flexibla; de kan inte förstoras utan att använda partitionerings-eller volymhanteringsverktyg, som introducerar olika komplexiteter och potentiella driftstopp.

SwappinessEdit

Swappiness är en Linux-kärnparameter som styr den relativa vikten som ges för att byta ut ur runtime-minnet, i motsats till att släppa sidor från systemsidans cache, när en begäran om minnesallokering inte kan uppfyllas från ledigt minne. Swappiness kan ställas in på värden mellan 0 och 200 (inklusive). Ett lågt värde gör att kärnan föredrar att vräka sidor från sidcachen medan ett högre värde gör att kärnan föredrar att byta ut “kalla” minnessidor. Standardvärdet är 60; om du ställer in det högre kan det orsaka hög latens om kalla sidor måste bytas in igen (när du interagerar med ett program som varit inaktivt till exempel), medan du ställer in det lägre (till och med 0) kan det orsaka hög latens när filer som har blivit vräkta från cachen måste läsas igen, men kommer att göra interaktiva program mer lyhörda eftersom de är mindre benägna att behöva byta tillbaka kalla sidor. Byte kan också sakta ner Hårddiskar ytterligare eftersom det innebär många slumpmässiga skrivningar, medan SSD: er inte har detta problem. Visst fungerar standardvärdena bra i de flesta arbetsbelastningar, men stationära datorer och interaktiva system för alla förväntade uppgifter kanske vill sänka inställningen medan batchbehandling och mindre interaktiva system kanske vill öka den.

Byt deathEdit

när systemminnet är mycket otillräckligt för de aktuella uppgifterna och en stor del av minnesaktiviteten går igenom en långsam byte, kan systemet bli praktiskt taget oförmögen att utföra någon uppgift, även om CPU: n är ledig. När varje process väntar på swap, systemet anses vara i swap död.

Swap död kan hända på grund av felaktigt konfigurerat minne overcommitment.

den ursprungliga beskrivningen av problemet” byta till döden ” avser X-servern. Om kod eller data som används av X-servern för att svara på en tangenttryckning inte finns i huvudminnet, kommer servern att ta ett eller flera sidfel om användaren går in i en tangenttryckning, vilket kräver att dessa sidor läses från byte innan tangenttryckningen kan bearbetas, vilket saktar svaret på det. Om dessa sidor inte finns kvar i minnet måste de klandras igen för att hantera nästa tangenttryckning, vilket gör att systemet praktiskt taget inte svarar även om det faktiskt utför andra uppgifter normalt.

macOSEdit

macOS använder flera swap-filer. Standardinstallationen (och Apple-rekommenderad) placerar dem på rotpartitionen, men det är möjligt att placera dem istället på en separat partition eller enhet.

AmigaOS 4Edit

AmigaOS 4.0 introducerade ett nytt system för att allokera RAM och defragmentera fysiskt minne. Det använder fortfarande platt delat adressutrymme som inte kan defragmenteras. Den är baserad på plattan allokeringsmetod och personsökning minne som tillåter byta. Personsökning implementerades i AmigaOS 4.1 men kan låsa upp systemet om allt fysiskt minne används. Swap-minne kan aktiveras och avaktiveras när som helst så att användaren kan välja att endast använda fysiskt RAM.

Leave a Reply