This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Phil Bull
philbull@gmail.com 2011
Michael Hill
mdhillca@gmail.com 2011, 2014
Egy folyamat memóriatérképe segíthet bizonyos memóriaproblémák diagnosztizálásában.
Kelemen Gábor
kelemeng at gnome dot hu 2014, 2017.
Meskó Balázs
mesko dot balazs at fsf dot hu 2021.
Úr Balázs
ur dot balazs at fsf dot hu 2022.

# Mi az a memóriatérkép?

A virtuális memória a fizikai memória és a csereterület egyesített ábrázolása a rendszeren. Ez a fizikai memóriában lévő helyek lemezen lévő fájlokra való leképezésével lehetővé teszi a folyamatoknak, hogy a meglévő fizikai memóriánál többet érjenek el.

Ha egy program elindul, akkor a rendszer egy egyéni folyamatazonosítót (PID) rendel hozzá, és az utasításai és az adatai lapokkéntbetöltésre kerülnek a memóriába. Az összes folyamat oldaltáblája képezi le a virtuális memória lapjait a fizikai memóriabeli helyükre. A memóriatérkép megjeleníti a folyamat teljes virtuálismemória-használatát, és használatával megállapítható a program egy vagy több példányának memóriaköltsége, ellenőrizhető a megfelelő megosztott programkönyvtárak használata, illetve a program esetlegesen elérhető teljesítményhangolási paramétereinek hatása, vagy felismerhetők a memóriaszivárgáshoz hasonló problémák.

Ha egy program több példánya fut, akkor a program műveleteit (vagy szövegét) csak egyszer kell betölteni a fizikai memóriába. Minden egyes alkalommal, amikor a program egy új példánya elindul (egyedi folyamatként, a saját virtuális memórialapjaival), akkor az oldaltábla leképezi a virtuális memóriahelyet az eredeti, valódi memória helyére. Továbbá a folyamatok által használt dinamikus, osztott programkönyvtárak különállóként jelenhetnek meg a virtuális memóriában, de valójában ugyanúgy a programkönyvtár szövegszegmensére mutatnak a valódi memóriában. Ha egy folyamat teljes memóriahasználatát vizsgáljuk, akkor fontos megjegyezni, hogy a memóriába betöltött osztott programkönyvtárak megoszlanak az általuk használt folyamatok között.

Ha a rendszernek több memórialapra van szüksége, mint amennyi elérhető, akkor egyes meglévő oldalak kilapozásra kerülnek vagy a cserehelyre íródnak. A szövegoldalak csak olvashatóként lesznek jelölve a memóriában, és nem kell őket cserehelyre írni, hiszen újratölthetők az eredeti helyükről, a lemezről. Az adatlapok írási-olvasási engedéllyel rendelkeznek, és ha módosulnak a memóriában, akkor piszkosnak lesznek címkézve, és ha cserehelyre kerülnének, akkor ki kell őket lapozni. Ha a cserehelyen lévő oldalra van szüksége egy futó folyamatnak, akkor azt újra kell olvasni használat előtt, ami esetleg egy másik lap kilapozását eredményezheti.