9.1 Tujuan
  • Untuk menjelaskan keuntungan dari sistem memori virtual
  • Untuk menjelaskan konsep dari demand paging, algoritma penggantian halaman, dan juga alokasi page frame
  • Untuk mendiskusikan prinsip dari model working set
9.1 Latar Belakang
Selama bertahun-tahun, 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.
Pada kenyataannya tidak semua bagian dari program tersebut akan diproses, misalnya:
  • 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).
Setiap program yang dijalankan harus berada di memori. Memori merupakan suatu tempat penyimpanan utama (primary storage) yang bersifat sementara (volatile). Ukuran memori yang terbatas dapat menimbulkan masalah bagaimana menempatkan program yang berukuran yang lebih besar dari ukuran memori fisik (memori utama) dan masalah penerapan multiprogramming yang membutuhkan tempat yang lebih besar di memori.
Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. 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.
Jadi memory virtual adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep memori maya pertama kali dikemukakan Fotheringham pada 1961 untuk sistem komputer Atlas di Universitas Manchester, Inggris.
Gagasan memori virtual adalah ukuran gabungan program, data, dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi dapat menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di disk. Begitu bagian di disk diperlukan maka bagian di memori yang tidak diperlukan disingkirkan diganti bagian di disk yang diperlukan itu.
Contoh penggunaannya adalah program 10 Megabyte dapat berjalan di mesin 2 Megabyte, yaitu memilih bagian proses sebesar 2 Megabyte secara hati-hati dan ditaruh di memori. Bagian-bagian proses di-swap antara disk dan memori saat diperlukan secara otomatis oleh sistem operasi. Memori virtual juga dapat digunakan dalam multiprogramming seperti 10 program 2 Mb dapat berjalan di memori 4 Mb. Tiap program dialokasikan 256 Kilobyte dan bagian-bagian proses di-swap masuk keluar memori begitu diperlukan. Saat proses menunggu bagiannya diswap masuk ke memori, menunggu selesainya operasi masukan/keluaran, proses di-block, jatah layanan pemroses diberikan ke proses lain.
Memori virtual tidak mengubah kode program. Kecepatan eksekusi melambat dipengaruhi waktu tunda pengambilan bagian-bagian proses di memori sekunder saat proses berjalan. Prinsip yang berlaku kecepatan maksimum eksekusi proses di memori virtual dapat sama tapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa memori virtual.
Gambar 9.1. Memori Virtual



