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