virtual memory

21
Asnita Meydelia C K 130533608143 Aunur Rofik 130533608128 Rizky Dwi Hidayat 130533608123 Yopy Adiantoro 130533608125

Upload: asnita-meydelia-c-k

Post on 21-Jul-2015

55 views

Category:

Education


0 download

TRANSCRIPT

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 denganswapping. Page diletakkan di memori hanya jikadiperlukan. Hal ini menyebabkan kebutuhan I/Olebih rendah, kebutuhan memori lebih rendah,respon lebih cepat dan lebih banyak user yangmenggunakan.

Sebuah proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, makadipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping bilapage tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke memorikecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jikaacuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di memoritersebut 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 pageuntuk page yang tidak sedang di memori (ada pada disk) diset “invalid”Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap kesistem operasi. Karena status (register, kode kondisi, counter instruksi) dari proses ter-interrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan statusyang 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 padalah 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 instruksilagi baru dia digunakan. Page dengan label tertinggi(waktu dari sekarang sampai pemakaian berikutnya palinglama) 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 yangpaling lama ter-set, page tersebut tidak jadidikeluarkan, tetapi bit R-nya di-reset.

Yang dikeluarkan ialah page yang sudah tidak terpakai dalam waktu paling lama.

Alokasi frame berhubungan dengan mekanisme alokasi sejumlahmemori bebas yang tetap diantara beberapa proses. Meskipunterdapat beberapa variasi pengalokasian frame bebas ke beberapaproses, tetapi strategi dasar jelas yaitu : proses user dialokasikanuntuk sembarang frame bebas.

Jumlah minimum frame per proses ditentukan oleh arsitekturdimana jumlah maksimum tergantung jumlah memori fisik yangtersedia. Jumlah minimum frame ditentukan oleh arsitekturinstruction-set. Bila terjadi page fault sebelum eksekusi instruksiselesai, instruksi harus di-restart. Sehingga tersedia frame yangcukup untuk membawa semua pageyang berbeda dimanasembarang instruksi dapat mengacu.

Thrashing adalah keadaan dimana proses sibuk untukmengganti halaman yang dibutuhkan secara terusmenerus.

Untuk membatasi efek thrashingdapat menggunakanalgoritma penggantian lokal. Dengan algoritma penggantianlokal, jika terjadi thrashing, proses tersebut dapatmenggambil bingkai dari proses lain dan menyebabkanproses tersebut tidak mengalami thrashing. Salah satucara untuk menghindari thrashing adalah dengan caramenyediakan jumlah bingkai yang pas sesuai dengankebutuhan proses tersebut. Salah satu cara untukmengetahui jumlah bingkai yang diperlukan pada suatuproses adalah dengan strategi working set.