Pada gambar diatas ditunjukkan ruang sebuah memori virtual yang dibagi menjadi bagian-bagian yang sama dan diidentifikasikan dengan nomor virtual pages. Memori fisik dibagi menjadi page frames yang berukuran sama dan diidentifikasikan dengan nomor page frames. Bingkai (frame) menyimpan data dari halaman. Atau memori virtual memetakan nomor virtual pages ke nomor page frames. Mapping (pemetaan) menyebabkan halaman virtual hanya dapat mempunyai satu lokasi alamat fisik.
Dalam sistem paging, jika sebuah ruang diperlukan untuk proses dan halaman yang bersangkutan tidak sedang digunakan, maka halaman dari proses akan mengalami paged out (disimpan ke dalam disk) atau swap out, memori akan kosong untuk halaman aktif yang lain. Halaman yang dipindah dari disk ke memori ketika diperlukan dinamakan paged in (dikembalikan ke memori) atau swap in. Ketika sebuah item dapat mengalami paging, maka item tersebut termasuk dalam item yang menempati ruang virtual, yang diakses dengan alamat virtual dan ruangan yang ada dialokasikan untuk informasi pemetaan. Sistem operasi mengalokasikan alamat dari item tersebut hanya ketika item tersebut mengalami paging in.
Keuntungan yang diperoleh dari penyimpanan hanya sebagian program saja pada memori fisik adalah:
  • Berkurangnya proses M/K yang dibutuhkan (lalu lintas M/K menjadi rendah)
  • Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan
  • Meningkatnya respon karena menurunnya beban M/K dan memori
  • Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Teknik memori virtual akan memudahkan pekerjaan seorang programmer ketika besar data dan programnya melampaui kapasitas memori utama. Sebuah multiprogramming dapat mengimplementasikan teknik memori virtual sehingga sistem multiprogramming menjadi lebih efisien. Contohnya: 10 program dengan ukuran 2 MB dapat berjalan di memori berkapasitas 4 MB. Tiap program dialokasikan 256 Kbyte dan bagian – bagian proses (swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan.
Prinsip dari memori virtual adalah bahwa “Kecepatan maksimum ekseskusi proses di memori virtual dapat sama, tetapi tidak akan pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual”.
Memori virtual dapat diimplementasikan dengan tiga cara:
  1. Demand Paging yaitu dengan menerapkan konsep pemberian halaman pada proses
  2. Demand segmentation, lebih kompleks diterapkan ukuran segmen yang bervariasi.
  3. Kombinasi paging dan segmentation
Gambar 9.2. Virtual address space


Hole / large bank space yang terdapat pada gambar di atas dapat digunakan jika ruang logika stack dan heap bertambah merupakan konsep dari alokasi dynamic memory. Virtual address space yang mempunyai hole disebut sparse address space
Gambar 9.3. Shared library dengan menggunakan memori virtual

Rujukan
Dr. Bambang Hariyanto. 2006. Sistem Operasi. Revisi Keempat. Informatika.
[Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley & Sons.
[Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997. Operating Systems Design and Implementation. Second Edition. Prentice-Hall.
[WEBbebasvlsm2006] Masyarakat Digital Gotong Royong .2006. Pengantar Sistem Operasi Komputer http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/index.html .
[WEBAmirSch2000] Yair Amir dan Theo Schlossnagle. 2000. Operating Systems 00.418: Memory Management http://www.cs.jhu.edu/ ~yairamir/ cs418/ os5/ .
[WEBCACMF1961] John Fotheringham. “ Dynamic Storage Allocation in the Atlas Computer Including an Automatic Use of a Backing Store http://www.eecs.harvard.edu/ cs261/ papers/ frother61.pdf ”. Communications of the ACM . 4. 10. October 1961.
[WEBFunkhouser2002] Thomas Funkhouser. 2002. Computer Science 217 Introduction to Programming Systems: Memory Paging http://www.cs.princeton.edu/ courses/ archive / spring02/ cs217/ lectures/ paging.pdf .
[WEBGottlieb2000] Allan Gottlieb. 2000. Operating Systems: Page tables http://allan.ultra.nyu.edu/ ~gottlieb/ courses/ 1999-00-spring/ os/ lecture-11.html .
[WEBHP1997] Hewlett-Packard Company. 1997. HP-UX Memory Management Overview of Demand Paging http://docs.hp.com/en/5965-4641/ch01s10.html .
[WEBJupiter2004] Jupitermedia Corporation. 2004. Virtual Memory http://www.webopedia.com/ TERM/ v/ virtual_memory.html .
[WEBOCWEmer2005] Joel Emer dan Massachusetts Institute of Technology. 2005. OCW Computer System Architecture Fall 2005 Virtual Memory Basics http://ocw.mit.edu/ NR/ rdonlyres/ Electrical -Engineering -and -Computer -Science/ 6 -823Computer -System -ArchitectureSpring2002/ C63EC0D0 -0499 -474F -BCDA -A6868A6827C4/ 0/ lecture09.pdf .
[WEBRegehr2002] John Regehr dan University of Utah. 2002. CS 5460 Operating Systems Demand Halamand Virtual Memory http://www.cs.utah.edu/ classes/ cs5460-regehr/ lecs/ demand_paging.pdf .
[WEBSolomon2004] Marvin Solomon. 2004. CS 537 Introduction to Operating Systems: Lecture Notes Part 7 http://www.cs.wisc.edu/ ~solomon/ cs537/ paging.html .
[WEBKUSJOKO2004] Kuspriyanto dan Putut Joko Wibowo. 2004. Desain Memori Virtual Pada Mikroarsitektur PowerPC, MIPS, Dan X86 http://www.geocities.com/transmisi_eeundip/kuspriyanto.pdf .