Memori merupakan bagian dari komputer yang berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. Sebagian besar komputer memiliki hirarki memori yang terdiri atas tiga level, yaitu:
Register di CPU, berada di level teratas. Informasi yang berada di register dapat diakses dalam satu clock cycle CPU.
Primary Memory (executable memory), berada di level tengah. Contohnya, RAM. Primary Memory diukur dengan satu byte dalam satu waktu, secara relatif dapat diakses dengan cepat, dan bersifat volatile (informasi bisa hilang ketika komputer dimatikan). CPU mengakses memori ini dengan instruksi single load dan store dalam beberapa clock cycle.
Secondary Memory, berada di level bawah. Contohnya, disk atau tape. Secondary Memory diukur sebagai kumpulan dari bytes (block of bytes), waktu aksesnya lambat, dan bersifat non-volatile (informasi tetap tersimpan ketika komputer dimatikan). Memori ini diterapkan di storage device, jadi akses meliputi aksi oleh driver dan physical device.
Komputer yang lebih canggih memiliki level yang lebih banyak pada sistem hirarki memorinya, yaitu cache memory dan bentuk lain dari secondary memory seperti rotating magnetic memory, optical memory, dan sequntially access memory. Akan tetapi, masing-masing level ini hanya sebuah penyempurnaan salah satu dari tiga level dasar yang telah dijelaskan sebelumnya.
Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk memegang semua proses.
Tujuan dari manajemen ini adalah untuk:
Meningkatkan utilitas CPU
Data dan instruksi dapat diakses dengan cepat oleh CPU
Efisiensi dalam pemakaian memori yang terbatas
Transfer dari/ke memori utama ke/dari CPU dapat lebih efisien
Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik). Teknik ini menempatkan keseluruhan program 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.
Pada gambar diatas ditunjukkan ruang sebuah memori virtual yang dibagi menjadi bagian-bagian yang sama dan diidentifikasikan dengan nomor virtual pages. Memori fisik dibagi menjadi page frames yang berukuran sama dan diidentifikasikan dengan nomor page frames. Bingkai (frame) menyimpan data dari halaman. Atau memori virtual memetakan nomor virtual pages ke nomor page frames. Mapping (pemetaan) menyebabkan halaman virtual hanya dapat mempunyai satu lokasi alamat fisik.
Dalam sistem paging, jika sebuah ruang diperlukan untuk proses dan halaman yang bersangkutan tidak sedang digunakan, maka halaman dari proses akan mengalami paged out (disimpan ke dalam disk) atau swap out, memori akan kosong untuk halaman aktif yang lain. Halaman yang dipindah dari disk ke memori ketika diperlukan dinamakan paged in (dikembalikan ke memori) atau swap in. Ketika sebuah item dapat mengalami paging, maka item tersebut termasuk dalam item yang menempati ruang virtual, yang diakses dengan alamat virtual dan ruangan yang ada dialokasikan untuk informasi pemetaan. Sistem operasi mengalokasikan alamat dari item tersebut hanya ketika item tersebut mengalami paging in.
Keuntungan yang diperoleh dari penyimpanan hanya sebagian program saja pada memori fisik adalah:
Berkurangnya proses M/K yang dibutuhkan (lalu lintas M/K menjadi rendah)
Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan
Meningkatnya respon karena menurunnya beban M/K dan memori
Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Teknik memori virtual akan memudahkan pekerjaan seorang programmer ketika besar data dan programnya melampaui kapasitas memori utama. Sebuah multiprogramming dapat mengimplementasikan teknik memori virtual sehingga sistem multiprogramming menjadi lebih efisien. Contohnya: 10 program dengan ukuran 2 MB dapat berjalan di memori berkapasitas 4 MB. Tiap program dialokasikan 256 Kbyte dan bagian - bagian proses (swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan.
Prinsip dari memori virtual adalah bahwa "Kecepatan maksimum ekseskusi proses di memori virtual dapat sama, tetapi tidak akan pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual".
Memori virtual dapat diimplementasikan dengan dua cara:
Demand Paging yaitu dengan menerapkan konsep pemberian halaman pada proses
Demand segmentation, lebih kompleks diterapkan ukuran segmen yang bervariasi.
Mengapa hal ini bisa terjadi? Salah satu penyebab utamanya adalah karena firefox itu sendiri. Meski populer rupanya Firefox bukanlah browser ringan. Browser ini tergolong tambun dan boros, karena menghabiskan resource komputer yang lumayan tinggi. Untuk pertama kali dijalankan saja browser ini (versi 2) menghabiskan paling sedikit 10 mega memori di Linux, dan 20 mega di Windows. Semakin banyak Anda membuka tab / web maka semakin besar memori yang dihabiskan dan semakin sibuk pula CPU Anda bekerja. Anda bisa mengeceknya via aplikasi semacam top dan free di console atau ksysguard di KDE. Dari sisi manajemen memori tampaknya browser ini masih kalah dibanding rivalnya Opera.

Gambar 01.
Men-disable animasi flash terbukti ampuh dalam menghemat memori yang dipakai Firefox. Jenuh bukan melihat “flash” yang bertebaran seperti ini?
Namun Anda tidak perlu berkecil hati dan lekas-lekas memutuskan berpindah ke browser lain. Karena dengan sedikit tune up Anda bisa memperbaiki kinerja Firefox kesayangan. Silahkan ikuti langkah - langkah berikut..
Buka firefox. pada address ketikkan about:config (Lihat Gambar 02).

Gambar 02.
about:config
1. Batasi kapasitas cache memori
Setiap kali Anda membuka sebuah halaman web, Firefox otomatis akan menyimpannya dalam cache memori. Secara default Firefox menggunakannya sebesar jumlah maksimal RAM yang Anda miliki. Itulah mengapa semakin banyak Anda membuka web, memori komputer Anda semakin habis. Untuk membatasinya tambahkan opsi: browser.cache.memory.capacity. Caranya klik kanan, New > Integer. Ketik browser.cache.memory.capacity, enter, masukkan angka 2048. 2048 disini artinya gunakan cache memori maksimal hanya 2 Mega. Anda bisa coba - coba dengan angka yang lain, namun usahakan merupakan kelipatan dari 1024.
2. Batasi kapasitas cache history
Sama seperti cache memori, hanya bedanya peruntukan cache disini oleh Firefox lebih ditujukan untuk mempercepat loading halaman saat Anda menekan tombol back dan forward pada browser. Apabila Anda jarang memakai back dan forward, ada baiknya Anda set dengan nilai kecil guna menghemat memori. Pada filter ketikkan: browser.sessionhistory.max_total_viewers, ubah nilai -1 menjadi 3. Default -1 artinya gunakan semaksimal RAM yang ada. hmm.. nilai default dari Firefox benar-benar rakus bukan?
3. Batasi kapasitas cache disk
Secara default Mozilla menset ukuran cache disk sebesar 50 Mega. Tentunya ini pemborosan memori. Mensetnya menjadi 2 MB dapat memberikan performa yang positif khususnya bagi komputer dengan memori dibawah 128 MB dan harddisk model lama. Pada filter ketikkan: browser.cache.disk.capacity, ubah nilai 50000 menjadi 2000.
4. Batasi extension/add-ons
Semakin banyak add-ons yang Anda gunakan, semakin besar RAM yang dihabiskan. Disable add-ons yang kurang Anda gunakan. Untuk membandingkan performa memori yang digunakan saat menggunakan dan tanpa add-ons dapat dilakukan dengan mencoba menjalankan Firefox pada kondisi safe-mode. Caranya dengan perintah: $ firefox -safe-mode. Pada pilihan yang muncul pastikan Anda beri tanda pada opsi: Disable all add-ons (Lihat Gambar 03)

Gambar 03.
Opsi pilihan pada safe-mode
5. Disable Flash
Tahukah anda bahwa animasi flash yang di load saat Anda membuka web memakan resource RAM yang lumayan besar? Konsekuensinya adalah waktu loading menjadi lebih lambat dan berat. Bahkan pada plugin flash sebelum versi 9, resource RAM yang dipakai merupakan akumulasi dari jumlah flash yang dibuka sebelumnya. Gerah? (Lihat Gambar 01) Ada baiknya anda disable flash. Silahkan download dan install flashblock addon disini:
http://downloads.mozdev.org/flashblock/flashblock-1.5.5.xpi (untuk firefox > 1.5.5)
6. Disable download history
Sebaiknya anda nonaktifkan fitur history ini. Karena semakin banyak download history yang disimpan, maka akan menurunkan performa Firefox. Apalagi bila media penyimpannya pada media removeable seperti disket. Caranya mudah, pilih menu Tools > Options > Privacy. lalu hilangkan pilihan pada “Remember what I’ve downloaded” (Lihat Gambar 04)

Gambar 04.
Hilangkan pada pilihan “Remember what I’ve downloaded”
7. Load yang perlu saja
Secara default Firefox tanpa kita sadari merusaha melakukan pre-download pada link halaman web yang mungkin akan kita klik. Hal ini meniru taktik Google yang mencache terlebih dahulu result pertama dari link pencarian yang dia temukan. Tentu cara ini hanya memboroskan bandwdith, dan performa CPU. Untuk menonaktifkan fitur ini ketik pada filter: network.prefetch-next, klik dua kali, agar nilainya menjadi false.
8. Download dan segera tampilkan.
Tips ini mungkin berguna buat yang tidak sabaran. Umumnya firefox akan menunggu beberapa saat setelah download untuk mulai menampilkan halaman yang dituju. Untuk memaksa Firefox agar segera menampilkan halaman web yang didownloadnya Anda bisa menset nilai: nglayout.initialpaint.delay menjadi 0. Apabila belum ada silahkan klik kanan, new > integer > nglayout.initialpaint.delay
Tips untuk menghemat memori lainnya adalah dengan mengaktifkan fitur config.trim_on_minimize. Hanya saja fitur ini hanya efektif pada lingkungan Windows. Caranya klik kanan, new > boolean, ketikkan config.trim_on_minimize. Set nilainya True. Dengan cara ini setiap kali Firefox di minimize, otomatis memori yang di pakai akan dilepas / dibebaskan, sehingga dapat dipakai untuk proses aplikasi lainnya.
OK, apabila langkah - langkah diatas telah Anda kerjakan, langkah terakhir adalah me-restart Firefox kesayangan Anda. Bagaimana kini performa Firefox Anda? Kami tunggu komentarnya.
catatan:
Untuk melihat besar cache memory yang digunakan Firefox saat ini, dapat dilihat dengan mengetikkan about:cache pada url browser.
Memori Fisik
Manajemen memori pada Linux mengandung dua komponen utama yang berkaitan dengan:
Pembebasan dan pengalokasian halaman/blok pada main memori.
Penanganan memori virtual.
Berdasarkan arsitektur Intel x86, Linux memisahkan memori fisik ke dalam tiga zona berbeda, dimana tiap zona mengindentifikasikan blok (region) yang berbeda pada memori fisik. Ketiga zona tersebut adalah:
Zona DMA (Direct Memory Access). Tempat penanganan kegiatan yang berhubungan dengan transfer data antara CPU dengan M/K, dalam hal ini DMA akan menggantikan peran CPU sehingga CPU dapat mengerjakan instruksi lainnya.
Zona NORMAL. Tempat di memori fisik dimana penanganan permintaan-permintaan yang berhubungan dengan pemanggilan routine untuk alokasi halaman/blok dalam menjalankan proses.
Zona HIGHMEM. Tempat yang merujuk kepada memori fisik yang tidak dipetakan ke dalam ruang alamat kernel.
Tabel 9.1. Pembagian Zona Pada Arsitektur Intel x86
| Zone | Physical Memory |
|---|---|
| ZONE_DMA | <> |
| ZONE_NORMAL | 16 - 896 MB |
| ZONE_HIGHMEM | > 896 MB |
Memori manager di Linux berusaha untuk mengefisienkan ruang alamat pada memori fisik, agar memungkinkan lebih banyak proses yang dapat bekerja di memori dibandingkan dengan yang sudah ditentukan oleh kernel. Oleh karena itu, digunakanlah dua macam teknik alokasi, yaitu alokasi halaman yang ditangani oleh page allocator dan alokasi slab yang ditangani oleh slab allocator.
Alokasi halaman menggunakan algoritma buddy yang bekerja sebagai berikut. Pada saat kegiatan alokasi data di memori, blok di memori yang disediakan oleh kernel kepada suatu proses akan dibagi menjadi dua blok yang berukuran sama besar. Kejadian ini akan terus berlanjut hingga didapat blok yang sesuai dengan ukuran data yang diperlukan oleh proses tersebut. Dalam hal ini page allocator akan memanggil system call kmalloc() yang kemudian akan memerintahkan kernel untuk melakukan kegiatan pembagian blok tersebut.
Akan tetapi, algoritma buddy memiliki kelemahan , yaitu kurang efisien. Sebagai contoh, misalnya ada 1 MB memori. Jika ada permintaan 258 KB, maka yang akan digunakan sebesar 512 KB. Tentu hal ini kurang efisien karena yang dibutuhkan hanya 258 KB saja.




Tidak ada komentar:
Posting Komentar