On Thursday 28 June 2007 18:36, Uno Tursadi wrote:
> Sedikit menambahkan, saya pernah experiment, di windows bukan di linux.
>
> Membuat variable pointer dengan ukuran yang sangat besar. Missal
> int *i;
> i = new int [100000000];
>
> satu integer berukuran 4 bytes jadi variable i kalo di isi semua akan
> menghabiskan 400 MBytes.
>
> Ternyata 400 MB itu diambil dari kapasitas hard disk. Ukuran hard disknya
> berkurang sebanyak 400Mbytes.
>
> Artinya pada saat kita membuat sebuah variable pointer. Variable tersebut
> akan mengambil jatah byte yang ada di hard disk.
> Dan setiap kali aplikasi menulis atau membaca variable tersebut, akan
> mengakses data hard disk.
>
> Harusnya jika sebuah aplikasi mengambil dan menulis ke hard disk akan lebih
> lambat dibanding ke memory langsung.
> Artinya, pointer lebih lambat dibanding memori langsung.
>
> Bener gak???
> Gak tau kalo di linux soalnya belum pernah nyoba.
>
> CMIIW

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...

TRIVIA: Prosesor Intel baru memiliki fasilitas bagi OS untuk melakukan virtual 
memory addressing pada prosesor 80286, tetapi fasilitas tersebut masih sangat 
terbatas dan kurang memenuhi tuntutan bagi OS modern, baru pada 80386 
fasilitas virtual addressing mulai "usable"...

-- 
Danny Kurniawan <[EMAIL PROTECTED]>
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM/E/IT d+() s+:+ a- C++>+++$ UL+++(++)>++++ P!(+++) L+++>++++>$ E-- W++>$
N o-- K- w--(+++) O++@ M@ V? PS PE-@ Y+ PGP@ t++ 5+@ X+++(++) R tv+ b
+++(++) DI? D++@ G+>++ e++ h- r++ y z- 
------END GEEK CODE BLOCK------

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke