Memori merupakan inti dari system komputer. Salah satu cara untuk meningkatkan kinerja komputer adalah dengan melakukan pengaturan memori. Memori perlu dikelola agar utilitas CPU meningkat, data dan instruksi dapat diakses dengan cepat oleh CPU, tercapai efisiensi dalam pemakaian memori yang terbatas, dan transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.
Memori merupakan salah satu penyebab lambatnya kinerja komputer ketika beberapa program aplikasi dijalankan secara bersamaan (multiple task). Hal ini terjadi disebabkan oleh keterbatasan kapasitas RAM (Random Access Memory) pada komputer. Muncullah konsep vitual memori sebagai solusi dari permasalahan tersebut. Virtual memory adalah suatu mekanisme pada komputer yang menggunakan ruang harddisk untuk seolah-olah berfungsi sebagai memori. Dengan virtual memory, memori tampak lebih besar daripada ukuran sebenarnya, manajemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses dan menjamin setiap proses dalam system terlindung dari proses-proses lainnya sehingga program yang crash tidak akan mempengaruhi proses lain dalam system.
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi yang disebut dengan tehnik demand paging yang terjadi pada saat system sedang sibuk. Mekanisme ini berarti semua proses dapat mengeksekusi program aplikasi dimana hanya sebagian dari aplikasi tersebut terdapat dalam memori fisik. Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, system operasi harus memutuskan apa yang harus dilakukan. Linux menggunakan tehnik page aging dalam memilih page yang akan dihapus dari system untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi system.
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan table page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Table page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.
Untuk meningkatkan kinerja dari system, desainer CPU dan system operasi disamping membuat prosessor dan memori semakin cepat, jalan terbaik adalah menggunakan cache. Di linux terdapat beberapa cache yaitu page cache yang berfungsi untuk meningkatkan akses ke image dan data dalam disk, buffer cache yang tampak seperti daftar buffer untuk mempercepat pengambilan buffer, dan swap cache yang dapat menghemat akses disk yang tidak perlu.
Untuk menempatkan program dalam memori, linux membuat table-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat system call exec dijalankan. Pertama-tama file binary 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.
Linux menggunakan segmentasi secara sangat terbatas. Kenyataannya, segmentasi dan paging merupakan hal yang redundan karena keduanya digunakan untuk memisahkan ruang physical address padai proses. Segmentasi bisa menugaskan sebuah ruang linear address yang berbeda, sementara paging bisa memetakan ruang linear address yang sama ke ruang physical address yang berbeda. Linux lebih menyukai paging karena alasan berikut :
Manajemen memori lebih sederhana bila semua proses menggunakan nilai segment register yang sama, yaitu pada saat saling berbagi linear addressess yang sama.
Salah satu tujuan desain Linux adalah portabilitas untuk sebagian besar arsitektur populer; sementara beberapa prosesor RISC hanya mendukung segmentasi secara terbatas.
Linux walaupun merupakan system operasi yang bebas namun memiliki keunggulan dari beberapa sisi. Begitu pula dengan pengaturan memori di dalamnya. Linux yang setiap saat selalu memperbaiki performanya mungkin akan menjadi pertimbangan bagi para pengguna untuk hijrah ke linux.
Tidak ada komentar:
Posting Komentar