Asnita Meydelia C K 130533608143 
Aunur Rofik 130533608128 
Rizky Dwi Hidayat 130533608123 
Yopy Adiantoro 130533608125
Memori virtual adalah teknik yang memisahkan 
memori logika user dari memori fisik. Menyediakan 
memori virtual yang sangat besar diperuntukkan 
untuk programmer bila tersedia memori fisik yang 
lebih kecil. Programmer tidak perlu khawatir 
jumlah memori fisik yang tersedia, sehingga dapat 
berkonsentrasi pada permasalahan pemrograman.
 Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi 
rendah). Misal, untuk program butuh membaca dari disk dan 
memasukkan dalam memory setiap kali diakses. 
 Berkurangnya memori yang dibutuhkan (space menjadi lebih 
leluasa). Contoh, untuk program 10 MB tidak seluruh bagian 
dimasukkan dalam memori. Pesan-pesan error hanya 
dimasukkan jika terjadi error. 
 Meningkatnya respon, sebagai konsekuensi dari menurunnya 
beban I/O dan memori. 
 Bertambahnya jumlah user yang dapat dilayani. Ruang memori 
yang masih tersedia luas memungkinkan komputer untuk 
menerima lebih banyak permintaan dari user.
Memori virtual dapat dilakukan melalui dua cara: 
1. Permintaan pemberian halaman (demand paging). 
2. Permintaan segmentasi (demand segmentation). 
Algoritma dari permintaan segmentasi lebih kompleks, 
karenanya jarang diimplementasikan.
Demand paging adalah sistem paging dengan 
swapping. Page diletakkan di memori hanya jika 
diperlukan. Hal ini menyebabkan kebutuhan I/O 
lebih rendah, kebutuhan memori lebih rendah, 
respon lebih cepat dan lebih banyak user yang 
menggunakan.
Sebuah proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka 
dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping bila 
page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke memori 
kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika 
acuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di memori 
tersebut akan dibawa ke memori dari backing store. 
Untuk membedakan antara page pada memori dengan page pada disk digunakan valid-invalid 
bit. Tabel page untuk page yang berada di memori diset “valid’, sedangkan tabel page 
untuk page yang tidak sedang di memori (ada pada disk) diset “invalid” 
Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap ke 
sistem operasi. Karena status (register, kode kondisi, counter instruksi) dari proses ter-interrupt 
disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status 
yang sama, kecuali page yang cocok sedang di memori dan sedang diakses.
Langkah-langkah bila terjadi page fault
Diasumsikan ma adalah access time (10-200 ns) ke memori dan p 
adalah probabilitas terjadi page fault(0 ≤ p ≤1), maka effective 
access time didefinisikan sebagai : 
EAT = (1-p) x ma + p x page_fault-time 
Untuk menghitung effective access time, harus diketahui berapa 
waktu yang 
diperlukan untuk melayani page fault.
Diketahui waktu pengaksesan memori (ma) sebesar 100 ns. 
Waktu page fault sebesar 20 ms. Maka : 
EAT = (1 - p) x ma + p x page fault time 
= (1 - p) x 100 + p x 20000000 
= 100 - 100p + 20000000p 
= 100 + 19.999.900p nanosecond
Saat terjadi page fault, maka harus diputuskan page frame 
di memori fisik yang harus diganti. Kinerja sistem akan 
baik jika page yang diganti dipilih yang tidak sering 
digunakan di masa datang. Jika page yang diganti sering 
digunakan, maka page itu akan dikembalikan secepatnya 
yang berarti terjadi page fault berulang kali. 
Banyaknya page fault menghasilkan banyak overhead.
1. Algoritma penggantian page acak 
2. Algoritma penggantian page optimal 
3. Algoritma penggantian page NRU 
4. Algoritma penggantian page FIFO 
5. Algoritma penggantian page modifikasi FIFO 
6. Algoritma penggantian page LRU
Page yg dikeluarkan untuk memberi tempat 
ke yang baru ditentukan secara acak tanpa 
kriteria tertentu.
Setiap page diberi label untuk menandai berapa instruksi 
lagi baru dia digunakan. Page dengan label tertinggi 
(waktu dari sekarang sampai pemakaian berikutnya paling 
lama) yang akan dikeluarkan.
Setiap page diberi status bit R (referenced) dan M (modified). Bit 
bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika 
sebaliknya. Dari nilai desimalnya didapat 4 kelas: 
Page dengan kelas terkecillah yang akan dikeluarkan.
Page yang paling dulu masuk ke memori dari semua page yang ada dikeluarkan.
Mencari page yang berada di memori paling lama, 
tetapi juga tidak dipakai. 
Jika sebuah page dipakai (direferensi) bit R diset. 
Jika sistem menemukan bahwa bit R page yang 
paling lama ter-set, page tersebut tidak jadi 
dikeluarkan, tetapi bit R-nya di-reset.
Yang dikeluarkan ialah page yang sudah tidak terpakai 
dalam waktu paling lama.
 Alokasi frame berhubungan dengan mekanisme alokasi sejumlah 
memori bebas yang tetap diantara beberapa proses. Meskipun 
terdapat beberapa variasi pengalokasian frame bebas ke beberapa 
proses, tetapi strategi dasar jelas yaitu : proses user dialokasikan 
untuk sembarang frame bebas. 
 Jumlah minimum frame per proses ditentukan oleh arsitektur 
