Pertemuan 8

  1. Konsep dasar virtual memory:

Manajemen memori pada intinya adalah menempatkan semua bagian proses yang akan dijalankan kedalam memori sebelum proses itu dijalankan. Untuk itu, semua bagian proses itu harus memiliki tempat sendiri di dalam memori fisik.

Tetapi tidak semua bagian dari proses itu akan dijalankan, misalnya:

•      Pernyataan atau pilihan yang hanya akan dieksekusi pada kondisi tertentu. Contohnya adalah: pesan-pesan error yang hanya muncul bila terjadi kesalahan saat program dijalankan.

•      Fungsi-fungsi yang jarang digunakan.

•      Pengalokasian memori yang lebih besar dari yang dibutuhkan. Contoh: array , list dan tabel.

Pada memori berkapasitas besar, hal-hal ini tidak akan menjadi masalah. Akan tetapi, pada memori yang sangat terbatas, hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik. Sebagai solusi dari masalah-masalah ini digunakanlah konsep memori virtual.

Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari user 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.

•   Space 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 user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user .

Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik ( main memory ) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik ( swap-out ) dan diganti ( swap-in ) oleh bagian disk yang diperlukan itu.

Memori virtual diimplementasikan dalam sistem multiprogramming . Misalnya: 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. Dengan demikian, sistem multiprogramming menjadi lebih efisien.

Memori virtual dapat dilakukan melalui dua cara:

•  Permintaan pemberian halaman ( demand paging )

•  Permintaan segmentasi ( demand segmentation ). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karena itu jarang diimplementasikan.

Demand Paging

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 page 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 user

Permasalahan pada Demand Paging

Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada page yang dibutuhkan, yaitu: Page ada dan sudah berada di memori. Statusnya valid (“1”). Page ada tetapi masih berada di disk belum diberada di memori (harus menunggu sampai dimasukkan). Statusnya invalid (“0”). Page tidak ada, baik di memori maupun di disk ( invalid reference –> abort ).

  1. 2. Manajemen memory di Linux dan di Widows:

Di Linux:

Seperti pada solaris 2, linux juga menggunakan variasi dari algoritma clock. Thread dari kernel linux (kswapd) akan dijalankan secara periodik (atau dipanggil ketika penggunaan memori sudah berlebihan). Jika jumlah halaman yang bebas lebih sedikit dari batas atas halaman bebas, maka thread tersebut akan berusaha untuk membebaskan tiga halaman. Jika lebih sedikit dari batas bawah halaman bebas, thread tersebut akan berusaha untuk membebaskan enam halaman dan tidur untuk beberapa saat sebelum berjalan lagi. Saat dia berjalan, akan memeriksa mem_map, daftar dari semua halaman yang terdapat di memori. Setiap halaman mempunyai byte umur yang diinisialisasikan ke tiga. Setiap kali halaman ini diakses, maka umur ini akan ditambahkan (hingga maksimum 20), setiap kali kswapd memeriksa halaman ini, maka umur akan dikurangi. Jika umur dari sebuah halaman sudah mencapai 0 maka dia bisa ditukar. Ketika kswapd berusaha membebaskan halaman, dia pertama akan membebaskan halaman dari cache, jika gagal dia akan mengurangi cache sistem berkas, dan jika semua cara sudah gagal, maka dia akan menghentikan sebuah proses. Alokasi memori pada linux menggunakan dua buah alokasi yang utama, yaitu algoritma buddy dan slab. Untuk algoritma buddy, setiap rutin pelaksanaan alokasi ini dipanggil, dia memeriksa blok memori berikutnya, jika ditemukan dia dialokasikan, jika tidak maka daftar tingkat berikutnya akan d iperiksa. Jika ada blok bebas, maka akan dibagi jadi dua, yang satu dialokasikan dan yang lain dipindahkan ke daftar yang di bawahnya.

Di Windows:

Windows NT

Windows NT mengimplementasikan memori virtual dengan menggunakan permintaan halaman melalui clustering. Clustering menanganani kesalahan halaman dengan menambahkan tidak hanya halaman yang terkena kesalahan, tetapi juga halaman-halaman yang berada disekitarnya. Saat proses pertama dibuat, dia diberikan working set minimum yaitu jumlah minimum halaman yang dijamin akan dimiliki oleh proses tersebut dalam memori . Jika memori yang cukup tersedia, proses dapat diberikan halaman sampai sebanyak working set maximum. Manager memori virtual akan menyimpan daftar dari halaman frame yang bebas. Terdapat juga sebuah nilai batasan yang diasosiasikan dengan daftar ini untuk mengindikasikan apakah memori yang tersedia masih mencukupi. Jika proses tersebut sudah sampai pada working set maximum-nya dan terjadi kesalahan halaman, maka dia harus memilih halaman pengganti dengan aturan penggantian halaman lokal.

Saat jumlah memori bebas jatuh di bawah nilai batasan, manager memori virtual menggunakan sebuah taktik yang dikenal sebagai automatic working set trimming untuk mengembalikan nilai tersebut di atas batasan. Hal ini bekerja dengan mengevaluasi jumlah halaman yang dialokasikan kepada proses. Jika proses telah mendapat alokasi halaman lebih besar daripada working set minimum-nya, manager memori virtual akan mengurangi jumlah halamannya sampai working-set minimum. Jika memori bebas sudah tersedia, proses yang bekerja pada working set minimum dapat mendapatkan halaman tambahan.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s