Perbezaan antara kesalahan halaman dan kesalahan keras

Perbezaan antara kesalahan halaman dan kesalahan keras

Setiap halaman telah diberikan bingkai dalam ingatan utama dan apabila benang cuba membuat rujukan ke halaman yang bingkainya tidak terdapat dalam ingatan utama, kesalahan halaman berlaku. Sekiranya halaman itu benar.

Apakah kesalahan halaman?

Kesalahan halaman adalah jenis pengecualian yang dimulakan oleh perkakasan komputer untuk memberitahu sistem operasi rujukan ke halaman tanpa bingkai. Ringkasnya, kesalahan halaman berlaku apabila program cuba mengakses data yang tinggal di halaman yang tidak disimpan dalam ingatan utama atau memori fizikal. Katakan program tertentu mempunyai lima halaman di mana dua halaman dimuatkan ke dalam ingatan utama ke dalam dua bingkai berasingan. Oleh itu, apabila halaman baru dipanggil oleh CPU, salah satu daripada beberapa perkara mungkin berlaku. Sekiranya halaman itu tidak terdapat dalam ingatan utama, ia dipanggil kesalahan halaman. Oleh itu, apabila CPU menuntut halaman tertentu dilaksanakan, tetapi halamannya tidak tersedia dalam ingatan utama, kesalahan halaman berlaku. Halaman sebenarnya tinggal di memori sekunder atau memori maya. Mekanisme keseluruhan ini dikendalikan oleh perkakasan Unit Pengurusan Memori (MMU).

Apa itu kesalahan halaman keras?

Sekiranya halaman yang dikehendaki tidak hadir dalam ingatan utama dan ia harus diambil atau dipenuhi dari ingatan maya, kesalahan itu diklasifikasikan sebagai kesalahan halaman 'keras'. Setiap entri jadual halaman mempunyai bit kesahihan, yang menunjukkan jika halaman telah diberikan bingkai dalam ingatan utama. Oleh itu, apabila program membuat rujukan ke halaman yang sedikit kesahihannya sifar, kesalahan halaman berlaku. OS kemudian campur tangan dan memberikan bingkai yang sesuai ke halaman. Entri jadual halaman sebenarnya memberitahu kami halaman itu di cakera. Jadi, apabila halaman yang dikehendaki tidak dijumpai dalam ingatan utama dan ia ditukar ke fail halaman pada cakera sebaliknya, kesalahan halaman keras berlaku. OS harus mengambil halaman dari subsistem cakera yang menyebabkan program menunggu dengan ketara, yang seterusnya mengurangkan prestasi. Sekiranya halaman berada dalam memori cache, kesalahan halaman lembut berlaku.

Perbezaan antara kesalahan halaman dan kesalahan keras

Pengecualian

- Kesalahan halaman adalah jenis pengecualian yang berlaku apabila program cuba mengakses halaman yang ada di ruang alamatnya, tetapi tidak terdapat dalam ingatan utama atau memori fizikal. Oleh itu, apabila CPU menuntut halaman tertentu dilaksanakan, tetapi halamannya tidak tersedia dalam ingatan utama, kesalahan halaman berlaku. Sekiranya halaman yang dikehendaki tidak hadir dalam ingatan utama dan ia harus diambil atau dipenuhi dari ingatan maya, kesalahan itu diklasifikasikan sebagai kesalahan halaman 'keras'. Ringkasnya, jika halaman harus diambil dari cakera, kesalahan halaman keras berlaku.

Pengendalian

- Unit Pengurusan Memori (MMU) menandakan kesalahan halaman ke CPU yang kemudian menimbulkan pengecualian kesalahan halaman, yang seterusnya mendorong sistem operasi untuk mencari halaman dalam memori utama. OS kemudian memberikan bingkai yang sesuai ke halaman. Tindakan ini diuruskan oleh modul yang disebut 'Handler PageFault.'Jadual halaman kemudian dikemas kini dan entri halaman harus menunjuk pada bingkai yang betul sekarang. Program ini kemudiannya bersedia untuk dijalankan semula, tetapi kali ini tanpa kesalahan halaman. Apabila kesalahan halaman keras berlaku, OS mendapati lokasi percuma untuk halaman dan sekali ruang tersedia, OS membaca data halaman ke dalam memori utama, dan mengemas kini entri dalam MMU.

Kesalahan halaman vs. Kesalahan halaman keras: carta perbandingan

Ringkasan

Kesalahan halaman adalah salah satu masalah pengurusan memori biasa ketika berurusan dengan memori maya atau memori sekunder. Kesalahan halaman, yang bertentangan dengan namanya, sebenarnya tidak salah; Ini adalah pengecualian yang berlaku apabila program cuba mengakses alamat pada halaman yang tidak tersedia dalam ingatan utama di mana ia sepatutnya terletak. MMU kemudian menandakan CPU kesalahan halaman dan CPU kemudian meminta OS untuk mencari halaman dalam ingatan sementara benang masuk ke dalam menunggu. Oleh itu, OS kemudiannya meletakkan halaman yang dikehendaki di bahagian lain memori fizikal atau dalam kes yang paling teruk, mendapati ia pada cakera, dalam hal ini, kesalahan itu dipanggil kesalahan halaman keras. OS kemudian memberikan bingkai yang sesuai ke halaman dan mengemas kini jadual halaman. Keseluruhan mekanisme ini dikendalikan oleh modul yang dipanggil Handler PageFault.