Selasa, 18 November 2014

Virtual Memori

Tugas yang kami kerjakan secara berkelompok ini berbentuk sebuah makalah dengan materi "Virtual Memori", berikut isi dari makalah kami:

v Latar Belakang
Pelaksanaan manajemen memori pada intinya adalah dengan menempatkan semua bagian proses yang akan dijalankan ke dalam memori sebelum proses dapat mulai dieksekusi. Dengan demikian semua bagian proses tersebut harus memiliki alokasi sendiri di dalam memori fisik.

Sebagian besar algoritma manajemen memori memerlukan satu kebutuhan dasar
yaitu instruksi yang akan dieksekusi harus berada di memori fisik. Pada beberapa
kasus, keseluruhan program tidak diperlukan/diproses. Misalnya :

  • Program mempunyai kode untuk menangani kondisi error yang tidak biasa.  Karena error-error ini jarang terjadi, kode ini hampir tidak pernah dieksekusi
  • Array, list dan tabel dialokasikan lebih dari kapasitas memori yang diperlukan
  • Pilihan dan gambaran program jarang digunakan
  • Ada pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentu dipenuhi
  • Terdapat fungsi-fungsi yang jarang digunakan
  • Pengalokasian memori yang lebih besar dari yang sebenarnya dibutuhkan.

Pada memori berkapasitas besar, hal-hal ini tidak akan menjadi masalah. Namun pada memori dengan kapasitas yang sangat terbatas, hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik (memori utama).



v Memory Virtual
Pada kasus dimana keseluruhan program dibutuhkan, mungkin tidak semua
diperlukan pada saat yang sama. Kemampuan mengeksekusi program hanya pada
beberapa bagian dari memori mempunyai beberapa keuntungan yaitu :
                    Program tidak terbatas jumlah memori fisik yang tersedia sehingga user dapat
menulis program untuk ruang alamat virtual yang sangat besar yang berarti menyederhanakan programming task.
  • Karena setiap program user dapat menggunakan memori fisik yang lebih kecil, pada waktu yang sama dapat menjalankan lebih banyak program.
                    I/O yang lebih sedikit diperlukan untuk load atau swap program user ke memori,
sehingga setiap program user dapat berjalan lebih cepat.

     Memori virtual adalah teknik yang memisahkan memori logika/logis user dari
memori fisik. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik). Teknik ini menempatkan keseluruhan program di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan kebutuhan. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari ke disk sekunder.

            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.



v Demand Paging

            Sistem Paging mengimplentasikan ruang alamat besar pada memori kecil menggunakan index register, base register, dan segment register, dan lain-lain. Pemakai seolah mempunyai ruang memori sangat besar tanpa mengelola overlay. Beberapa istilah pada sistem paging adalah virtual address, real address, page, page frame, page fault, MMU.

            Virtual Address adalah alamat yang dihasilkan perhitungan menggunakan index register, base register, segment register, dan sebagainya. Ruang alamat yang dibentuk virtual address adalah disebut virtual address space dilambangkan dengan V. Jumlah alamat pada V disimbolkan dengan │V│. Virtual address ini yang diacu pada proses yang running.

            Real Address adalah alamat di memori utama fisik. Ruang alamat yang dibentuk real address disebut real address space dilambangkan dengan R. Jumlah alamat pada R disimbolkan dengan │R│. Pada implementasi sistem memori virtual, normalnya │V│>>│R│.

            Meski pengacuan proses dilakukan berdasarkan memori virtual, proses sesungguhnya berjalan di memori nyata. Virtual address harus dipetakan menjadi real address saat proses dieksekusi. Pemetaan harus dilakukan dengan sangat cepat atau kinerja komputer akan menurun drastis.
Sistem komputer akan menerjemahkan memori virtual menjadi alamat fisik. Bagian yang bertugas untuk memetakan adalah MMU.

            Page adalah unit terkecil virtual address space. Ruang memori virtual proses merupakan kelipatan page yang berukuran sama.

            Page frame adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi sejumlah unit berukuran tetap disebut page frame. Page frame sering disingkat frame.

            Page fault adalah exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya, page fault sering disingkat fault.
Memory Management Unit (mmu) adalah chip atau kumpulan chip yang memetakan virtual address ke real address.


            Pada komputer tanpa memori virtual, alamat langsung diletakkan ke bus dan menyebabkan word memori fisik alamat itu dibaca atau ditulis.

            Pada komputer dengan memori virtual, alamat tidak diletakkan ke bus secara langsung tapi lewat MMU yang kemudian memetakan virtual address ke alamat memori fisik.


            Demand Paging halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. Sistem Demand Paging pada prinsipnya hampir sama dengan sistem permintaan halaman yang menggunakan swapping, hanya saja pada sistem demand paging, halaman tidak akan dibawa ke dalam memori fisik sampai ia benar-benar diperlukan. Oleh sebab itu dibutuhkan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan. Daripada melakukan swapping, keseluruhan proses ke dalam memori utama, digunakanlah yang disebut lazy swapper yaitu tidak pernah menukar sebuah halaman ke dalam memori utama kecuali halaman tersebut diperlukan.
            Demand   paging   memberikan   efek  yang   signifikan   dalam  kinerja   sistem computer.   Diasumsikan ma adalah access time 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.  Page fault menyebabkan terjadi
