Algoritma Priority Allocation . Algoritma priority allocation merupakan algoritma

sampai pada suatu titik CPU utilization menurun drastis, di titik ini thrashing dapat dihentikan dengan menurunkan derajat multiprograming. Pada saat CPU utilization terlalu rendah, maka sistem operasi akan meningkatkan derajat multiprogramming dengan cara menghasilkan proses-proses baru, dalam keadaan ini algoritma penggantian global akan digunakan. Ketika proses membutuhkan bingkai yang lebih, maka akan terjadi page fault yang menyebabkan CPU utilization semakin menurun. Ketika sistem operasi mendeteksi hal ini, derajat multiprogramming makin ditingkatkan, yang menyebabkan CPU utilization kembali menurun drastis, hal ini yang menyebabkan thrashing. Untuk membatasi efek thrashing dapat menggunakan algoritma penggantian lokal. Dengan algoritma penggantian lokal, jika terjadi thrashing, proses tersebut dapat menggambil bingkai dari proses lain dan menyebabkan proses tersebut tidak mengalami thrashing. Salah satu cara untuk menghindari thrashing adalah dengan cara menyediakan jumlah bingkai yang pas sesuai dengan kebutuhan proses tersebut. Salah satu cara untuk mengetahui jumlah bingkai yang diperlukan pada suatu proses adalah dengan strategi working set.

7.6. Working Set Model

Salah satu cara menghindari thrashing adalah dengan menyediakan sebanyak mungkin bingkai sesuai dengan kebutuhan proses. Untuk mengetahui berapa bingkai yang dibutuhkan adalah dengan strategi working set. Strategi ini dimulai dengan melihat berapa banyak bingkai yang digunakan oleh suatu proses. Working set model mengatakan bahwa sistem hanya akan berjalan secara efisien jika proses diberikan bingkai yang cukup, jika bingkai tidak cukup untuk menampung semua proses maka suatu proses akan ditunda, dan memberikan halamannya untuk proses yang lain. Working set model merupakan model lokalitas dari eksekusi proses. Model ini menggunakan parameter delta untuk definisi working set window. Kumpulan dari halaman dengan halaman yang dituju yang paling sering muncul disebut working set. Gambar 7.2. Working Set Model Pada contoh gambar, terlihat bahwa dengan = 10 memory references, maka working set pada t1 adalah {1,2,5,6,7} dan working set pada t2 adalah {3,4}. Keakuratan Working set tergantung pada pemilihan : 1. jika terlalu kecil tidak akan mewakilkan seluruh lokalitas. 2. jika terlalu besar menyebabkan overlap. 3. jika tidak terbatas working set adalah kumpulan halaman sepanjang eksekusi program. Jika total permintaan total bingkai, maka akan terjadi thrashing. Jika ini terjadi maka proses yang sedang berjalan akan diblok.

7.7. Page Fault

49 Untuk mencegah thrashing maka kita harus mengatur tingkat page fault yang terjadi. Jika page fault sering terjadi maka dibutuhkan bingkai yang lebih banyak, jika page fault jarang terjadi maka bingkai yang ada terlalu banyak, maka diperlukan batasan untuk menentukan batas atas dan batas bawah dari frekuensi page fault. Jika melewati batas atas maka proses mendapat alokasi bingkai baru, jika melewati batas bawah maka bingkai akan didealokasi dari proses. Gambar 7.3. Page-Fault Dalam working set strategi jika melewati batas atas maka harus ada proses yang ditunda dan bingkai yang bebas akan distribusikan untuk proses dengan frekuensi page fault yang tinggi.

7.8. Memory Mapped Files

Mengakses file pada disk secara sequential menggunakan system call open , read , write . Cara lain untuk mengakses file pada disk adalah dengan menggunakan memori virtual. Cara ini diberi nama memory mapping yang memperbolehkan sebagian memori virtual dihubungkan kepada file. Memory-mapped file dapat dilakukan dengan memetakan blok dari disk ke halaman di memori. Proses membaca dan menulis file dapat dilakukan dengan akses ke memori sehingga lebih mudah dibandingkan dengan menggunakan system call. Memodifikasi file yang dipetakan pada memori tidak harus langsung meng-update hasil modifikasi tersebut pada file di disk. Beberapa system meng-update file fisik jika sistem operasi menemukan halaman pada memori telah diubah. Hal ini dilakukan secara periodik oleh sistem operasi. Ketika file ditutup maka semua data pada memori ditulis ke disk dan dibuang dari memori virtual. Pada beberapa sistem operasi pemetaan memori menggunakan system call yang khusus sedangkan untuk menjalankan proses MK file menggunakan standard system call. Akan tetapi, beberapa sistem operasi justru tidak membedakan apakah file yang akan dimodifikasi tersebut ditujukan untuk memory-mapped atau tidak, contohnya adalah Solaris yang menganggap semua file yang akan dimodifikasi adalah file yang akan dipetakan ke memori. Banyak proses diperbolehkan untuk memetakan file yang akan dipergunakan secara bersama-sama. Data yang dimodifikasi oleh sebuah proses dapat terlhat oleh proses lain yang dipetakan ke bagian yang sama. Memori virtual memetakan setiap proses pada halaman yang sama di memori fisik yang mengandung salinan file di disk. System call memory-mapped juga mendukung copy-on-write. 50