Pengertian Page Fault

Bagi kita yang sering berkutat dengan dunia progamming, tentunya kita sudah tidak asing lagi dengan yang namanya “Page Fault”. Nah, bagi yang belum tahu sama sekali dengan yang namanya page fault, tepat sekali berkunjung ke sini, karena kini kita akan membahas tentang penegrtian dan segala hal yang berhubungan dengan si page fault ini. Yuk langsung saja baca penjelasan lengkapnya di artikel yang sudah tersedia di bawah ini!

pengertian page fault

Pengertian Page Fault

Page fault merupakan pesan dari sebuah program yang sedang digunakan yang terjadi ketika program tersebut mencoba mengakses suatu blok memori yang tidak disimpan di memori fisik atau RAM.

Walaupun istilah page fault atau yang dalam bahasa Indonesia ini berarti kesalahan halaman, yang terdengar seperti suatu pesan yang isinya peringatan error, page fault adalah hal yang biasa, umum dan merupakan bagian dari mekanisme normal sistem komputer ketika berinteraksi dengan memori virtual. Baca Juga: Pengertian Software Defined Networking

Fault atau kesalahan ini berfungsi untuk memberitahukan kepada sistem operasi bahwa si sistem operasi yang bersangkutan ini perlu mencari data yang dimaksud tersebut di memori virtual, untuk selanjutnya mentransfer dari perangkat penyimpanan, seperti HDD atau SSD, ke RAM sistem.

Di dalam dunia programming, page fault atau kesalahan halaman ini akan menciptakan suatu pengecualian (exception) yang melaporkan pada sistem operasi bahwa sistem operasi harus mengambil blok memori tertentu dari memori virtual agar program yang sedang berjalan dapat tetap dilanjutkan.

Begitu data dimasukkan ke dalam memori fisik, program akan berlanjut secara normal. Keseluruhan proses ini akan berlangsung di background komputer kita tanpa kita sadari.

Kebanyakan page fault ini dapat diatasi tanpa masalah. Namun, sebuah page fault yang tidak valid dapat menyebabkan program mengalami hang atau cacat. Page fault yang tidak valid atau invalid page fault terjadi ketika sebuah program mencoba mengakses alamat memori yang tidak ada.

Beberapa program di komputer sebenarnya dapat mengatasi invalid page fault ini secara otomatis dengan mencari alamat memori baru dan memindahkan data yang ada ke sana.

Namun, jika program yang bersangkutan tidak bisa mengatasi masalah invalid page fault yang sedang terjadi, maka masalah tersebut akan diserahkan kepada sistem operasi, lalu sistem operasi akan menghentikan proses. Proses ini akan mengakibatkan program mati secara mendadak.

Walau page fault ini adalah hal yang biasa ditemui ketika berurusan dengan memori virtual, setiap page fault memerlukan transfer data dari memori sekunder ke memori primer. Proses ini mungkin hanya butuh beberapa detik saja, waktu tersebut masih beribu-ribu kali lebih lambat daripada akses data secara langsung dari memori fisik.

Sehingga, menambahkan memori sistem (RAM) dapat meningkatkan performa sistem komputer yang kita miliki, sebab sistem komputer tidak perlu mengakses memori virtual terlalu sering.

pengertian page fault

Penanganan Page Fault

Berikut ini merupakan urutan langkah-langkah penanganan saat terjadi page fault:

  • Hardware dari perangkat akan melakukan trap ke kernel, program counter akan di-save ke stack. Pada banyak mesin, beberapa informasi tentang status instruksi saat itu di-save di register-register khusus CPU. CPU akan mengambil (load) instruksi dari memori untuk dijalankan.Pengambilan instruksi dilakukan dari halaman pada memori dengan mengakses tabel halaman.

    Interupsi page fault terjadi sehingga interupsi tersebut menyebabkan perangkat keras melakukan trap yaitu menjebak proses tersebut ke dalam sistem operasi.

    Jika referensi alamat yang diberikan ke sistem operasi ilegal atau dengan kata lain halaman yang ingin diakses tidak ada (tidak berada di disk), maka proses akan dihentikan. Namun jika referensi alamatnya adalah legal maka halaman yang diinginkan akan diambil dari disk.

  • Kode assembly dimulai untuk men-save register-register umum dan informasi lain yang bisa berubah, agar sistem operasi tidak merusaknya. Rutin ini memanggil sistem operasi sebagai suatu prosedur.
  • Sistem operasi menemukan bahwa terjadi page fault, dan mencoba menemukan page virtual mana yang diperlukan. Seringkali salah satu register hardware berisi informasi ini. Jika tidak, sistem operasi harus menarik program counter, mengambil instruksi, dan melakukan parsing pada software untuk mengetahui apa yang dilakukan sebelum terjadi fault.
  • Begitu alamat virtual yang menyebabkan fault diketahui, sistem operasi memeriksa apakah alamat ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi sinyal atau ditutup. Jika alamat valid dan tidak ada pelanggaran proteksi, sistem berusaha untuk mendapatkan frame page dari daftar frame bebas. Jika tidak ada frame yang bebas, dijalankan algoritma penggantian page untuk mencari yang bisa ditukar.

pengertian page fault

  • Jika frame page yang dipilih telah dimodifikasi, page dijadwalkan untuk ditransfer ke disk, dan terjadi pertukaran proses, menghentikan sementara proses yang fault dan membiarkan yang lainnya berjalan hingga transfer disk selesai. Frame ditandai terpakai untuk mencegah dipakai untuk tujuan lain.
  • Begitu frame page bersih (apakah langsung atau setelah disave ke disk), sistem operasi menelusuri alamat disk di mana page diperlukan, dan menjadwalkan operasi disk untuk memasukkannya. Sementara page dimasukkan, proses yang mengalami fault dihentikan sejenak dan yang lainnya dijalankan, jika ada.
  • Ketika disk interrupt menandai bahwa page telah ada, tabel page di-update untuk menunjukkan posisinya, dan frame ditandai berada dalam status normal.
  • Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-reset untuk menunjuk ke instruksi tersebut.
  • Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa assembly yang memanggilnya.
  • Rutin ini mengembalikan register dan informasi lainnya ke keadaan semula , dan kembali ke user untuk melanjutkan eksekusi, seakan-akan tidak ada fault yang terjadi.

Perlu diingat bahwa status yang ada–misalnya register, condition code, counter insruksi–dari proses yang diinterupsi ketika terjadi page fault akan disimpan sehingga proses dapat diulang kembali di tempat dan status yang sama, kecuali jika halaman yang kita inginkan sekarang telah berada di memori dan bisa kita akses.

Pada berbagai kasus page fault yang terjadi, umumnya ada tiga komponen yang akan dihadapi pada saat melayani page fault:

  1. Melayani interupsi page fault, seperti yang sudah dijelaskan di tahap penanganan page fault, yaitu pengambilan instruksi dilakukan dari halaman pada memori dengan mengakses tabel halaman.
  2. Membaca halaman, seperti yang sudah dijelaskan juga pada tahap penanganan page fault di atas pada tahap ke empat.
  3. Mengulang kembali semua proses dari awal hingga akhir.

Kesimpulan

Setelah kita membaca artikel di atas, kita tentunya sudah mengetahui apa yang dimaksud dengan page fault, alasan mengapa page fault dapat terjadi dan hal lain yang bersangkutan dengan page fault. Semoga apa yang sudah kita baca pada artikel yang ada di atas dapat menambah wawasan kita dan bermanfaat dalam kehidupan sehari-hari kita, ya, sobat!

Add comment