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:
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
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
makasih banyak min
BalasHapusobeng plus samsung