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

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

    <include xmlns="http://www.w3.org/2001/XInclude" href="legal.xml"/>

    <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>La carte de la mémoire d’un processus peut être utile pour diagnostiquer certains problèmes de mémoire.</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>naybnet</mal:name>
      <mal:email>naybnet@gmail.com</mal:email>
      <mal:years>2014</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Alain Lojewski</mal:name>
      <mal:email>allomervan@gmail.com</mal:email>
      <mal:years>2014</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Julien Hardelin</mal:name>
      <mal:email>jhardlin@orange.fr</mal:email>
      <mal:years>2014</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Leonor Palazzo</mal:name>
      <mal:email>leonor.palazzo@gmail.com</mal:email>
      <mal:years>2015</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Charles Monzat</mal:name>
      <mal:email>charles.monzat@free.fr</mal:email>
      <mal:years>2020-2021</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Guillaume Bernard</mal:name>
      <mal:email>associations@guillaume-bernard.fr</mal:email>
      <mal:years>2021</mal:years>
    </mal:credit>
  </info>

  <title>La carte de la mémoire</title>

  <p>La <gui>Mémoire virtuelle</gui> est une combinaison de la <gui>Mémoire physique</gui> et de l’<link xref="mem-swap">espace d’échange</link> dans un système. Elle permet aux processus actifs d’accéder à <em>davantage</em> de mémoire que la mémoire existante en <gui>reliant</gui> les localisations dans la mémoire physique aux fichiers sur disque.</p>

  <p>Lorsqu’un programme est lancé, le système lui assigne un numéro unique de processus (PID) et ses <em>instructions</em> ainsi que ses <em>données</em> sont chargées dans la mémoire dans des <em>pages</em>. Les <gui>cartes de la mémoire</gui> affichent l’utilisation totale de la mémoire virtuelle par un processus. Elles peuvent être utilisées pour déterminer le coût en terme de mémoire lors de l’exécution d’une ou plusieurs instances d’un programme, afin d’assurer l’utilisation correcte des bibliothèques partagées, de savoir comment ajuster les paramètres de performance disponibles dans un programme, ou de diagnostiquer des problèmes comme les fuites de mémoire.</p>

  <p>Si de multiples copies d’un programme sont actifs, les instructions (ou <em>code</em>) du programme ne doivent être chargées qu’une seule fois dans la mémoire physique. À chaque nouvelle instanciation du programme (en tant que processus unique, avec ses propres pages de mémoire virtuelle), la table de mémoire associe l’emplacement du code dans la mémoire virtuelle aux instructions dans les emplacements de la mémoire physique. En outre, toute bibliothèque partagée dynamiquement utilisée par le processus apparaîtra dans une mémoire virtuelle distincte, mais aura des références partagées à une copie unique du segment de code de la bibliothèque dans la mémoire réelle. Lors de la comptabilisation de l’utilisation totale de la mémoire d’un processus, il est important de noter que le coût des bibliothèques partagées chargées en mémoire peut être réparti sur tous les processus qui les utilisent actuellement.</p>

  <p>Lorsque le système a besoin de davantage de pages de mémoire que celles qui sont disponibles, certaines des pages existantes seront <em>désindexées</em> ou écrites vers l’<gui>espace d’échange</gui>. Les pages de texte sont marquées pour read-execute (lecture et exécution) en mémoire et n’ont pas besoin d’être écrites dans l’espace d’échange puisqu’elles peuvent être rechargées depuis leur emplacement d’origine sur le disque. Les pages de données ont des permissions de read-write (lecture et écriture), et si elles sont modifiées lorsqu’elles sont en mémoire, elles sont étiquetées comme <em>modifiées</em>. Lorsqu’elles sont désignées pour être déplacées vers l’espace d’échange, elles doivent être désindexées du système de pagination. Lorsqu’une page dans l’espace d’échange est requise par un processus en cours d’exécution, elle doit être retirée de l’espace d’échange avant d’être utilisée, ce qui peut entraîner la désindexation d’une autre page.</p>

</page>
