Algoritma Pergantian Halaman
Algoritma Pergantian Halaman Ganti halaman dilakukan apabila terjadi page fault. Page fault bukan suatu jenis error yang fatal, page fault terjadi apabila ada halaman yang ingin diakses tetapi halaman tersebut tidak terdapat di dalam memori utama. Page fault pasti terjadi minimal satu kali saat pertama kali halaman itu ingin diakses.
Algoritma Pergantian Halaman Saat terjadi page fault berarti harus diputuskan page frame di memori fisik yg harus diganti Kinerja sistem akan baik jika page yg diganti dipilih yang tidak akan digunakan di masa datang Jika page yg diganti akan kembali digunakan, maka page akan dikembalikan secepatnya yg berarti terjadi page fault berulang kali.
Prinsip ganti halaman a. Proses meminta halaman tertentu. b. Jika halaman berada di memori, tidak dilakukan ganti halaman. c. Jika halaman tidak berada di memori, maka: Jika ada frame kosong, maka halaman itu di-load ke dalam frame yang kosong tersebut. Jika tidak ada frame yang kosong, maka pilih halaman yang akan di-swap dengan menggunakan algoritma ganti halaman. d. Update tabel halaman dan table memori. e. Restart proses.
Semakin banyak dilakukan swap, semakin sibuk pula CPU mengurus hal ini Semakin banyak dilakukan swap, semakin sibuk pula CPU mengurus hal ini. Bila berkelanjutan, maka akan terjadi thrashing. Thrashing adalah keadaan di mana banyak terjadi page fault, sehingga mengakibatkan utilisasi CPU menurun drastis karena lebih sibuk mengurusi pergantian halaman daripada mengurusi proses.
Untuk menghindari hal ini, diperlukan pemilihan algoritma ganti halaman yang baik. Kriteria algoritma yang baik adalah: • Menyebabkan page fault rate yang rendah. • Tidak menyebabkan thrashing . •Tidak terlalu sulit untuk diimplementasikan.
Pada umumnya, semakin besar memori, semakin banyak pula jumlah frame-nya. Semakin banyak frame, semakin banyak pula jumlah halaman yang bisa masuk di memori, sehingga page fault rate menurun.
Grafik jumlah page fault terhadap jumlah frame
Reference String Reference string adalah string yang merepresentasikan halaman-halaman yang ingin digunakan/ di-load . Kegunaannya adalah untuk menyederhanakan alamat dan mempermudah melihat page fault rate yang terjadi serta mensimulasikan algoritma ganti halaman. Biasanya reference string berisi kumpulan alamat-alamat halaman yang dikelompokkan berdasarkan aturan reduksi reference string.
Bila pereduksian alamat sebanyak 1000 bytes, maka alamat-alamat yang berurutan sebanyak 1000 bytes diwakili oleh satu buah reference string. Misalnya 0003, 0563, 0094 diwakili oleh reference string 0. Demikian juga 1745, 1003, 1999 diwakili oleh reference string 1 dan seterusnya.
Contoh Urutan alamat yang digunakan oleh sebuah proses adalah 0301, 0213, 0312, 0321, 0341, 0421, 0431, 0132, 0431, 0152. Maka, reference string-nya dengan reduksi 100 bytes adalah 3, 2, 3, 3,3,4,4, 1, 4, 1.
Soal : Tentukan reference string- dengan reduksi 100 bytes
Algoritma FIFO Prinsip yang digunakan dalam algoritma FIFO yaitu halaman yang diganti adalah halaman yang paling lama berada di memori. Algoritma ini adalah algoritma pemindahan halaman yang paling mudah diimplementasikan, Algoritma ini menggunakan struktur data stack. Apabila tidak ada frame kosong saat terjadi page fault, maka korban yang dipilih adalah frame yang berada di stack paling bawah, yaitu halaman yang berada paling lama berada di memori.
Algoritma FIFO
Kelemahan dari algoritma FIFO adalah kinerjanya yang tidak selalu baik Kelemahan dari algoritma FIFO adalah kinerjanya yang tidak selalu baik. Hal ini disebabkan karena ada kemungkinan halaman yang baru saja keluar dari memori ternyata dibutuhkan kembali. Di samping itu dalam beberapa kasus, tingkat kesalahan halaman justru bertambah seiring dengan meningkatnya jumlah frame, yang dikenal dengan nama anomali Belady.
Anomali Belady Pada awalnya, algoritma ini dianggap cukup mengatasi masalah tentang pergantian halaman, sampai pada tahun 70-an, Belady menemukan keanehan pada algoritma ini yang dikenal kemudian dengan anomali Belady. Anomali Belady adalah keadaan di mana page fault rate meningkat seiring dengan pertambahan jumlah frame
Anomali Algoritma FIFO
Ketika jumlah frame ditambah dari 3 frame menjadi 4 frame, jumlah page fault yang terjadi malah bertambah (dari 14 page fault menjadi 15 page fault ). Hal ini biasanya terjadi pada kasus yang menginginkan halaman yang baru saja di-swap-out sebelumnya.
Soal Diketahui suatu program dengan reference string yaitu 0123401401234. Tentukan apakah terjadi anomali belady jika: a. Dialokasikan 3 page b. Diaklokasikan 4 page
Algoritma Optimal Algoritma optimal pada prinsipnya akan mengganti halaman yang tidak akan digunakan untuk jangka waktu yang paling lama. Algoritma ini memiliki page fault rate paling rendah di antara semua algoritma di semua kasus.
Algoritma ini adalah algoritma yang paling optimal sesuai namanya Algoritma ini adalah algoritma yang paling optimal sesuai namanya. Prinsip dari algoritma ini adalah mengganti halaman yang tidak akan terpakai lagi dalam waktu lama, sehingga efisiensi pergantian halaman meningkat (page fault yang terjadi berkurang) dan terbebas dari anomali Belady.
Meski pun tampaknya mudah untuk dijelaskan, tetapi algoritma ini sulit atau hampir tidak mungkin untuk diimplementasikan karena sistem operasi harus dapat mengetahui halaman-halaman mana saja yang akan diakses berikutnya, padahal sistem operasi tidak dapat mengetahui halaman yang muncul di waktu yang akan datang.
Contoh
Soal Diketahui suatu program dengan Reference string : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 Jumlah page = 3 Gambarkan eksekusi dengan menggunakan algoritma optimal!
Algoritma Least Recently Used (LRU) Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah algoritma lain yang performance-nya mendekati algoritma optimal dengan sedikit cost yang lebih besar. Algoritma LRU akan mengganti halaman yang telah tidak digunakan dalam jangka waktu terlama (mengganti halaman yang paling lama tidak dibutuhkan)
Pertimbangannya yaitu berdasarkan observasi bahwa halaman yang telah sering diakses kemungkinan besar akan diakses kembali. Asumsinya, halaman yang sudah lama tidak digunakan sudah tidak dibutuhkan lagi dan kemungkinan besar, halaman yang baru di-load akan digunakan kembali.
algoritma LRU tidak mengalami anomali Belady. Algoritma ini memakai linked list untuk mendata halaman mana yang paling lama tidak terpakai.
Halaman yang berada di linked list paling depan adalah halaman yang baru saja digunakan. Semakin lama tidak dipakai, halaman akan berada semakin belakang dan di posisi terakhir adalah halaman yang paling lama tidak digunakan dan siap untuk di-swap.
Contoh
Algoritma random Dalam algoritma ini, halaman yang dipilih menjadi korban dipilih secara acak. Meskipun terdengar asal, tetapi algoritma ini relatif low cost, karena tidak memerlukan stack, queue atau counter. Dibandingkan dengan FIFO, rata-rata kasus menunjukkan page fault rate algoritma random lebih rendah daripada algoritma FIFO. Sedangkan dibandingkan dengan LRU, algorima random ini lebih unggul dalam hal memory looping reference , karena algoritma random sama sekali tidak memerlukan looping.