340 likes | 719 Views
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.
E N D
AlgoritmaPergantianHalaman • 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.
AlgoritmaPergantianHalaman • Saatterjadi page fault berartiharusdiputuskan page frame dimemorifisikygharusdiganti • Kinerjasistemakanbaikjika page ygdigantidipilih yang tidakakandigunakandimasadatang • Jika page ygdigantiakankembalidigunakan, maka page akandikembalikansecepatnyaygberartiterjadi 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.
Semakinbanyakdilakukanswap, semakinsibuk pula CPU mengurushalini. Bilaberkelanjutan, makaakanterjadithrashing. Thrashing adalahkeadaandimanabanyakterjadi page fault, sehinggamengakibatkanutilisasi CPU menurundrastiskarenalebihsibukmengurusipergantianhalamandaripadamengurusiproses.
Untukmenghindarihalini, diperlukanpemilihanalgoritmagantihalaman yang baik. Kriteriaalgoritma yang baikadalah: • Menyebabkanpage fault rate yang rendah. • Tidakmenyebabkanthrashing . •Tidak terlalu sulit untuk diimplementasikan.
Padaumumnya, semakinbesarmemori, semakinbanyak pula jumlahframe-nya. • Semakinbanyak frame, semakinbanyak pula jumlahhalaman yang bisamasukdimemori, sehingga page fault rate menurun.
Reference String • Reference string adalah string yang merepresentasikanhalaman-halaman yang ingindigunakan/ di-load . • Kegunaannyaadalahuntukmenyederhanakanalamatdanmempermudahmelihat page fault rate yang terjadisertamensimulasikanalgoritmagantihalaman. Biasanya reference string berisikumpulanalamat-alamathalaman yang dikelompokkanberdasarkanaturanreduksireference string.
Bilapereduksianalamatsebanyak 1000 bytes, makaalamat-alamat yang berurutansebanyak 1000 bytes diwakiliolehsatubuah reference string. • Misalnya 0003, 0563, 0094 diwakilioleh reference string 0. Demikianjuga 1745, 1003, 1999 diwakilioleh reference string 1 danseterusnya.
Contoh • Urutanalamat yang digunakanolehsebuahprosesadalah 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.
Algoritma FIFO • Prinsip yang digunakandalamalgoritma FIFO yaituhalaman yang digantiadalahhalaman yang paling lama beradadimemori. • Algoritmainiadalahalgoritmapemindahanhalaman yang paling mudahdiimplementasikan, Algoritmainimenggunakanstruktur data stack. Apabilatidakada frame kosongsaatterjadi page fault, makakorban yang dipilihadalahframe yang beradadi stack paling bawah, yaituhalaman yang beradapaling lama berada di memori.
Kelemahandarialgoritma FIFO adalahkinerjanya yang tidakselalubaik. Hal inidisebabkankarenaadakemungkinanhalaman yang barusajakeluardarimemoriternyatadibutuhkankembali. • Di sampingitudalambeberapakasus, tingkatkesalahanhalamanjustrubertambahseiringdenganmeningkatnyajumlahframe, yang dikenaldengannamaanomaliBelady.
AnomaliBelady • Padaawalnya, algoritmainidianggapcukupmengatasimasalahtentangpergantianhalaman, sampaipadatahun 70-an, Beladymenemukankeanehanpadaalgoritmaini yang dikenalkemudiandengananomaliBelady. • AnomaliBeladyadalahkeadaandimanapage fault rate meningkatseiringdenganpertambahanjumlahframe
Ketikajumlahframe ditambahdari 3 frame menjadi 4 frame, jumlah page fault yang terjadimalahbertambah (dari 14 page fault menjadi 15 page fault ). • Hal ini biasanya terjadi pada kasus yang menginginkanhalaman yang barusajadi-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 padaprinsipnyaakanmenggantihalaman yang tidakakandigunakanuntukjangkawaktu 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. 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 tampaknyamudahuntukdijelaskan, tetapialgoritmainisulitatauhampirtidakmungkinuntukdiimplementasikankarenasistemoperasiharusdapatmengetahuihalaman-halamanmanasaja yang akandiaksesberikutnya, padahalsistemoperasitidakdapatmengetahuihalaman yang munculdiwaktu yang akandatang.
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 akanmenggantihalaman yang telahtidakdigunakandalamjangkawaktuterlama (mengganti halaman yang paling lama tidak dibutuhkan)
Pertimbangannyayaituberdasarkanobservasibahwahalaman yang telahseringdiakseskemungkinanbesarakandiakseskembali. • 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.
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.