1.  Trap ke sistem operasi.
2.  Menyimpan register dan status proses.
3.  Menentukan interrupt adalah page fau.t
4.  Memeriksa page acuan legal atau tidak dan menentukan lokasi page pada disk.
5.  Membaca dari disk ke frame bebas :
a. Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
b. Menunggu perangkat mencari dan / atau waktu latency.
c. Memulai transfer dari page ke frame bebas.
6.  Sementara menunggu, alokasikan CPU untuk user lain.
7.  Interrupt dari disk (melengkapi I/O).
8.  Menyimpan register dan status process user lain.
9.  Menentukan interrupt dari disk.
10. Memperbaiki tabel page dan tabel lain untuk menunjukkan page yang dimaksud sudah di memori.
11. Menunggu CPU dialokasikan untuk proses ini kembali.
12. Menyimpan   kembali  register,   status   proses   dan   tabel   page   baru,   kemudian melanjutkan kembali instruksi yang di-interupsi.



v  PAGE REPLACEMENT
Page replacement diperlukan pada situasi dimana proses dieksekusi perlu frame bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang sedang tidak digunakan dan membebaskannya. Untuk membebaskanframe dengan cara menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang menunjukkan page tidak lagi di memori.

Langkah-langkah untukpage fault yang memerlukan page replacement seperti
Gambar 8-6 adalah sebagai berikut :
1. Carilah lokasi pageyang diharapkan pada disk.
2. Carilah framekosong dg cara :
• Bila ada frame kosong, gunakan.
• Bila tidak ada, gunakan algoritma page replacement untuk menyeleksiframe
yang akan menjadi korban.
• Simpan page korban ke disk, ubah tabel page.
3. Baca page yang diinginkan ke frame kosong yang baru, ubah tabel page.
4. Mulai kembali proses user.


Algoritma Page Replacement


v  ALOKASI FRAME
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 :
  1. proses user dialokasikan untuk sembarang framebebas.
  2. Jumlah minimum frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang tersedia.
  3. Jumlah minimim 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 semuapage yang berbeda dimana sembarang instruksi dapat mengacu. Misalnya mikrokomputer menggunakan memori 128K yang dikomposisikan dengan page ukuran 1K, maka terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka 93 frame sisa digunakan program user. Bila suatu program menyebabkan page fault sebanyak 93 kali, maka menempati 93 frame bebas tersebut. Jika terjadi page fault ke 94, dari 93 frame yang terisi harus dipilih salah satu untuk diganti yang baru. Bila program selesai, 93 frame tersebut dibebaskan kembali.

Terdapat 2 bentuk algoritma alokasi yaitu equal allocation dan proportional allocation. Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frame yang sama (m/n frame). Pada proportional allocation setiap porses dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual memori untuk proses pi adalah si dan total jumlah frame yang tersedia m,  maka frame ke ai dapat dialokasikan ke proses pi sama dengan :
Si = besarnya proses Pi
S = Si
m = jumlah total bingkai
ai = alokasi bingkai untuk Pi ((Si/S ) x m)
m = 64
S1 = 10
S2 = 127
a1 = (10/137) x 64 = 5 bingkai
a2 = (127/137) x 64 = 59 bingkai
Selain itu terdapat algoritma alokasi berprioritas yang menggunakan skemaproporsional dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai nomor prioritas terendah.
Global replacement
mengijinkan suatu proses untuk menyeleksi suatu frame yang akan dipindah dari sejumlah frame, meskipun frame tersebut sedang dialokasikan ke proses yang lain. Pada Local Replacement, jumlah frame yang dialokasikan untuk proses tidak berubah. Setiap proses dapat memilih dari frame-frameyang dialokasikan untuknya. Permasalahan pada global replacement adalah proses tidak dapat mengontrol rata-rata page fault. Sejumlah page pada memori untuk sebuah proses tidak hanya tergantung pada perilaku paging untuk proses tersebut, tetapi juga perilaku paging untuk proses yang lain. Bagaimanapun, karena algoritma global replacement menghasilkan through put yang lebih besar, metode ini sering digunakan.


v TRASHING
Misalnya sembarang proses tidak mempunyai frame yang cukup. Meskipun
secara teknis dapat mengurangi jumlah frame yang dialokasikan sampai minimum,
terdapat sejumlah page yang sedang aktif digunakan. Jika suatu proses tidak memiliki
jumlah frame yang cukup, maka sering terjadi page fault. Sehingga harus mengganti
beberapa page. Tetapi karena semua page sedang digunakan, harus mengganti page
yang tidak digunakan lagi kemudian. Konsekuensinya, sering terjadi page fault lagi dan
lagi. Proses berlanjut page fault, mengganti page untuk page fault dan seterusnya.
Kegiatan aktifitas paging yang tinggi disebut thrashing. Sebuah proses
mengalami thrashing jika menghabiskan lebih banyak waktu untuk paging daripada
eksekusi. Efek thrashing dapat dibatasi dengan menggunakan algoritma local (priority)
replacement.


Daftar Pustaka

Tidak ada komentar:

Posting Komentar