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

Kirim email ke