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

  <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>Mapa pamięci procesu może pomóc diagnozować pewne problemy z pamięcią.</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Piotr Drąg</mal:name>
      <mal:email>piotrdrag@gmail.com</mal:email>
      <mal:years>2017-2021</mal:years>
    </mal:credit>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Aviary.pl</mal:name>
      <mal:email>community-poland@mozilla.org</mal:email>
      <mal:years>2017-2021</mal:years>
    </mal:credit>
  </info>

  <title>Czym jest mapa pamięci?</title>

  <p><gui>Pamięć wirtualna</gui> jest reprezentacją połączonej <gui>pamięci fizycznej</gui> i <link xref="mem-swap">przestrzeni wymiany</link> na komputerze. Umożliwia ona działającym procesom na korzystanie z <em>więcej</em> niż istniejącej pamięci fizycznej przez <gui>mapowanie</gui> położeń w pamięci fizycznej do plików na dysku.</p>

  <p>Po uruchomieniu programu system przydziela mu unikalny identyfikator procesu (PID), a jego <em>instrukcje</em> i <em>dane</em> są wczytywane do pamięci w postaci <em>stron</em>. 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. <gui>Mapa pamięci</gui> 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.</p>

  <p>If multiple copies of a program are running, the instructions (or
  <em>text</em>) of the program only need to be loaded once into physical
  memory. Each time a new instance of the program is launched (as a unique
  process with its own virtual memory pages), its page table maps the location
  of the text in virtual memory to those instructions in the original real
  memory location. In addition, any dynamic shared libraries used by the
  process appear as distinct in virtual memory, but are shared references to a
  single copy of the library's text segment in real memory. When accounting for
  the total memory use of a process, it is important to note that the cost of
  shared libraries loaded into memory can be spread across all processes
  currently using them.</p>

  <p>When the system needs more pages of memory than are available, some of the
  existing pages will be <em>paged out</em> or written to the <gui>swap
  space</gui>. Text pages are flagged read-execute in memory and don't need to
  be written to swap since they can be re-loaded from their original location
  on disk. Data pages have read-write permissions, and if modified when in
  memory, they are labeled <em>dirty</em>, and when designated for swapping,
  must be paged out.  When a page in swap space is required by a running
  process, it needs to be swapped back in before use, perhaps causing another
  page to be paged out.</p>

</page>
