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

  <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>Peta memori proses dapat membantu mendiagnosis masalah memori tertentu.</desc>
  <credit type="translator copyright"><name>Andika Triwidada</name><email>andika@gmail.com</email><years>2020, 2021.</years></credit></info>

  <title>Apa itu peta memori?</title>

  <p><gui>Memori virtual</gui> adalah representasi dari gabungan <gui>memori fisik</gui> dan <link xref="mem-swap">ruang swap</link> dalam sistem. Ini memungkinkan proses-proses yang sedang berjalan untuk mengakses <em>lebih banyak</em> memori fisik dari yang ada dengan <gui>memetakan</gui> lokasi di memori fisik ke berkas pada disk. Ketika sistem membutuhkan lebih banyak halaman memori daripada yang tersedia, beberapa halaman yang ada akan <em>di-page keluar</em> atau ditulis ke ruang swap.</p>

  <p>Ketika program diluncurkan, sistem menetapkannya ID proses (PID) yang unik dan <em>instruksi</em> dan <em>datanya</em> dimuat ke dalam memori di <em>halaman</em>. Tabel halaman dari setiap proses memetakan korespondensi antara halamannya dalam memori virtual dan lokasinya dalam memori fisik. <gui>Peta memori</gui> menampilkan penggunaan memori virtual total proses, dan dapat digunakan untuk menentukan biaya memori menjalankan satu atau beberapa contoh program, untuk memastikan penggunaan library bersama yang benar, untuk melihat hasil dari menyesuaikan berbagai parameter penyetelan kinerja yang mungkin dilakukan program, atau untuk mendiagnosis masalah seperti kebocoran memori.</p>

  <p>Jika beberapa salinan program berjalan, instruksi (atau <em>teks</em>) program hanya perlu dimuat sekali ke dalam memori fisik. Setiap kali contoh baru program diluncurkan (sebagai proses unik dengan halaman memori virtualnya sendiri), tabel halamannya memetakan lokasi teks dalam memori virtual ke instruksi tersebut di lokasi memori asli yang sebenarnya. Selain itu, setiap pustaka bersama dinamis yang digunakan oleh proses muncul sebagai berbeda dalam memori virtual, tetapi referensi bersama ke satu salinan segmen teks pustaka dalam memori nyata. Ketika memperhitungkan penggunaan memori total proses, penting untuk dicatat bahwa biaya pustaka bersama yang dimuat ke dalam memori dapat tersebar di semua proses yang saat ini menggunakannya.</p>

  <p>Ketika sistem membutuhkan lebih banyak halaman memori daripada yang tersedia, beberapa halaman yang ada akan <em>di-page keluar</em> atau ditulis ke <gui>ruang swap</gui>. Halaman teks ditandai dengan read-execute dalam memori dan tidak perlu ditulis untuk bertukar karena dapat dimuat kembali dari lokasi aslinya di disk. Halaman data memiliki izin baca-tulis, dan jika dimodifikasi ketika dalam memori, halaman tersebut diberi label <em>kotor</em>, dan ketika ditunjuk untuk bertukar, harus di-page keluar. Ketika halaman di ruang swap diperlukan oleh proses yang sedang berjalan, itu perlu ditukar kembali sebelum digunakan, mungkin menyebabkan halaman lain di-page keluar.</p>

</page>
