Phil Bull
philbull@gmail.com 2011
Michael Hill
mdhillca@gmail.com 2011, 2014
Minneskartan för en process kan hjälpa till diagnostisera vissa minnesproblem.
Isak Östlund
translate@catnip.nu 2017

# Vad är en minneskarta?

Virtuellt minne är en representation av det fysiska minnet tillsammans med växlingsutrymmet i ett system. Det ger processer som körs tillgång till mer än den tillgängliga mängden fysiskt minne genom mappning av platser i det fysiska minnet till filer på disk.

När ett program startas tilldelar systemet det ett unikt process-ID (PID) och dess instruktioner och data läses in i minnet som sidor. Sidtabellen för varje process mappar samspelet mellan dess sidor i virtuellt minne och deras plats i fysiskt minne. Minneskartan visar den totala mängd minne som används av processen, och kan användas för att fastställa minnesförbrukningen av att köra en eller flera instanser av programmet, för att säkerställa användningen av korrekt delade bibliotek, för att se resultaten av justeringen på diverse prestandarelaterade parametrar som programmet kan ha, eller för att diagnostisera problem så som minnesläckor.

Om flera kopior av ett program körs kommer programmets instruktioner (eller text) bara behöva läsas in en gång i fysiskt minne. Varje gång en ny instans av programmet startas (som en unik process med sina egna virtuella minnessidor), kommer dess sidtabell att mappa platsen för text i virtuellt minne till de instruktionerna på den ursprungliga riktiga minnesplatsen. Dessutom kommer alla dynamiskt delade bibliotek som används av processen att visas som distinkta i virtuellt minne, men är delade referenser till en enda kopia av bibliotekets textsegment i riktigt minne. När man räknar med den totala minnesanvändningen för en process är det viktigt att observera att kostnaden av delade bibliotek som läses in i minne kan delas mellan alla processer som för närvarande använder dem.

När systemet behöver fler minnessidor än vad som är tillgängligt så kommer några sidor att växlas ut eller skrivas till växlingsutrymmet. Textsidor flaggas läsa-köra i minnet och behöver inte skrivas till växlingsutrymmet då de kan läsas in på nytt från sin ursprungliga plats på disk. Datasidor har rättigheterna läsa-skriva, och om de ändras när de är i minne så etiketteras de smutsiga, och måste växlas ut när de tilldelas för växling. När en sida i växlingsutrymmet krävs av en körande process behöver den växlas tillbaka in före användning, vilket kanske orsakar att en annan sida växlas ut.