<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" type="topic" style="task" id="memory-map-what" lang="ca">

  <info>
    <revision pkgversion="3.11" date="2014-01-28" status="candidate"/>
    <link type="guide" xref="index#memory" group="memory"/>

    <license xmlns="http://projectmallard.org/1.0/" href="http://creativecommons.org/licenses/by-sa/3.0/">

  <p>This work is licensed under a
  <link href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons
  Attribution-ShareAlike 3.0 Unported License</link>.</p>

</license>

    <credit type="author copyright">
      <name>Phil Bull</name>
      <email>philbull@gmail.com</email>
      <years>2011</years>
    </credit>

    <credit type="author copyright">
      <name>Michael Hill</name>
      <email>mdhillca@gmail.com</email>
      <years>2011, 2014</years>
    </credit>

    <desc>El mapa de memòria d'un procés pot ajudar a diagnosticar certs problemes de memòria.</desc>
  </info>

  <title>Què és un mapa de memòria?</title>

  <p><gui>Memòria virtual</gui> és una representació de la memòria combinada <gui>física</gui> i <link xref="mem-swap">espai d'intercanvi</link> en un sistema. Permet executar processos per a accedir <em>més</em> que la memòria física existent per <gui>mapejar</gui> ubicacions en memòria física als fitxers del disc.</p>

  <p>Quan es llança un programa, el sistema l'assigna un ID de procés únic (PID) i les seves <em>instruccions</em> i <em>dades</em> es carreguen a la memòria en <em>pàgines</em>. 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 <gui>mapa de memòria</gui> 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.</p>

  <p>Si s'estan executant múltiples còpies d'un programa, les instruccions (o <em>text</em>) 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.</p>

  <p>Quan el sistema necessita més pàgines de memòria de les que estan disponibles, algunes de les pàgines existents seran <em>paginades</em> o escrites a l'<gui>espai d'intercanvi</gui>. 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 <em>brutes</em>, 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.</p>

</page>
