FreakNess oF mE

FreakUp uR miNd

Minggu, 05 Desember 2010

Manajemen Memori LINUX dan Windows


Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori manajemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya.
Dengan memori virtual kita dapat:
  1. Ruang alamat yang besar
Sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
  1. Pembagian memori fisik yang dil
Manajemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.
  1. Perlindungan
Memori manajemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain dalam sistem tersebut.
  1. Penggunaan memori virtual bersama
Memori virtual mengijinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda.

Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.
Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN 1. Setiap anggota tabel page mengandung informasi berikut ini:
  1. Virtual PFN
  2. PFN fisik
  3. informasi akses page dari page tersebut
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.

Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging.
Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.
CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.
Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.

Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.
Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.

Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.

Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam manajemen memori di linux:
  1. Page Cache
Digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.
  1. Buffer Cache
Page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.
  1. Swap Cache
Hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu.
Salah satu implementasi yang umum dari hardware cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.

  1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.
  1. Linking statis dan linking dinamis
    1. Linking statis:
librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library sistem yang umum.
    1. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal memori fisik dan ruang disk.

Manajemen Memori di Windows
Bagaimana Windows mengatur memory? Bagaimana juga pengaruh RAM terhadap kinerja PC? Apakah memory yang mahal itu perlu?

Proses Intalasi
Setelah semua persiapan ini, Anda tentu sudah tahu kecepatan dan jumlah RAM yang dibutuhkan. Namun, masih ada pilihan dan Anda mungkin mendapatkan (misalnya) tawaran dua RAM 256 MB yang lebih murah dibanding satu 512 MB. Meskipun demikian, kami selalu menyarankan untuk memilih kapasitas yang tertinggi, karena memberikan slot bebas lebih banyak untuk upgrade nantinya.
Setelah siap untuk memulai instalasi, lepaskan steker PC Anda, bebaskan beberapa ruang, dan lengkapi diri Anda dengan tali gelang antistatik. Cara lain, pastikan Anda sering terhubung dengan “tanah” karena memory lebih mudah rusak oleh listrik statis dibanding CPU. Buka casing, dan lihat slot memory Anda. Biasanya ada klip di kedua sisi untuk menahan RAM pada tempatnya, dan pada desktop tertentu Anda tidak bisa membukanya
jika ada kartu pada slot AGP. Jika ruang yang ada kurang mencukupi, buka sekrup kartu grafis dan angkat keluar.
Jika Anda memindahkan RAM, tekan kedua klip pada ujung slot, dan cabut memory. Untuk memasang memory, keluarkan RAM dari kantong antistatik, pegang pada kedua tepinya, dan pasangkan ke slot. RAM hanya akan pas dalam satu arah, dan potongan pada bagian bawah memory harus cocok dengan yang ada pada slot motherboard. Dengan klip terbuka penuh, dorong memory secara kuat lurus ke dalam slot dengan ibu jari Anda. Klip akan masuk ke dalam tempatnya, sehingga pekerjaan sudah selesai.
Pasang lagi steker PC Anda, nyalakan dan perhatikan untuk melihat apa yang terjadi. Jika beruntung RAM yang baru akan dikenali dan Anda bisa menggunakan PC. Jika sistem diam, atau Anda menerima pesan peringatan atau tanda bunyi, berarti ada masalah RAM. Periksa lagi manual untuk memastikan Anda telah mengikuti semua aturan yang ada. Jika tidak ada masalah, coba jalankan dengan kombinasi RAM yang berbeda supaya dapat menemukan masalah dengan cepat.

