Jadual Kandungan
Entri jadual halaman" >Entri jadual halaman
Pecahan" >Pecahan
Rumah Tutorial sistem LINUX Mengapa saiz halaman lalai sistem Linux ialah 4KB

Mengapa saiz halaman lalai sistem Linux ialah 4KB

Feb 05, 2024 pm 04:27 PM
linux tutorial linux sistem linux arahan linux skrip shell embeddedlinux lesen yang bagus Bermula dengan linux pembelajaran linux

Seperti yang kita sedia maklum, Linux menguruskan memori dalam unit halaman. Sama ada ia memuatkan data dari cakera ke dalam memori atau menulis data dari memori kembali ke cakera, sistem pengendalian akan beroperasi dalam unit halaman, yang juga bermakna jika kita hanya menulis satu bait data ke cakera , sistem pengendalian juga perlu mengepam semua data dalam keseluruhan halaman ke cakera.

Perlu diingat bahawa dalam Linux, kita boleh menggunakan sama ada halaman memori bersaiz biasa untuk operasi atau halaman memori yang besar (Halaman Besar Walaupun saiz lalai halaman memori pada kebanyakan pemproses ialah 4KB, beberapa Pemproses akan menggunakan 8KB, 16KB). , atau 64KB sebagai saiz halaman lalai. Selain saiz halaman memori biasa, pemproses berbeza menyokong saiz halaman besar yang berbeza. Sebagai contoh, pada pemproses x86, kita boleh menggunakan halaman memori bersaiz 2MB.

Halaman memori 4KB telah menjadi peninggalan sejarah, saiz halaman ini telah diterima pakai secara meluas bermula pada tahun 1980-an dan masih kekal sehingga kini. Walaupun perkakasan hari ini lebih kaya daripada masa lalu, kami masih terperangkap dengan saiz halaman memori 4KB yang diturunkan dari masa lalu. Biasanya, kita boleh melihat dengan jelas spesifikasi modul memori semasa memasang memori, seperti yang ditunjukkan dalam gambar di bawah:

为什么 Linux 系统默认页大小是 4KB

Rajah 1 – Memori Akses Rawak

Hari ini, saiz halaman memori 4KB mungkin bukan pilihan terbaik, 8KB atau 16KB mungkin pilihan yang lebih baik, tetapi ini adalah pertukaran yang dibuat pada masa lalu di bawah senario tertentu. Dalam artikel ini, kita tidak seharusnya terlalu taksub dengan nombor 4KB Kita harus memberi lebih perhatian kepada beberapa faktor yang menentukan keputusan ini, supaya apabila kita menghadapi senario yang sama, kita boleh mempertimbangkan pilihan terbaik dari aspek ini Artikel tersebut akan memperkenalkan dua faktor berikut yang mempengaruhi saiz halaman memori, iaitu:

Saiz halaman yang terlalu kecil akan membawa masukan jadual halaman yang lebih besar, yang akan meningkatkan kelajuan carian dan overhed tambahan TLB (Penimbal lookaside terjemahan) semasa menangani

Saiz halaman yang berlebihan akan membazirkan ruang memori, menyebabkan pemecahan memori, dan mengurangkan penggunaan memori

Dalam abad yang lalu, kedua-dua faktor di atas telah dipertimbangkan sepenuhnya semasa mereka bentuk saiz halaman memori, dan halaman memori 4KB akhirnya dipilih sebagai saiz halaman paling biasa untuk sistem pengendalian Seterusnya, kami akan memperkenalkan secara terperinci kesannya terhadap prestasi sistem pengendalian.

Entri jadual halaman

Kami telah memperkenalkan memori maya dalam Linux dalam artikel Mengapa Linux Memerlukan Memori Maya Apa yang dapat dilihat oleh setiap proses adalah ruang memori maya yang bebas hanyalah konsep logik , penukaran daripada memori maya kepada memori fizikal memerlukan penggunaan jadual halaman yang dipegang oleh setiap proses.

Untuk menyimpan data yang dipetakan bagi memori maya 128 TiB dalam sistem pengendalian 64-bit, Linux memperkenalkan jadual halaman empat lapisan untuk membantu terjemahan alamat maya dalam 2.6.10, dan struktur jadual halaman lima lapisan telah diperkenalkan dalam 4.11 Pada masa hadapan Lebih banyak lapisan struktur jadual halaman juga boleh diperkenalkan untuk menyokong alamat maya 64-bit.

为什么 Linux 系统默认页大小是 4KB

