Untuk lebih detail, virtual memory digunakan oleh operating system untuk mengatur penggunaan memory di tiap-tiap process. Setiap process/application menggunakan static address untuk memulai programnya (di luar dynamic library). Supaya setiap process bisa menggunakan lokasi yang sama, maka OS menggunakan virtual memory untuk memetakan memory dari tiap process ke lokasi yang berbeda di physical memory.
Setiap processor memiliki feature yang berbeda-beda untuk menangani MMU (Memory Management Unit). Tapi biasanya mereka punya support ke access level. OS bisa menentukan apakah suatu virtual memory bisa ditulis, dibaca, atau bisa dieksekusi. Selain itu, virtual memory ini bisa memastikan bahwa tiap process tidak bisa mengakses memory di process lainnya, karena virtual memory-nya memang menunjuk ke physical memory yang berbeda-beda. Virtual memory dibagi-bagi menjadi "page" memory. Biasanya besarnya 4KB, dan setiap process memiliki page-map yang di-update setiap kali terjadi task switching berdasarkan process mana yang berjalan. Mengenai hard-disk memory (atau swap file), ini biasanya terjadi apabila jumlah memory yang dibutuhkan oleh semua aplikasi melebihi jumlah physical memory yang ada. Untuk itu OS menggunakan swap file untuk memindahkan isi dari physical memory yang "jarang" digunakan (banyak metode, salah-satunya LRU-Least Recently Used), ke swap file, dan physical memory tadi di-"free". Bagaimana bila process yang menggunakan memory (yang baru dipindah ke swap file tadi) ingin meng-akses memory-nya? Berhubung virtual memory nya sekarang tidak mengakses physical memory yang valid, maka process akan mengeluarkan "page-miss" exception. Di sini OS akan tahu bahwa memory yang di "simpan" di swap file tadi harus dikembalikan ke physical memory, dan virtual memory dari process tadi harus dibetulkan. Proses ini yang makan waktu banyak. Oleh karena itu, alokasi memory dari heap tadi tidak begitu bermasalah untuk RAM yang besar, tapi untuk RAM yang kecil, bisa menciptakan bottle-neck yang besar. Hope it clarifies things.... KOkon. On 7/3/07, Danny Kurniawan <[EMAIL PROTECTED]> wrote:
Seharusnya baik di Windows maupun di Linux berlaku hal yang sama, bedanya, di Linux anda tidak akan bisa melihat pengurangan space harddisk anda, karena swap di Linux diletakkan di partisi yang berbeda atau single block file... Mengapa space harddisk yang berkurang... saya jelaskan sedikit mengenai manajemen memory di OS... pada dasarnya setiap OS modern (Windows, Linux, MacOS, Unix... etc) melakukan manajemen memory dengan membuat yang dinamakan "Virtual Memory"... pada intinya virtual memory adalah mekanisme "mapping" address memory yang ada menuju ke device apapun... biasanya OS menggunakan 2 macam memory, yaitu physical memory (RAM) dan hard memory (harddisk), jika OS hanya menggunakan physical memory saja, maka OS tidak akan cukup untuk memenuhi kebutuhan memory bagi beberapa aplikasi yang sedang multitasking... sedikit gambaran kira2 mengenai virtual memory dan mapping-nya: Virtual Address Physical Address ------------------------------------------- 0000000-0001000 -> RAM Addr 00010-01010 0001001-0002000 -> RAM Addr 05000-06001 0002001-0003000 -> Harddrive Addr 0000000-0001000 0003001-0004000 -> RAM Addr 01011-02012 0004001-0005000 -> Harddrive Addr 0001001-0002000 dst. Nah... seperti anda lihat, bahwa dalam Physical Address, letak memory bisa dimana saja dan acak... Sedangkan bagi aplikasi, mereka tidak perlu mengetahui dimana sebenarnya data yang disimpan diletakkan secara fisiknya... Jadi tugas OS lah yang melakukan manajemen baik melakukan pemindahan/relocation maupun melakukan mapping, dan menandai memory kosong atau alokasi memory secara fisik...
-- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis