Prepaging Ukuran Halaman Seputar Alokasi Bingkai

int i,j; int[128][128] data; Assume that pages are 128 words in size fori=0; i 128; i++ forj = 0; j 128;j++ Program to initialize to 0 data[i][j] = 0; each element of 128x128 array Gambar 8.5. Ilustrasi Program 2 Pada program diatas, penggantian halaman dilakukan tiap kali pengaksesan data. Oleh karena itu, jika sistem operasi mengalokasikan kurang dari 128 frames maka program diatas mempunyai potensi 128 x 128 = 16.384 page faults. Jika program di atas diubah menjadi Program 2, maka potensi terjadinya page fault bisa berkurang menjadi 128 page faults. Hal ini disebabkan pergantian halaman tidak dilakukan setiap kali pengaksesan data, tapi setelah selesai pengaksesan 128 data, barulah terjadi pergantian halaman.

8.8. Penguncian MK

Saat demand paging digunakan, kita terkadang harus mengizinkan beberapa halaman untuk dikunci di memori. Salah satu situasi muncul saat MK dilakukan ke atau dari memori pengguna virtual. MK sering diimplementasikan oleh prosesor MK yang terpisah. Sebagai contoh, sebuah pengendali pita magnetik pada umumnya diberikan jumlah bytes yang akan dipindahkan dan alamat 58 memori untuk buffer. Saat pemindahan selesai, CPU diinterupsi. Gambar 8.6. Why we need IO Interlock Gambar 8.7. Blok Struktur Sebuah proses mengeluarkan permintaan MK dan diletakkan di antrian untuk MK tersebut. Sementara itu, CPU diberikan ke proses-proses lain. Proses-proses ini menimbulkan kesalahan halaman dan menggunakan algoritma penggantian global, salah satu dari mereka menggantikan halaman yang mengandung memori buffer untuk proses yang menunggu tadi. Halaman-halaman untuk proses tersebut dikeluarkan. Kemudian, saat permintaan MK bergerak maju menuju ujung dari antrian peranti, MK terjadi ke alamat yang telah ditetapkan. Bagaimana pun, frame ini sekarang sedang digunakan untuk halaman berbeda milik proses lain. Harus diperhatikan agar urutan dari kejadian-kejadian di atas tidak muncul. Ada dua solusi untuk masalah ini. Salah satunya adalah jangan pernah menjalankan MK kepada memori pengguna. Sedangkan solusi lainnya adalah dengan mengizinkan halaman untuk dikunci dalam memori agar tidak terjadi page out akibat suatu proses mengalami page fault. 59