Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 · Pelajaran

Konsep Memori Maya

Fahami prinsip memori maya, pembahagian memori dan penghalaman dari perspektif aras rendah.

Pelajaran 1 daripada 411 langkah

Konsep Memori Maya ialah pelajaran Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 merangkumi sejumlah 4 pelajaran.

Peranan Memori Maya

Selamat datang ke dunia Memori Maya! Konsep ini merupakan asas kepada cara sistem pengendalian moden mengurus memori, serta membolehkan ciri berkuasa seperti pelbagai tugas dan perlindungan memori.

Memori maya membolehkan atur cara menggunakan ruang memori berterusan dan persendirian, walaupun RAM fizikal berpecah-pecah atau lebih kecil daripada keperluan atur cara tersebut.

Had Memori Fizikal

Dalam pengkomputeran awal, atur cara mengakses RAM fizikal secara langsung. Hal ini menyebabkan beberapa cabaran:

  • RAM Terhad: Atur cara perlu dimuatkan sepenuhnya dalam memori fizikal.
  • Tiada Pengasingan: Satu atur cara boleh menulis ganti memori atur cara lain lalu menyebabkan kerosakan.
  • Masalah Penempatan Semula: Atur cara perlu dimuatkan pada alamat fizikal tertentu, sekali gus menyukarkan pelbagai tugas.

Memori Maya direka bentuk untuk menyelesaikan masalah ini dengan memperkenalkan lapisan pengabstrakan.

Alamat: Maya & Fizikal

Idea terasnya ialah perbezaan antara dua jenis alamat:

  • Alamat Maya: Alamat yang dilihat dan digunakan oleh CPU serta atur cara anda. Setiap atur cara mendapat ruang alamat maya unik dan terasingnya sendiri.
  • Alamat Fizikal: Alamat sebenar dalam cip RAM komputer. Inilah yang benar-benar difahami oleh perkakasan dan tempat data disimpan secara fizikal.

Bayangkan ia seperti nombor rumah (maya) berbanding koordinat GPS (fizikal).

MMU: Penterjemah Alamat

Keajaiban di sebalik penterjemahan ini dilakukan oleh komponen perkakasan khusus di dalam CPU yang dipanggil Unit Pengurusan Memori (MMU).

Apabila CPU meminta data daripada alamat maya, MMU memintas permintaan ini dan serta-merta menterjemahkannya kepada alamat fizikal yang sepadan sebelum mengakses RAM. Proses ini telus kepada atur cara yang sedang berjalan.

Penghalaman untuk Fleksibiliti

Salah satu cara paling lazim MMU mengendalikan penterjemahan ialah melalui penghalaman. Dalam penghalaman, memori maya dan fizikal masing-masing dibahagikan kepada blok bersaiz tetap:

  • Halaman: Blok memori maya.
  • Bingkai (atau Bingkai Halaman): Blok memori fizikal.

Blok ini biasanya bersaiz 4KB (4096 bait), walaupun saiz yang lebih besar juga wujud. Penghalaman membolehkan memori fizikal yang tidak bersebelahan kelihatan bersebelahan kepada atur cara.

Jadual Halaman: Carian

Bagaimanakah MMU mengetahui bingkai fizikal yang sepadan dengan halaman maya tertentu? MMU menggunakan Jadual Halaman.

Jadual halaman ialah struktur data khas yang disimpan dalam RAM fizikal. Jadual ini mengandungi entri yang memetakan nombor halaman maya kepada nombor bingkai fizikal yang sepadan. Sistem pengendalian mencipta dan mengurus jadual ini untuk setiap proses yang sedang berjalan.

Penghalaman Berbilang Aras Dipermudah

Bagi sistem 64-bit moden dengan ruang alamat maya yang sangat besar, satu jadual halaman rata akan menggunakan jumlah memori yang tidak praktikal. Untuk menjimatkan ruang, x86-64 menggunakan penghalaman berbilang aras.

Ini bermaksud terdapat hierarki jadual halaman. Jadual aras teratas (seperti PML4) menunjuk kepada jadual aras lebih rendah, dan seterusnya sehingga jadual halaman terakhir menunjuk kepada bingkai fizikal. Struktur ini memastikan hanya bahagian ruang alamat yang diperlukan diperuntukkan jadual halaman.

CR3: Penuding Akar

CPU perlu mengetahui lokasi jadual halaman peringkat teratas (PML4 dalam mod 64-bit) dalam memori fizikal. Alamat asas fizikal yang penting ini disimpan dalam daftar CR3 (Daftar Kawalan 3).

Setiap proses biasanya mempunyai set jadual halamannya sendiri. Apabila sistem pengendalian bertukar antara proses, sistem tersebut mengemas kini nilai CR3 supaya menunjuk kepada jadual halaman proses baharu, sekali gus menukar ruang alamat maya.

Akses Memori Assembly

Apabila program assembly anda mengakses lokasi memori, program itu sentiasa menggunakan alamat maya. MMU mengendalikan penterjemahan tersebut secara telus, jadi kod anda tidak perlu mengetahui alamat fizikal.

Cuba jalankan program assembly ringkas ini. Label my_var merujuk kepada alamat maya, yang diterjemahkan oleh MMU kepada alamat fizikal sebelum data diambil.

section .data
    my_var db 42 ; A byte variable at a virtual address

section .text
    global _start

_start:
    ; Load the value from my_var into AL register
    mov al, byte [my_var] 

    ; At this point, AL contains the value 42.
    ; The address of 'my_var' was a virtual one,
    ; translated by the MMU to a physical address.

    ; Exit syscall (Linux specific)
    mov eax, 60
    xor edi, edi
    syscall

Semakan Pantas: Konsep Memori

Antara komponen berikut, yang manakah bertanggungjawab terutamanya untuk menterjemahkan alamat maya kepada alamat fizikal dalam sistem x86?

Rumusan: Asas Memori Maya

Dalam pelajaran ini, kita meneroka konsep penting Memori Maya dalam sistem x86. Kita mempelajari bahawa:

  • Memori maya menyediakan ruang alamat peribadi yang besar kepada program, dengan mengabstrakkan RAM fizikal.
  • MMU ialah unit perkakasan yang menterjemahkan alamat maya kepada alamat fizikal.
  • Paginasi membahagikan memori kepada blok bersaiz tetap (halaman/kerangka) dan menggunakan jadual halaman untuk pemetaan.
  • Paginasi berbilang peringkat mengurus ruang alamat yang besar dengan cekap dalam sistem moden.
  • Daftar CR3 menunjuk kepada asas jadual halaman peringkat teratas dan berubah mengikut konteks proses.

Memahami memori maya ialah kunci untuk memahami cara sistem pengendalian mengurus proses dan perlindungan memori pada tahap rendah.

Percuma untuk bermula

Pelajari Assembly dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Konsep Memori Maya” percuma?

Ya — teks penuh “Konsep Memori Maya” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86, tingkat taraf kepada CoddyKit PRO. Kursus Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Konsep Memori Maya”?

Fahami prinsip memori maya, pembahagian memori dan penghalaman dari perspektif aras rendah. Anda berlatih Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Konsep Memori Maya” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 ini?

Ya. Setiap pelajaran Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Konsep Memori Maya
  2. Panggilan Sistem Linux (syscalls)
  3. Interaksi dengan API Windows
  4. Memori Dinamik: Peruntukan Timbunan dalam Himpunan
← Kembali ke Bahasa Himpunan & Pengaturcaraan Sistem Aras Rendah x86