Phil Bull
philbull@gmail.com 2011
Michael Hill
mdhillca@gmail.com 2011, 2014
Peta memori proses dapat membantu mendiagnosis masalah memori tertentu.
Andika Triwidada
andika@gmail.com 2020, 2021.

# Apa itu peta memori?

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

Ketika program diluncurkan, sistem menetapkannya ID proses (PID) yang unik dan instruksi dan datanya dimuat ke dalam memori di halaman. Tabel halaman dari setiap proses memetakan korespondensi antara halamannya dalam memori virtual dan lokasinya dalam memori fisik. Peta memori 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.

Jika beberapa salinan program berjalan, instruksi (atau teks) 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.

Ketika sistem membutuhkan lebih banyak halaman memori daripada yang tersedia, beberapa halaman yang ada akan di-page keluar atau ditulis ke ruang swap. 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 kotor, 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.