Page Fault adalah suatu operasi yang muncul pada sebuah komputer yang disertai dengan
memori virtual (virtual Memory), atau bisa dikatakan sebuah proses yang memungkinkan bagian
hard disk untuk menambah memori fisik (Physical Memory) komputer. Kebanyakan page fault
terjadi ketika sebuah sebuah program mencoba mengakses informasi yang telah ditempatkan ke
dalam file virtual memory pada hard disk. Hal ini merupakan sebuah fungsi normal virtual
memmory. Kemudian komputer akan merespon dengan memuat informasi yang sesuai ke dalam
physical memory. Tipe page fault yang lebih teknis lagi berhubungan dengan Crash dan error
pada komputer yang bisa muncul ketika program mencari informasi yang tidak ada atau
dilindungi. Hal ini bisa disebabkan oleh hardware yang bermasalah atau software yang corrupt
atau kurang sempurna
Jadi, Pada saat terjadinya page fault berarti harus diputuskan page frame di memori fisik yang
harus diganti. Kinerja sistem akan baik jika page yang diganti dipilih yang tidak akan digunakan
di masa yang akan datang. Jika page yang diganti akan kembali digunakan maka page akan
dikembalikan secepatnya yang berarti terjadi page fault berulang kali. Banyaknya page fault
menghasilkan banyak overheard.
Terdapat beberapa algoritma page replacement, setiap sistem operasi mempunyai skema yang
unik. Algoritma page replacement secara umum diinginkan yang mempunyai rata-rata page fault
terendah. Algoritma page replacement di antaranya adalah:
1. Algoritma page replacement Acak
2. Algoritma page replacement FIFO
3. Algoritma page replacement Optimal
4. Algoritma page replacement NRU
5. Algoritma page replacement LRU
6. Algoritma page replacement Second Chance Page
7. Algoritma page replacement Clock
Mari kita bahas satu per-satu Algoritma Page Replacement di atas.
1. Algoritma Page Replacement Acak
Dari segi mekanisme algoritma tersebut, setiap akan timbul page fault, page yang diganti dengan
pilihan secara acak. Untuk segi tekniknya sendiri pun algoritma ini tidak perlu menggunakan
informasi dalam menentukan page yang diganti, di dalam memory utama itu sendiri pun sudah
mempunyai bobot yang sama untuk dipilih, karena teknik ini dapat dipakai untuk memilih page
sembarang. Termasuk page yang sudah dipilih dengan benar-benar / page yang tidak seharusnya
diganti.
Inti dari algoritma ini adalah simple / paling sederhana karena prinsipnya sama seperti prinsip
antrian tak berprioritas. Page yang masuk terlebih dahulu maka page tersebut akan keluar duluan
juga. Untuk algoritma ini menggunakan structure data stack. Jadi cara kerjanya yaitu dimana
ketika tidak ada frame yang kosong saat terjadi page fault maka korban yang dipilih adalah
frame dengan stack paling bawah seperti hal nya halaman yang sudah lama tersimpan didalam
memory maka dari itu algoritma ini juga bisa memindahkan page yang sering digunakan.
Pengertian dari algoritma ini sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip
dari algoritma ini sangat efisien sekali karena hanya mengganti halaman yang sudah tidak
terpakai lagi dalam jangka waktu lama sehingga page fault yang terjadi akan berkurang dan
terbebas dari anomali Belady Selain itu juga page fault dari algoritma ini memiliki rate paling
tinggi dari algoritma lainnya dari semua kasus, akan tetapi belum bisa disebut sempurna karena
sulit untuk dimengerti dan dari segi system pun belum tentu bisa mengetahui page untuk
berikutnya tetapi dapat disimulasikan hanya untuk suatu program. Untuk intinya gunakanlah
hingga mendekati page optimal agar bisa memanfaatkannya.
Untuk mekanisme dari algoritma ini diberi dua bit untuk mencatat status page, diantaranya bit M
dan R yaitu :
Bit M : Page yang telah dimodifikasi
Bit M = 0 berarti tidak dimodif
Bit M = 1 berarti sudah dimodif
Bit R : Page yang sedang dipacu / referenced
Bit R = 1 berarti sedang di acu
Bit R = 0 berarti tidak sedang di acu
Adanya dua bit di atas maka akan dapat dikelompokkan menjadi 4 kelas page, yaitu :
Kelas 0 => Tidak sedang di acu / belum di modif (R=0, M=0)
Kelas 1 => Tidak sedang di acu / telah di modif (R=0, M=1)
Kelas 2 => Sedang di acu / belum di modif (R=1, M=0)
Kelas 3 => Sedang di acu / telah di modif (R=1, M=1)
Jadi, apabila algoritma ini diasumsikan kelas-kelas bernomor lebih rendah baru akan digunakan
kembali dalam relatif jangka waktu lama. Intinya algoritma ini mudah dipahami dan
dikembangkan karena sangat efisien walaupun tak banyak langkah dalam pemilihan page dan
kelemahannya juga tidak optimal tapi dalam kondisi normal yang memadai.
Algoritma second chance merupakan hasil modifikasi dari algoritma FIFO yang disempurnakan
lagi. Algoritma ini menggunakan tambahan berupa reference bit yang nilainya 0 atau 1. Jika
dalam FIFO menggunakan stack, maka second chance menggunakan circular queue. Halaman
yang baru di-load atau baru digunakan akan diberikan nilai 1 pada reference bit-nya. Halaman
yang reference bit-nya bernilai 1 tidak akan langsung diganti walaupun dia berada di antrian
paling bawah (berbeda dengan FIFO).
Algoritma Clock merupakan hasil modifikasi dari algoritma FIFO yang kedua dan juga
merupakan model lain dari algoritma page replacement second chance page, namun dalam
implementasinya menggunakan 'circular queue' dengan page berbentuk lingkaran.
Jika :
Nilai bit = 0, ganti page
Nilai bit = 1
- Ubah nilai bit = 0
- Pointer bergerak ke page berikutnya searah jarum jam.
Untuk melihat ringkasan ini semua, Anda bisa download e-book / file pdf di bawah ini.
Khususnya untuk Algoritma Clock.