Perbedaan antara kesalahan halaman dan kesalahan keras

Perbedaan antara kesalahan halaman dan kesalahan keras

Setiap halaman telah diberi bingkai di memori utama dan ketika utas mencoba membuat referensi ke halaman yang bingkainya tidak ditemukan di memori utama, kesalahan halaman terjadi. Jika halaman benar -benar tidak ada dalam memori fisik dan harus diambil dari penyimpanan sekunder, seperti hard disk, kesalahan terjadi yang diklasifikasikan sebagai kesalahan halaman keras.

Apa itu kesalahan halaman?

Kesalahan halaman adalah jenis pengecualian yang diprakarsai oleh perangkat keras komputer untuk memberi tahu sistem operasi referensi ke halaman tanpa bingkai. Sederhananya, kesalahan halaman terjadi ketika suatu program mencoba mengakses data yang berada di halaman yang tidak disimpan dalam memori utama atau memori fisik. Katakanlah program tertentu memiliki lima halaman dari mana dua halaman dimuat ke dalam memori utama ke dalam dua frame terpisah. Jadi, ketika halaman baru dipanggil oleh CPU, salah satu dari beberapa hal mungkin terjadi. Jika halaman itu tidak ditemukan di memori utama, itu disebut kesalahan halaman. Jadi, ketika CPU menuntut halaman tertentu untuk dieksekusi, tetapi halaman tidak tersedia di memori utama, kesalahan halaman terjadi. Halaman sebenarnya berada di memori sekunder atau memori virtual. Seluruh mekanisme ini ditangani oleh perangkat keras unit manajemen memori (MMU).

Apa kesalahan halaman keras?

Jika halaman yang diinginkan tidak ada di memori utama dan harus diambil atau dipeluk dari memori virtual, kesalahan tersebut diklasifikasikan sebagai kesalahan halaman 'keras'. Setiap entri tabel halaman memiliki bit validitas, yang menunjukkan jika halaman telah diberi bingkai di memori utama. Jadi ketika suatu program membuat referensi ke halaman yang bit validitasnya nol, kesalahan halaman terjadi. OS kemudian mengintervensi dan memberikan bingkai yang sesuai ke halaman. Entri tabel halaman sebenarnya memberi tahu kami bahwa halaman ada di disk. Jadi, ketika halaman yang diinginkan tidak ditemukan di memori utama dan itu ditukar ke file halaman pada disk sebagai gantinya, kesalahan halaman keras terjadi. OS harus mengambil halaman dari subsistem disk yang menyebabkan program menunggu secara signifikan, yang pada gilirannya mengurangi kinerja. Jika halaman berada di memori cache, kesalahan halaman lunak terjadi.

Perbedaan antara kesalahan halaman dan kesalahan keras

Pengecualian

- Kesalahan halaman adalah jenis pengecualian yang terjadi ketika suatu program mencoba mengakses halaman yang ada di ruang alamatnya, tetapi tidak ditemukan dalam memori utama atau memori fisik. Jadi, ketika CPU menuntut halaman tertentu untuk dieksekusi, tetapi halaman tidak tersedia di memori utama, kesalahan halaman terjadi. Jika halaman yang diinginkan tidak ada di memori utama dan harus diambil atau dipeluk dari memori virtual, kesalahan tersebut diklasifikasikan sebagai kesalahan halaman 'keras'. Sederhananya, jika halaman harus diambil dari disk, kesalahan halaman keras terjadi.

Penanganan

- Unit Manajemen Memori (MMU) menandakan kesalahan halaman ke CPU yang kemudian menaikkan pengecualian kesalahan halaman, yang pada gilirannya meminta sistem operasi untuk menemukan halaman di memori utama. OS kemudian memberikan bingkai yang sesuai ke halaman. Tindakan ini dikelola oleh modul yang disebut 'Pagefault Handler.'Tabel halaman kemudian diperbarui dan entri halaman harus menunjuk ke bingkai kanan sekarang. Program ini kemudian siap berjalan lagi, tetapi kali ini tanpa kesalahan halaman. Ketika kesalahan halaman keras terjadi, OS menemukan lokasi gratis untuk halaman dan setelah ruang tersedia, OS membaca data halaman menjadi memori utama, dan memperbarui entri di MMU.

Kesalahan halaman vs. Kesalahan Halaman Hard: Bagan Perbandingan

Ringkasan

Kesalahan halaman adalah salah satu masalah manajemen memori umum saat berhadapan dengan memori virtual atau memori sekunder. Kesalahan halaman, sebaliknya dengan apa yang disarankan namanya, sebenarnya bukan kesalahan; Ini adalah pengecualian yang terjadi ketika suatu program mencoba mengakses alamat pada halaman yang tidak tersedia di memori utama di mana seharusnya berada. MMU kemudian memberi sinyal CPU dari kesalahan halaman dan CPU kemudian meminta OS untuk menemukan halaman dalam memori saat utas menunggu untuk menunggu. Jadi, OS kemudian menempatkan halaman yang diinginkan di bagian lain dari memori fisik atau dalam kasus terburuk, menemukannya di disk, dalam hal ini, kesalahan disebut kesalahan halaman keras. OS kemudian memberikan bingkai yang sesuai ke halaman dan memperbarui tabel halaman. Seluruh mekanisme ini ditangani oleh modul yang disebut pagefault handler.