Rajah 2 – Struktur jadual halaman empat lapisan

Dalam struktur jadual halaman empat peringkat seperti yang ditunjukkan di atas, sistem pengendalian akan menggunakan 12 bit terendah sebagai halaman mengimbangi, dan baki 36 bit akan dibahagikan kepada empat kumpulan untuk mewakili indeks tahap semasa pada tahap sebelumnya . Semua alamat maya boleh menggunakan jadual halaman berbilang lapisan yang disebutkan di atas untuk mencari alamat fizikal yang sepadan.

Oleh kerana saiz ruang alamat maya sistem pengendalian ditetapkan, keseluruhan ruang alamat maya dibahagikan sama rata kepada N halaman memori dengan saiz yang sama, jadi saiz halaman memori akhirnya akan menentukan struktur hierarki dan entri jadual halaman Dalam setiap proses, lebih kecil saiz halaman maya, lebih banyak entri jadual halaman dan halaman maya terdapat dalam satu proses.

PagesCount=VirtualMemory ÷ Saiz Halaman

Oleh kerana saiz halaman maya semasa ialah 4096 bait, 12 bit pada penghujung alamat maya boleh mewakili alamat dalam halaman maya Jika saiz halaman maya dikecilkan kepada 512 bait, maka halaman empat peringkat asal struktur jadual atau halaman lima peringkat Struktur jadual akan menjadi lima atau enam lapisan, yang bukan sahaja akan meningkatkan overhed tambahan akses memori, tetapi juga meningkatkan saiz memori yang diduduki oleh entri jadual halaman dalam setiap proses.

Pecahan

Oleh kerana peranti pemetaan memori berfungsi pada peringkat halaman memori, sistem pengendalian menganggap bahawa unit terkecil peruntukan memori ialah halaman maya. Walaupun program pengguna hanya menggunakan 1 bait memori, sistem pengendalian akan memohon untuk halaman maya untuknya, seperti yang ditunjukkan dalam rajah di bawah Jika saiz halaman memori ialah 24KB, maka permohonan untuk 1 bait memori akan membazir ~99.9939% daripada ruang .

为什么 Linux 系统默认页大小是 4KB

Rajah 3 – Pecahan memori yang besar

Apabila saiz halaman memori meningkat, pemecahan memori akan menjadi lebih serius dan halaman memori yang kecil akan mengurangkan pemecahan memori dalam ruang memori dan meningkatkan penggunaan memori. Pada abad yang lalu, sumber memori tidak begitu banyak seperti hari ini Dalam kebanyakan kes, memori bukanlah sumber yang mengehadkan perjalanan program Kebanyakan perkhidmatan dalam talian memerlukan lebih banyak CPU, bukan lebih banyak memori. Walau bagaimanapun, ingatan sebenarnya adalah sumber yang terhad pada abad yang lalu, jadi menambah baik penggunaan sumber yang terhad adalah sesuatu yang perlu kita pertimbangkan:

为什么 Linux 系统默认页大小是 4KB

Rajah 4 – Harga ingatan

Memori stick pada tahun 1980-an dan 1990-an hanya 512KB atau 2MB, dan harganya sangat mahal Namun, memori beberapa GB adalah sangat biasa hari ini, jadi walaupun penggunaan memori masih sangat penting, harga memori telah menurun dengan ketara , ingatan berpecah bukan lagi masalah utama yang perlu diselesaikan.

Selain penggunaan memori, halaman memori yang lebih besar juga akan meningkatkan overhed tambahan penyalinan memori Kerana mekanisme salin atas tulis pada Linux, apabila berbilang proses berkongsi memori yang sama, apabila salah satu proses berubah Memori maya yang dikongsi akan. mencetuskan salinan halaman memori Pada masa ini, semakin kecil halaman memori sistem pengendalian, semakin kecil overhed tambahan yang disebabkan oleh salin atas tulis.

Ringkasan

Seperti yang kami nyatakan di atas, halaman memori 4KB adalah tetapan lalai yang diputuskan pada abad yang lalu Dari perspektif hari ini, ini mungkin pilihan yang salah seperti arm64 dan ia64 sudah boleh menyokong 8KB, halaman Memori seperti 16KB harga memori menjadi lebih rendah dan lebih rendah dan memori sistem menjadi lebih besar dan lebih besar, memori yang lebih besar mungkin menjadi pilihan yang lebih baik untuk sistem pengendalian Mari kita semak dua keputusan tentang elemen saiz halaman:

  • Saiz halaman yang terlalu kecil akan membawa kepada entri jadual halaman yang lebih besar, yang akan meningkatkan kelajuan carian TLB (Terjemahan lookaside buffer) dan overhed tambahan semasa menangani, tetapi juga akan mengurangkan pemecahan memori dalam program dan meningkatkan penggunaan memori
  • Saiz halaman yang berlebihan akan membazirkan ruang memori, menyebabkan pemecahan memori, dan mengurangkan penggunaan memori, tetapi ia boleh mengurangkan entri jadual halaman dalam proses dan masa menangani TLB

