Demand Paging

Memori virtual dapat dilakukan dengan 2 cara, yaitu dengan demand paging dan page replacement. Dimana memori virtual itu sendiri adalah  suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori fisik yang tersedia. Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual”. Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris (Hariyanto, Bambang: 2001).
Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori fisik. Hal ini memberikan keuntungan:
·        Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
·        Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.
·        Meningkatnya respon, karena menurunnya beban I/O dan memori.
·        Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Demand paging atau permintaan pemberian halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. (Demand paging) pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan. Untuk itu diperlukan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan.
Karena demand paging merupakan implementasi dari memori virtual, maka keuntungannya sama dengan keuntungan memori virtual, yaitu:
·        Sedikit I/O yang dibutuhkan.
·        Sedikit memori yang dibutuhkan.
·        Respon yang lebih cepat.
·        Dapat melayani lebih banyak pengguna.
Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada halaman yang dibutuhkan, yaitu: halaman ada dan sudah berada di memori. Statusnya valid ("1"). Halaman ada tetapi masih berada di disk belum diberada di memori (harus menunggu sampai dimasukkan). Statusnya tidak valid ("0"). Halaman tidak ada, baik di memori maupun di disk (invalid reference --> abort).
Saat terjadi kasus kedua dan ketiga, maka proses dinyatakan mengalami kesalahan halaman. Perangkat keras akan menjebaknya ke dalam sistem operasi.
l  Umumnya basis VM => paging.
l  Demand (sesuai dengan kebutuhan):
a.      Ambil/bawa page ke memory hanya jika diperlukan.
b.      Umumnya program memerlukan page sedikit (one by one).
c.       Less I/O & less memory (more users).
d.      Transfer cepat (faster response).

Page dibutuhkan saat :
l  Saat ekesekusi proses dan terjadi referensi logical address ke page tersebut.
a.      invalid reference Þ abort
b.      not-in-memory Þ bring to memory
l  Page table menyimpan daftar page frame yang telah dialokasikan untuk proses tersebut.

A.    Penanganan Kesalahan Halaman
Prosedur penanganan kesalahan halaman :
·        Memeriksa tabel internal yang dilengkapi dengan PCB untuk menentukan valid atau tidaknya bit.
·        Apabila tidak valid, program akan di terminasi (interupsi oleh illegal address trap). Jika valid tapi proses belum dibawa ke halaman, maka kita halaman kan sekarang.
·        Memilih frame kosong (free-frame), misalnya dari free-frame list. Jika tidak ditemui ada frame yang kosong, maka dilakukan swap-out dari memori. Frame mana yang harus di-swap-out akan ditentukan oleh algoritma (lihat sub bab penggantian halaman).
·        Menjadualkan operasi disk untuk membaca halaman yang diinginkan ke frame yang baru dialokasikan.
·        Ketika pembacaan komplit, ubah bit validasi menjadi "1" yang berarti halaman sudah diidentifikasi ada di memori.
·        Mengulang instruksi yang tadi telah sempat diinterupsi. Jika tadi kesalahan halaman terjadi saat instruksi di-ambil, maka akan dilakukan pengambilan lagi. Jika terjadi saat operan sedang di-ambil, maka harus dilakukan pengambilan ulang, dekode, dan pengambilan operan lagi.

B.     Kinerja Demand Paging
Menggunakan Effective Access Time (EAT), dengan rumus:
EAT = (1-p) x ma + p x waktu kesalahan halaman
·        p: kemungkinan terjadinya kesalahan halaman (0 < p < 1)
·        p = 0; tidak ada kesalahan halaman
·        p = 1; semuanya mengalami kesalahan halaman
·        ma: waktu pengaksesan memory (memory access time)
Untuk menghitung EAT, kita harus tahu berapa banyak waktu dalam pengerjaan kesalahan halaman.
Contoh penggunaan Effective Access Time:
Diketahui:
Waktu pengaksesan memory = ma = 100 nanodetik Waktu kesalahan halaman = 20 milidetik.
Maka, EAT = (1-p) x 100 + p (20 milidetik) = 100 - 100p + 20.000.000p = 100 + 19.999.900p (milidetik)
Pada sistem demand paging, sebisa mungkin kita jaga agar tingkat kesalahan halamannya rendah. Karena bila Effective Access Time meningkat, maka proses akan berjalan lebih lambat.

sumber :

http://www.stanford.edu/class/cs140/cgi-bin/lecture.php?topic=paging
http://www.science.unitn.it/~fiorella/guidelinux/tlk/node26.html
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch05s02.html http://bebas.ui.ac.id/v06/Kuliah/SistemOperasi/2004/51/produk/SistemOperasi/c56.html

Komentar

Posting Komentar

Postingan populer dari blog ini

Cinnamoroll

Resensi Novel Love, Edelweiss, and Me