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
Mapa pamięci procesu może pomóc diagnozować pewne problemy z pamięcią.
Piotr Drąg
piotrdrag@gmail.com 2017-2021
Aviary.pl
community-poland@mozilla.org 2017-2021

# Czym jest mapa pamięci?

Pamięć wirtualna jest reprezentacją połączonej pamięci fizycznej i przestrzeni wymiany na komputerze. Umożliwia ona działającym procesom na korzystanie z więcej niż istniejącej pamięci fizycznej przez mapowanie położeń w pamięci fizycznej do plików na dysku.

Po uruchomieniu programu system przydziela mu unikalny identyfikator procesu (PID), a jego instrukcje i dane są wczytywane do pamięci w postaci stron. Tablica stron każdego procesu mapuje związek między jego stronami w pamięci wirtualnej a ich położeniem w pamięci fizycznej. Mapa pamięci wyświetla całkowitą pamięć wirtualną użytą przez proces, i może być używana do ustalania kosztu pamięci działania jednego lub wielu wystąpień programu, do zapewniania użycia właściwych bibliotek współdzielonych, do wyświetlania wyników dostosowania różnych parametrów wydajności, jakie może mieć program, albo do diagnozowania problemów, takich jak wycieki pamięci.

Jeśli uruchomionych jest wiele kopii programu, instrukcje (lub tekst) programu musi być wczytany do pamięci fizycznej tylko raz. Za każdym razem, gdy nowe wystąpienie programu jest uruchamiane (jako unikalny proces ze swoimi własnymi stronami pamięci wirtualnej, jego tablica stron mapuje położenie tekstu w pamięci wirtualnej do tych instrukcji w oryginalnej prawdziwej pamięci. Dodatkowo wszelkie biblioteki dynamicznie współdzielone używane przez proces pojawiają się jako odrębne w pamięci wirtualnej, ale są współdzielonymi odniesieniami do jednej kopii segmentu tekstu biblioteki w prawdziwej pamięci. Podczas sprawdzania całkowitego użycia pamięci przez proces warto pamiętać, że koszt bibliotek współdzielonych wczytanych do pamięci może być rozłożony między wszystkimi obecnie używającymi ich procesami.

Kiedy komputer potrzebuje więcej stron pamięci niż jest dostępnych, to część istniejących stron zostaje usunięta lub zapisana w przestrzeni wymiany. Strony tekstu są oznaczane jako do odczytu i wykonania w pamięci i nie muszą być zapisywane w przestrzeni wymiany, ponieważ mogą być ponownie wczytywane z ich oryginalnych położeń na dysku. Strony danych mają uprawnienia do odczytu i zapisu, i jeśli zostały zmodyfikowane w pamięci, to są oznaczane jako brudne i po wyznaczeniu do wymiany muszą zostać usunięte. Kiedy strona w przestrzeni wymiany jest wymagana przez działający proces, to musi zostać ponownie wymieniona przed użyciem, być może powodując usunięcie innej strony.