Akhirnya, mari kita lihat beberapa soalan berkaitan yang agak terbuka. Pembaca yang berminat boleh berfikir dengan teliti tentang soalan berikut:

Apakah perbezaan dan hubungan antara sektor, blok dan halaman dalam Linux?

Bagaimana saiz blok ditentukan dalam Linux? Apakah saiz biasa?

Atas ialah kandungan terperinci Mengapa saiz halaman lalai sistem Linux ialah 4KB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Perbezaan antara centos dan ubuntu Perbezaan antara centos dan ubuntu Apr 14, 2025 pm 09:09 PM

Perbezaan utama antara CentOS dan Ubuntu adalah: asal (CentOS berasal dari Red Hat, untuk perusahaan; Ubuntu berasal dari Debian, untuk individu), pengurusan pakej (CentOS menggunakan yum, yang memberi tumpuan kepada kestabilan; Ubuntu menggunakan APT, untuk kekerapan yang tinggi) Pelbagai tutorial dan dokumen), kegunaan (CentOS berat sebelah ke arah pelayan, Ubuntu sesuai untuk pelayan dan desktop), perbezaan lain termasuk kesederhanaan pemasangan (CentOS adalah nipis)

Apa yang perlu dilakukan sekiranya imej docker gagal Apa yang perlu dilakukan sekiranya imej docker gagal Apr 15, 2025 am 11:21 AM

Langkah Penyelesaian Masalah untuk Gagal Docker Image Build: Semak Sintaks Dockerfile dan Versi Ketergantungan. Semak jika konteks binaan mengandungi kod sumber dan kebergantungan yang diperlukan. Lihat log binaan untuk butiran ralat. Gunakan pilihan sasaran untuk membina fasa hierarki untuk mengenal pasti titik kegagalan. Pastikan anda menggunakan versi terkini Enjin Docker. Bina imej dengan --t [nama imej]: mod debug untuk debug masalah. Semak ruang cakera dan pastikan ia mencukupi. Lumpuhkan Selinux untuk mengelakkan gangguan dengan proses binaan. Tanya platform komuniti untuk mendapatkan bantuan, sediakan dockerfiles dan bina deskripsi log untuk cadangan yang lebih spesifik.

Cara Melihat Proses Docker Cara Melihat Proses Docker Apr 15, 2025 am 11:48 AM

Kaedah Melihat Proses Docker: 1. Docker CLI Command: Docker PS; 2. Systemd CLI Command: Sistem Status SistemCTL; 3. Docker mengarang arahan CLI: Docker-Compose PS; 4 Proses Explorer (Windows); 5. /Direktori Proc (Linux).

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Konfigurasi komputer apa yang diperlukan untuk vscode Konfigurasi komputer apa yang diperlukan untuk vscode Apr 15, 2025 pm 09:48 PM

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:

VSCode tidak dapat memasang pelanjutan VSCode tidak dapat memasang pelanjutan Apr 15, 2025 pm 07:18 PM

Sebab -sebab pemasangan sambungan kod VS mungkin: ketidakstabilan rangkaian, kebenaran yang tidak mencukupi, isu keserasian sistem, versi kod VS terlalu lama, perisian antivirus atau gangguan firewall. Dengan menyemak sambungan rangkaian, keizinan, fail log, mengemas kini kod VS, melumpuhkan perisian keselamatan, dan memulakan semula kod VS atau komputer, anda boleh menyelesaikan masalah dan menyelesaikan masalah secara beransur -ansur.

Cara menukar mod cina dengan vscode Cara menukar mod cina dengan vscode Apr 15, 2025 pm 11:39 PM

VS Kod untuk menukar mod Cina: Buka antara muka Tetapan (Windows/Linux: Ctrl, MacOS: CMD,) Cari "Editor: Bahasa" Tetapan Pilih "Cina" dalam menu drop-down Simpan tetapan dan mulakan semula kod vs

See all articles