Phil Bull
philbull@gmail.com 2011
Michael Hill
mdhillca@gmail.com 2011, 2014
El mapa de memòria d'un procés pot ajudar a diagnosticar certs problemes de memòria.

# Què és un mapa de memòria?

Memòria virtual és una representació de la memòria combinada física i espai d'intercanvi en un sistema. Permet executar processos per a accedir més que la memòria física existent per mapejar ubicacions en memòria física als fitxers del disc.

Quan es llança un programa, el sistema l'assigna un ID de procés únic (PID) i les seves instruccions i dades es carreguen a la memòria en pàgines. La taula de pàgines de cada procés fa un mapa de la correspondència entre les seves pàgines en memòria virtual i la seva ubicació en memòria física. El mapa de memòria mostra el cost total de la memòria d'executar una o múltiples instàncies del programa, per a assegurar l'ús de les biblioteques compartides correctes, per a veure els resultats d'ajustar diversos paràmetres de sintonització de rendiment que el programa pot tenir, o per a diagnosticar problemes com a pèrdues de memòria.

Si s'estan executant múltiples còpies d'un programa, les instruccions (o text) del programa només s'han de carregar una vegada a la memòria física. Cada vegada que s'inicia una nova instància del programa (com un procés únic amb les seves pròpies pàgines de memòria virtual), la seva taula de pàgines assigna la ubicació del text en memòria virtual a aquelles instruccions de la ubicació original de memòria real. A més, qualsevol biblioteca compartida dinàmica utilitzada pel procés apareix com a diferent en memòria virtual, però són referències compartides a una còpia del segment de text de la biblioteca en memòria real.

Quan el sistema necessita més pàgines de memòria de les que estan disponibles, algunes de les pàgines existents seran paginades o escrites a l'espai d'intercanvi. Les pàgines de text s'assenyalen amb permisos de lectura-escriptura en el disc. Les pàgines de dades tenen permisos de lectura-escriptura, i si es modifiquen quan es troben en memòria, s'han d'etiquetar com a brutes, i quan es designen per a l'intercanvi, s'han d'intercanviar de nou abans d'utilitzar-les, potser fent que una altra pàgina sigui paginada.