07 Oktober 2010

Konsep Virtual Memori pada Windows dan Linux

Konsep Virtual Memori Pada Windows

Pada komputer kita, jumlah memory yang tersedia adalah jumlah antara memory fisik/RAM dengan virtual memory. Virtual memory adalah sebuah porsi pada hard disk yang di-set menyerupai RAM oleh system. Virtual memory merupakan ruang penyimpanan sementara yang digunakan untuk menjalankan program yang membutuhkan memory yang lebih besar dari memory fisik.
Virtual memory berupa file yang bernama pagefile.sys yang di-set hidden oleh Windows. File ini disebut paging file, yang digunakan untuk menampung program dan data yang tidak cukup di memory fisik. Virtual memory lebih lambat daripada memory fisik, dan penggunaan yang terlalu banyak dapat menurunkan kinerja sistem. Sehubungan dengan itu, windows memindahkan proses yang tidak terlalu sering ke virtual memory, dan membiarkan proses yang sering digunakan di memory fisik. Jadi ini sangat efisien.
Ukuran dari virtual memory dapat kita rubah, Windows merekomendasikan ukuran minimal dari vitual memory adalah 1.5 kali dari memory fisik kita. Jika anda memiliki beberapa harddisk, misal hardisk pertama adalah C: dan harddisk kedua adalah D: dan anda jarang menggunakan drive D:, anda dapat memindahkan virtual memory ke drive D:. Memindahkan virtual memory ke harddisk yang jarang digunakan akan sedikit meningkatkan performa. Alasannya adalah, pada harddisk pertama biasanya head dari harddisk sangat sibuk untuk membuka program, dokumen, menyimpan file dan masih banyak lagi. Tetapi ingat, cara ini tidak akan berguna bila drivenya terletak pada harddisk yang sama atau dengan kata lain sebuah partisi.
Dalam proses ini seluruh program akan ditempatkan 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.

Konsep Virtual Memory:
• Pemisahan antara “user logical memory” (virtual) dengan “physical memory”.
• Logical address space (program) dapat lebih besar dari alokasi memori fisik yang diberikan.
• Hanya sebagian kecil dari program yang harus berada di memori untuk eksekusi.
• Terdapat mekanisme untuk melakukan alokasi dan dealokasi page (swapped out dan in) sesuai dengan kebutuhan (referensi program).
• Terdapat bagian dari disk menyimpan sisa page (program) yang sedang dijalankan di memori.
Virtual memory dapat diimplementasikan melalui :
• Demand paging, menerapkan konsep pemberian halaman pada proses
Demand segmentation, lebih kompleks diterapkan ukuran segmen yang bervariasi.

Konsep Virtual Memori Pada Linux

Memori

Organisasi dan manajemen memori sangat mempengaruhi kinerja komputer. Manajemen memori melakukan tugas penting dan kompleks berkaitan dengan:
• Memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama diantara sejumlah proses yang aktif. Agar dapat memanfaatkan pemroses dan fasilitas masukan/keluaran secara efisien, maka diinginkan memori yang dapat menampung sebanyak mungkin proses.
• Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di system komputer.
Linux memanfaatkan virtual memori untuk mendukung kinerja sistem. Sebagai sistem operasi multiprogramming, virtual memori dapat meningkatkan efisisensi sistem. Sambil proses menunggu bagiannya diswap masuk ke memori, menunggu selesainya operasi masukan/keluaran dan proses diblocked. Jatah waktu pemroses dapat diberikan ke proses-proses lain.

Manajemen memori Linux menyediakan:
1. Ruang alamat besar
Ruang alamat dapat lebih besar dibanding memori fisik yang tersedia
2. Proteksi
Tiap proses di sistem mempunyai ruang alamat maya tersendiri. Ruang ruang alamat maya itu sepenuhnya terpisah. Proses yang berjalan di satu aplikasi tidak dapat mengganggu proses lainnya.
3. Pemetaan memori
Dilakukan pemetaan antara memori maya ke memori fisik yang tersedia.
4. Memori maya bersama (shared virtual memory)
Memori maya bersama ini untuk menghemat ruang memori, seperti pustaka dinamis bagi beberapa proses.
Karena memori fisik lebih sedikit dibanding memori maya, maka sistem hanya memuatkan page-page maya yang saat itu sedang digunakan proses. Linux memuatkan page maya begitu diperlukan. Teknik ini disebut dengan demand paging. Saat pemroses berusaha mengakses alamat maya yang tidak di memori fisik, pemroses tidak dapat menemukan isian di tabel page maya. Pemroses menerbitkan page fault.
• Jika alamat maya yang dituju tak absah (yaitu proses berusaha mengakses alamat maya yang tidak dibolehkan), maka sistem operasi mengakhiri proses itu untuk memproteksi proses-proses lain.
• Jika alamat maya yang dituju absah tapi tidak sedang di memori fisik, maka sistem operasi harus membawa page ke memori dari disk. Pengaksesan disk memerlukan waktu lama. Jika terdapat proses lain yang dapat dijalankan, maka sistem operasi memilih proses lain untuk dijalankan. Proses dimulai kembali di instruksi dimana page fault terjadi. Pemroses dapat memetakan memori maya ke memori fisik saat dilakukan pengaksesan memori maya, sehingga proses terus berjalan. Jika tidak terdapat memori bebas, sistem operasi harus membuat ruang bagi page yang akan dimasukkan dengan membuang page lain dari memori.
• Jika page telah dimodifikasi (dirty-page), sistem operasi harus menjaga isi page. Ketika dipindahkan dari memori, disimpan di ruang khusus (swap space).
• Jika page yang dibuang berupa page belum ditulisi maka page tidak perlu dituliskan ke disk.
Linux menempatkan proses pada memori yang dibagi menjadi sejumlah partisi. Pemartisian ini bersifat dinamis maka jumlah, lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. Proses yang akan masuk ke memori segera dibuatkan partisi sesuai kebutuhan. Linux menciptakan ruang disk tempat swap terlebih dahulu, saat proses diciptakan, ruang swap pada disk dialokasikan. Ketika proses harus dikeluarkan dari memori utama, proses selalu ditempatkan ke ruang yang telah dialokasikan, bukan ke tempat tempat berbeda setiap kali terjadi swap-out. Ketika proses berakhir, ruang swap pada disk didealokasikan.

0 komentar:

Posting Komentar