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

  <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>Minneskartan för en process kan hjälpa till diagnostisera vissa minnesproblem.</desc>
  
    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Isak Östlund</mal:name>
      <mal:email>translate@catnip.nu</mal:email>
      <mal:years>2017</mal:years>
    </mal:credit>
  </info>

  <title>Vad är en minneskarta?</title>

  <p><gui>Virtuellt minne</gui> är en representation av det <gui>fysiska minnet</gui> tillsammans med <link xref="mem-swap">växlingsutrymmet</link> i ett system. Det ger processer som körs tillgång till <em>mer</em> än den tillgängliga mängden fysiskt minne genom <gui>mappning</gui> av platser i det fysiska minnet till filer på disk.</p>

  <p>När ett program startas tilldelar systemet det ett unikt process-ID (PID) och dess <em>instruktioner</em> och <em>data</em> läses in i minnet som <em>sidor</em>. Sidtabellen för varje process mappar samspelet mellan dess sidor i virtuellt minne och deras plats i fysiskt minne. <gui>Minneskartan</gui> visar den totala mängd minne som används av processen, och kan användas för att fastställa minnesförbrukningen av att köra en eller flera instanser av programmet, för att säkerställa användningen av korrekt delade bibliotek, för att se resultaten av justeringen på diverse prestandarelaterade parametrar som programmet kan ha, eller för att diagnostisera problem så som minnesläckor.</p>

  <p>Om flera kopior av ett program körs kommer programmets instruktioner (eller <em>text</em>) bara behöva läsas in en gång i fysiskt minne. Varje gång en ny instans av programmet startas (som en unik process med sina egna virtuella minnessidor), kommer dess sidtabell att mappa platsen för text i virtuellt minne till de instruktionerna på den ursprungliga riktiga minnesplatsen. Dessutom kommer alla dynamiskt delade bibliotek som används av processen att visas som distinkta i virtuellt minne, men är delade referenser till en enda kopia av bibliotekets textsegment i riktigt minne. När man räknar med den totala minnesanvändningen för en process är det viktigt att observera att kostnaden av delade bibliotek som läses in i minne kan delas mellan alla processer som för närvarande använder dem.</p>

  <p>När systemet behöver fler minnessidor än vad som är tillgängligt så kommer några sidor att <em>växlas ut</em> eller skrivas till <gui>växlingsutrymmet</gui>. Textsidor flaggas läsa-köra i minnet och behöver inte skrivas till växlingsutrymmet då de kan läsas in på nytt från sin ursprungliga plats på disk. Datasidor har rättigheterna läsa-skriva, och om de ändras när de är i minne så etiketteras de <em>smutsiga</em>, och måste växlas ut när de tilldelas för växling. När en sida i växlingsutrymmet krävs av en körande process behöver den växlas tillbaka in före användning, vilket kanske orsakar att en annan sida växlas ut.</p>

</page>