dimana jumlah maksimum tergantung jumlah memori fisik yang 
tersedia. Jumlah minimum frame ditentukan oleh arsitektur 
instruction-set. Bila terjadi page fault sebelum eksekusi instruksi 
selesai, instruksi harus di-restart. Sehingga tersedia frame yang 
cukup untuk membawa semua pageyang berbeda dimana 
sembarang instruksi dapat mengacu.
Thrashing adalah keadaan dimana proses sibuk untuk 
mengganti halaman yang dibutuhkan secara terus 
menerus.
Untuk membatasi efek thrashingdapat 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.
Virtual memory

Virtual memory

  • 1.
    Asnita Meydelia CK 130533608143 Aunur Rofik 130533608128 Rizky Dwi Hidayat 130533608123 Yopy Adiantoro 130533608125
  • 2.
    Memori virtual adalahteknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.
  • 3.
     Berkurangnya I/Oyang dibutuhkan (lalu lintas I/O menjadi rendah). Misal, untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.  Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori. Pesan-pesan error hanya dimasukkan jika terjadi error.  Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan memori.  Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user.
  • 4.
    Memori virtual dapatdilakukan melalui dua cara: 1. Permintaan pemberian halaman (demand paging). 2. Permintaan segmentasi (demand segmentation). Algoritma dari permintaan segmentasi lebih kompleks, karenanya jarang diimplementasikan.
  • 5.
    Demand paging adalahsistem paging dengan swapping. Page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat dan lebih banyak user yang menggunakan.
  • 6.
    Sebuah proses disimpandi memori sekunder (disk). Jika proses akan dieksekusi, maka dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping bila page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika acuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di memori tersebut akan dibawa ke memori dari backing store. Untuk membedakan antara page pada memori dengan page pada disk digunakan valid-invalid bit. Tabel page untuk page yang berada di memori diset “valid’, sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset “invalid” Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap ke sistem operasi. Karena status (register, kode kondisi, counter instruksi) dari proses ter-interrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang sama, kecuali page yang cocok sedang di memori dan sedang diakses.
  • 7.
  • 8.
    Diasumsikan ma adalahaccess time (10-200 ns) ke memori dan p adalah probabilitas terjadi page fault(0 ≤ p ≤1), maka effective access time didefinisikan sebagai : EAT = (1-p) x ma + p x page_fault-time Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault.
  • 9.
    Diketahui waktu pengaksesanmemori (ma) sebesar 100 ns. Waktu page fault sebesar 20 ms. Maka : EAT = (1 - p) x ma + p x page fault time = (1 - p) x 100 + p x 20000000 = 100 - 100p + 20000000p = 100 + 19.999.900p nanosecond
  • 10.
    Saat terjadi pagefault, maka harus diputuskan page frame di memori fisik yang harus diganti. Kinerja sistem akan baik jika page yang diganti dipilih yang tidak sering digunakan di masa datang. Jika page yang diganti sering digunakan, maka page itu akan dikembalikan secepatnya yang berarti terjadi page fault berulang kali. Banyaknya page fault menghasilkan banyak overhead.
  • 11.
    1. Algoritma penggantianpage acak 2. Algoritma penggantian page optimal 3. Algoritma penggantian page NRU 4. Algoritma penggantian page FIFO 5. Algoritma penggantian page modifikasi FIFO 6. Algoritma penggantian page LRU
  • 12.
    Page yg dikeluarkanuntuk memberi tempat ke yang baru ditentukan secara acak tanpa kriteria tertentu.
  • 13.
    Setiap page diberilabel untuk menandai berapa instruksi lagi baru dia digunakan. Page dengan label tertinggi (waktu dari sekarang sampai pemakaian berikutnya paling lama) yang akan dikeluarkan.
  • 14.
    Setiap page diberistatus bit R (referenced) dan M (modified). Bit bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika sebaliknya. Dari nilai desimalnya didapat 4 kelas: Page dengan kelas terkecillah yang akan dikeluarkan.
  • 15.
    Page yang palingdulu masuk ke memori dari semua page yang ada dikeluarkan.
  • 16.
    Mencari page yangberada di memori paling lama, tetapi juga tidak dipakai. Jika sebuah page dipakai (direferensi) bit R diset. Jika sistem menemukan bahwa bit R page yang paling lama ter-set, page tersebut tidak jadi dikeluarkan, tetapi bit R-nya di-reset.
  • 17.
    Yang dikeluarkan ialahpage yang sudah tidak terpakai dalam waktu paling lama.
  • 18.
     Alokasi frameberhubungan dengan mekanisme alokasi sejumlah memori bebas yang tetap diantara beberapa proses. Meskipun terdapat beberapa variasi pengalokasian frame bebas ke beberapa proses, tetapi strategi dasar jelas yaitu : proses user dialokasikan untuk sembarang frame bebas.  Jumlah minimum frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang tersedia. Jumlah minimum frame ditentukan oleh arsitektur instruction-set. Bila terjadi page fault sebelum eksekusi instruksi selesai, instruksi harus di-restart. Sehingga tersedia frame yang cukup untuk membawa semua pageyang berbeda dimana sembarang instruksi dapat mengacu.
  • 19.
    Thrashing adalah keadaandimana proses sibuk untuk mengganti halaman yang dibutuhkan secara terus menerus.
  • 20.
    Untuk membatasi efekthrashingdapat 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.