Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Apakah mekanisme memori maya linux
1. Setiap proses mempunyai ruang memori 4G bebasnya sendiri, dan ruang memori setiap proses mempunyai struktur yang serupa.
Pengurusan memori Linux mengguna pakai pengurusan halaman, menggunakan jadual halaman berbilang peringkat Mekanisme terjemahan alamat dinamik, memori utama dan memori tambahan merealisasikan memori maya apabila proses baharu diwujudkan,
Ia akan mewujudkan ruang memorinya sendiri, dan data dan kod proses ini akan disalin dari cakera ke ruang prosesnya sendiri yang mana
Mereka semua direkodkan oleh task_struct dalam jadual kawalan proses Task_struct merekodkan senarai terpaut dan merekodkan peruntukan ruang memori,
. Alamat mana yang mempunyai data, alamat mana yang tidak mempunyai data, mana yang boleh dibaca, dan mana yang boleh ditulis, boleh direkodkan melalui senarai terpaut ini. Ruang memori yang setiap proses telah diperuntukkan boleh dipetakan dengan ruang cakera yang sepadan.
2. Setiap program boleh melihat ruang alamat yang lengkap dan berterusan Ruang ini tidak berkaitan secara langsung dengan memori fizikal Sebaliknya, sistem pengendalian menyediakan konsep memori yang abstrak,
Ini membolehkan setiap proses mempunyai ruang alamat yang berterusan dan lengkap Semasa proses menjalankan program, penukaran daripada alamat maya kepada alamat fizikal selesai.
Kami juga tahu bahawa ruang alamat proses dibahagikan, dan terdapat apa yang dipanggil segmen data, segmen kod, segmen bbs, timbunan, tindanan, dll. Setiap segmen mempunyai peranan tertentu.
Pada masa yang sama, komputer tidak mempunyai memori sebanyak itu (n proses perlu sepadan dengan memori n*4G Untuk mencipta proses, anda perlu menyalin fail program pada cakera ke memori yang sepadan dengan proses,
Untuk kes di mana satu program sepadan dengan pelbagai proses, ingatan terbuang.
3. Ruang memori 4G bagi setiap proses hanyalah ruang ingatan maya Setiap kali anda mengakses alamat dalam ruang memori, anda perlu menterjemah alamat ke alamat fizikal sebenar Semua proses berkongsi memori fizikal yang sama,
Setiap proses hanya memetakan dan menyimpan ruang memori maya yang diperlukannya pada masa ini ke dalam memori fizikal Proses ini perlu mengetahui alamat memori mana yang ada dalam ingatan fizikal, yang mana tidak dan di mana ia berada dalam ingatan fizikal,
Jadual halaman perlu direkodkan Setiap entri dalam jadual halaman dibahagikan kepada dua bahagian Bahagian pertama merekodkan sama ada halaman berada dalam memori fizikal ,
Semak jadual halaman Jika data yang sepadan tiada dalam memori fizikal, proses pemprosesan pengecualian halaman yang tiada adalah untuk menyalin data yang diperlukan oleh proses dari cakera ke memori fizikal,
Jika ingatan penuh , jika tiada ruang kosong, kemudian cari halaman untuk ditulis ganti Sudah tentu, jika halaman yang ditimpa telah diubah suai, halaman ini perlu ditulis semula ke cakera.
4. Ruang memori setiap proses adalah konsisten dan tetap, jadi penyambung boleh menetapkan alamat memori apabila memautkan fail pelaksanaan, tanpa perlu risau tentang alamat memori sebenar terakhir data,
Ini mempunyai ingatan bebas Faedah ruang: Apabila proses berbeza menggunakan kod yang sama, seperti kod dalam fail perpustakaan, hanya satu salinan kod tersebut boleh disimpan dalam memori fizikal,
Proses yang berbeza hanya perlu memetakan memori maya mereka sendiri untuk menjimatkan memori apabila program perlu memperuntukkan ruang memori berterusan
Hanya ruang bersebelahan perlu diperuntukkan dalam ruang ingatan maya tanpa memerlukan ruang bersebelahan dalam ingatan fizikal sebenar, dan pemecahan boleh digunakan.
Atas ialah kandungan terperinci Apakah mekanisme memori maya linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!