IV. Penanganan Page Fault
Prosedur
untuk menangani page fault adalah sebagai berikut:
- CPU mengambil instruksi dari memori untuk dijalankan. Pengambilan instruksi dilakukan dari halaman pada memori dengan mengakses tabel halaman. Ternyata pada tabel halaman bit ter-set tidak valid atau invalid.
- Interupsi page fault terjadi sehingga interupsi tersebut menyebabkan perangkat keras melakukan trap yaitu menjebak proses tersebut ke dalam sistem operasi.
- Jika referensi alamat yang diberikan ke sistem operasi ilegal atau dengan kata lain halaman yang ingin diakses tidak ada (tidak berada di disk), maka proses akan dihentikan. Namun jika referensi alamatnya adalah legal maka halaman yang diinginkan akan diambil dari disk.
- Halaman yang diinginkan akan dibawa dari disk ke memori utama.
- Tabel halaman akan diatur ulang lagi sesuai dengan kondisi yang baru. Jika tidak terdapat ruang kosong (free frame) di memori utama untuk menaruh halaman yang baru maka dilakukan penggantian halaman dengan memilih salah satu halaman pada memori utama untuk digantikan dengan halaman yang baru tersebut. Penggantian halaman dilakukan dengan menggunakan algoritma tertentu. Jika halaman yang digantikan tersebut sudah dimodifikasi oleh proses maka halaman tersebut harus ditulis kembali ke disk.
- Setelah halaman yang diinginkan sudah dibawa ke memori utama maka proses dapat diulang kembali. Dengan demikian proses sudah bisa mengakses halaman karena halaman telah diletakan ke memori utama.
Perlu
diingat bahwa status (register, condition
code, counter insruksi) dari proses yang diinterupsi ketika terjadi page
fault akan disimpan sehingga proses dapat diulang kembali di tempat dan
status yang sama, kecuali jika halaman yang diinginkan sekarang telah berada di
memori dan dapat diakses.
V. Kinerja
Dalam proses
demand paging jika terjadi page fault maka diperlukan waktu yang
lebih lambat untuk mengakses memori daripada jika tidak terjadi page fault. Hal ini dikarenakan perlu
adanya penanganan page fault
itu sendiri. Kinerja demand paging
ini dapat dihitung dengan menggunakan effective access time yang
dirumuskan sebagai berikut:
effective
access time = (1 – p) x ma + p x page fault time
- ma adalah memory access time yang pada umumnya berkisar antara 10 hingga 200 nanosecond.
- p adalah probabilitas terjadinya page fault yang berkisar antara 0 hingga 1.
Untuk
mendapatkan effective access time kita harus mengetahui waktu yang
diperlukan untuk menangani page fault.
Komponen-komponen dalam penanganan page
fault terdiri dari tiga kelompok besar, yaitu melayani interupsi dari page fault, membaca halaman, dan
mengulang kembali proses.
Contoh
penggunaan effective address
Diketahui :
-
Waktu
pengaksesan memori (ma) sebesar 100 ns.
-
Waktu page
fault sebesar 20 ms.
Jawab :
effective
access time = (1 – p) x ma + p x page fault time
= (1 – p) x 100 + p x 20000000
= 100 – 100p + 20000000p
= 100 + 19.999.900p nanosecond
Pada demand
paging, diusahakan agar kemungkinan terjadinya page fault rendah,
karena bila effective access time-nya meningkat, maka proses akan
berjalan lebih lambat.
VI. Page Replacement.
Jika
terdapat sebuah proses yang memiliki sepuluh halaman dan hanya menggunakan
setengah di antaranya, yaitu lima halaman maka demand paging menyimpan kelima proses yang tidak dibutuhkan
tersebut agar tidak diakses oleh M/K. Dengan begitu kita dapat meningkatkan degree
of multiprogramming, yaitu dengan menjalankan proses dua kali lebih banyak.
Jika kita memiliki empat puluh bingkai kita dapat menjalankan delapan proses.
Bandingkan dengan jika kesepuluh halaman tersebut dipanggil maka hanya dapat
dijalankan maksimum empat proses.
Jika kita
meningkatkan degree of multiprogramming, yaitu dengan menjalankan proses
lebih banyak maka dapat terjadi over-allocating memory. Over-allocating
memory juga dapat terjadi jika terdapat page fault, yaitu pada saat sistem operasi mendapatkan halaman
yang dicari pada disk kemudian membawanya ke memori fisik tetapi tidak terdapat
bingkai yang kosong pada memori fisik tersebut.
Sistem
Operasi memiliki dua cara untuk menangani masalah ini, yaitu:
- Menterminasi proses yang sedang mengakses halaman tersebut tetapi cara ini tidak dapat dilakukan karena demand paging merupakan usaha sistem operasi untuk meningkatkan utilisasi komputer dan throughputnya.
- Penggantian halaman (page replacement). Sistem operasi dapat memindahkan suatu proses dari memori fisik lalu menghapus semua bingkai yang semula digunakannya dan mengurangi.
Suatu
bingkai dapat dikosongkan dengan memindahkan isinya ke dalam ruang pemindahan
kemudian mengubah semua tabel halaman hingga mengindikasikan bahwa halaman yang
dipindah tersebut sudah tidak berada di memori fisik. Lalu bingkai yang telah
kosong tersebut dapat digunakan oleh halaman yang akan ditempatkan di memori
fisik.
Dengan
memodifikasi urutan penanganan page
fault maka dapat dijabarkan urutan proses page replacement
sebagai berikut.
- Mencari lokasi dari halaman yang dicari di disk.
- Mencari bingkai yang kosong di memori fisik.
- Masukkan halaman yang berasal dari disk tersebut ke dalam bingkai yang baru dikosongkan tersebut.
- Lanjutkan proses yang telah diinterupsi.
Dari
penjelasan di atas maka dapat disimpulkan bahwa jika tidak terdapat bingkai
yang kosong maka terdapat dua transfer halaman. Hal ini tentu saja menambah
waktu dalam penanganan page fault
dan sceara otomatis menambah effective
access time.
Hal tersebut
dapat diselesaikan dengan menggunakan bit modifikasi (modify bit/dirty
bit ). Setiap halaman atau bingkai memiliki bit modifikasi yang sesuai pada
perangkat keras. Bit modifikasi untuk sebuah halaman diatur oleh perangkat
keras pada saat suatu byte atau word dituliskan ke halaman tersebut yang
menunjukan bahwa halaman tersebut telah dimodifikasi. Waktu suatu halaman
dipilih untuk dipindahkan dari memori fisik ke disk diperiksa terlebih dahulu
bit modifikasinya di disk. Jika bit modifikasinya ada maka halaman tersebut
harus ditulis ke disk. Namun, apabila bit modifikasinya belum ada di disk maka
halaman tersebut belum dimodifikasi karena halaman tersebut masih berada di
memori utama. Oleh karena itu, jika salinan dari halaman tersebut masih
terdapat di disk (belum ditimpa oleh halaman lain) maka penulisan halaman dari
memori utama ke disk tidak diperlukan. Hal ini juga berlaku pada halaman read-only,
yaitu halaman yang tidak dapat dimodifikasi. Sehingga waktu yang diperlukan
untuk penanganan page fault
dapat berkurang dengan cukup signifikan karena berkurangnya waktu M/K dari dan
ke disk.
Tidak ada komentar:
Posting Komentar