MEMINDAHKAN PAGING FILE
Buka Computer Management (klik Start kemudian klik Control Panel. Klik ganda Administrative Tools kemudian klik ganda Computer Management). Pada tree console, klik kanan Computer Management (Local), dan kemudian pilih Properties. Pada tab Advanced, di bawah Performance, klik Settings, dan di bawah Virtual memory, klik Change.
Klik drive yang saat ini digunakan sebagai tempat paging file, klik No Paging File, dan kemudian klik Set. Klik drive yang baru, klik Custom Size, ketik ukuran paging file yang diinginkan pada kotak Initial Size (MB) dan Maximum Size (MB), klik Set, dan kemudian klik OK. (klik System managed size jika Anda mau Windows yang mengatur ukuran paging file).

PAGE DAN FAULT
Windows perlu mengatur memory secara efektif, berapa pun jumlah memory fisik yang Anda instalasi. Untuk melakukannya, Windows membagi memory Anda ke dalam potongan kecil yang disebut page dan masing-masing mempunyai alamat terpisah supaya dapat menemukan bagian tertentu dari memory. Supaya pengaturan memory fisik dan virtual dapat dilakukan secara simultan, Windows menggunakan ukuran 4 Kb untuk setiap page memory. Meskipun terlihat sangat kecil, itu masuk akal jika Anda mengetahui alasannya.
Ruang harddisk juga dibagi ke dalam bagian-bagian yang lebih kecil, dikenal dengan cluster. Karena cluster paling kecil pada harddisk modern adalah 4 Kb dan ukuran cluster yang lebih besar merupakan kelipatan angka tersebut, maka jika digunakan angka yang sama untuk page memory membuat pengaturan memory tidak lagi begitu kompleks.
Pada waktu program mengakses page memory yang telah dipindahkan ke hard disk, sistem membuat Page Fault. Anda mungkin pernah melihat page fault pada waktu PC mengalami blue screen: page fault invalid ini terjadi pada waktu Windows mengakses page yang tidak ada. Di samping nama yang salah, page fault muncul pada semua PC dalam jumlah banyak per detik dan Anda tidak pernah melihatnya. Mereka bukanlah kesalahan (fault), tetapi permintaan akan memory.

APAKAH LATENSI PENTING?
Meskipun mengambil informasi dari RAM terlihat sangat cepat bagi kita, banyak yang terjadi di baliknya. Data disimpan dalam bentuk matrik, jadi untuk mendapatkan suatu item tertentu pertama chip harus meminta barisnya, menunggu sebentar, meminta kolomnya, dan menunggu lagi. Akhirnya, data yang dibutuhkan diberikan kepada CPU.
Masing-masing waktu tunggu disebut latensi (latency), dan mereka biasanya dalam clock cycle. Salah satu latensi penting adalah CAS (Column Address Strobe), dan beragam jenis RAM bisa mempunyai nilai CAS 2, 2,5 atau 3. Semakin rendah angkanya menunjukkan semakin singkat waktu tunggu dan kinerja yang lebih baik. Inilah sebabnya chip dengan latensi rendah harganya lebih mahal. Namun, apakah mereka seberharga itu?
Sepintas mungkin Anda akan berpikir seperti itu, karena memory CAS 2 mempunyai waktu tunggu lebih sedikit dibanding CAS 3. Masalahnya adalah CAS hanyalah salah satu dari faktor yang terlibat, dan manfaat kinerja secara nyata hanya beberapa persen.
Hasil pengujian yang dilakukan oleh ExtremeTech menunjukkan peningkatan yang cukup rendah dengan semakin kecilnya latensi RAM. Pada pengujian Content Creation, perpindahan dari CAS 3 ke 2,5 hanya menghasilkan peningkatan sekitar 1% pada Athlon64 dan 2% pada Pentium 4. Ada juga sedikit peningkatan dari CAS 2,5 ke 2. Kedua sistem hampir 1% lebih cepat pada Business Winstone dari CAS 3 ke 2,5 dan hampir 2% dari 2,5 ke 2. Tidak satu pun dari tes menunjukkan peningkatan lebih dari 3% pada waktu berpindah dari CAS 3 ke 2.

0 komentar:

Posting Komentar