Paper Sistem Operasi (Tugas Besar Sisop) #END

Konsep Memori Virtual dan Efisiensi TLB pada Server

 

 

 

Azhar Wahid

Fakultas Informatika

Universitas Telkom, Bandung

 

By :

 

Bimandanu Nur Indratma

Fakultas Informatika

Universitas Telkom, Bandung

 

 

 

Dwi Haryanto

Fakultas Informatika

Universitas Telkom, Bandung

 

 

Abstraksi

Pada paper ini menjelaskan tentang konsep memori virtual secara umum dan secara khusus. Untuk konsep memori virtual secara umum seperti manajemen memori, paging, dan meningkatkan locality pada memori virtual. Secara khususnya seperti penerapan konsep memori virtual pada beban kerja server seperti database , cache memory, dan analisis grafik, dimana berdasarkan referensi menjelaskan bahwa sebanyak 10% ketika eksekusi pada memori virtual lebih banyak terjadi TLB miss[2]. Pada referensi tersebut, penyusun juga melakukan analisa dengan prototype langsung yang dibuat khusus untuk perangkat lunak x86 -64 di LINUX dengan menirukan hardware peyusun segmen pada memori virtual [2].

Kata kunci : Memori virtual, manajemen memori, paging, TLB

1.     Pendahuluan

Virtual memory merupakan teknik manajemen memori yang dikembangkan untuk kernel multitasking. Teknik ini diimplementasikan dalam berbagai bentuk arsitektur computer dari penyimpanan data yang memungkinkan sebuah program harus dirancang seolah hanya ada satu jenis memori [4]. Dalam memori virtual sendiri dikenal istilah paging. Paging merupakan bagian penting dari manajemen memori dalam sistem computer masa kini.  Dalam sistem paging, ruang virtual dibagi menjadi unit-unit dengan ukuran yang sama berdasarkan informasi dari page. Perangkat keras sistem paging memetakan alamat memori virtual pengguna ke alamat penyimpanan nyata dengan menggantikan nomor frame memori utama sesuai dengan jumlah halaman.

Teori memori virtual dari tahun 1960-an  tidak berubah signifikan dengan tetap mempertahankan konsep TLB [2]. Saat ini dengan kecanggihan teknologi yang sudah berkembang, khususnya di bidang hardware dan juga dengan adanya penurunan harga beli memori menyebabkan peningkatan daya simpan bagi komputer server, dimana kapasitas awal yang hanya mampu menyimpan data yang masih terbatas skala gigabyte, namun saat ini kapasitas yang dapat disimpan dapat mencapai terabyte memori fisik [2].

 

2.     Memori Virtual Secara Umum

2.1.           Desain Manajemen Memori

Pada umunya manajemen memori.memiliki karakteristik seperti :

  1. Proteksi. Jadi, tidak ada user yang dapat merusak data user lain.
  2. Privasi. Tidak ada user yang dapat mengakses data user lain tanpa sepengetahuan atau seizin user/private system tersebut.
  3. Low Overhead. Overhead dibuat seminim mungkin.
  4. Mudah digunakan. Manajemen memori harus mudah digunakan.
  5. Fleksibel. Manajemen memori harus memiliki sifat fleksibel, jadi ketika memori virtual dibutuhkan untuk menjalankan suatu program harus tersedia.
  6. Share Code Use. Beberapa user dapat mengakses satu memori fisik dalam satu program yang sedang berjalan.
  7. Integritas Desain. Subsitem dari memori manajemen tidak dapat didesain sebagai unit-unit yang terpisah. Subsistem tersebut harus didesain sebagai bagian integrasi dari keseluruhan sistem.
  8. Modularity. Subsistem memori manajemen tidak dapat didesain sebagai kumpulan aktifitas. Sistem tersebut harus didesain secara sederhana dan efektif [3].

2.2.           Locality

Locality adalah proses yang cenderung mengacu pada penyimpanan yang biasanya tidak seragam namun berurutan, dan memiliki pola-pola yang berdekatan [6]. Program akan memakai kembali data dan instruksi yang letaknya berdekatan dengan yang pernah digunakan sebelumnya atau yang belum lama digunakan.

Prinsip locality ada dua macam :

  1. Temporal locality. Lokasi tempat proses dijalankan yang pernah direfernsikan (dipakai) akan dipakai lagi dalam waktu yang relative sebentar [1].
  2. Spatial locality. Lokasi tempat proses dijalankan atau disimpan, alamatnya berdekatan ketika direferensikan dalam satu waktu [1].

Untuk analoginya dapat dilihat pada contoh potongan program berikut.

Jml = 0;

For (a=0; a<=n; a++){

Jml = Jml + data[a];

} [6]

Berdasarkan potongan program diatas, fungsi loop merupakan pererefensian temporal locality yang penggunaannya berdasarkan waktu yang sebentar. Sedangkan pengaksesan array mencerminkan pada spatial locality yang mengacu pada pengaksesan lokasi yang berurutan atau berdekatan.

Pada dasarnya, temporal locality dan spatial locality saling bekerja berdampingan ketika program berjalan.

2.3.           Paging

Paging adalah sistem manajemen pada sistem operasi yang mengatur program yang sedang berjalan. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecah memori logika menjadi bok-blok yang berukuran sama dengan frame yang disebut page [5].

2.3.1.      Algoritma Paging

Algoritma ini diterapkan pada Time Sharing Operating System (TSOS), dimana algoritma ini membatasi jumlah pengguna resource processor dan main memory dengan menggunakan konsep seperti penjadwalan tasks. Ketika tasks dalam kondisi aktif, maka program diizinkan mengakses waktu processor dan main memory. Jika tasks dalam kondisi ter-block oleh banyak interrupt dari paging, dipilih page dari queue page yang lain.

2.3.2.      TLB

TLB atau Translation Lookaside Buffer merupakan suatu asosiatif memori berkecepatan tinggi yang berfungsi seperti cache memory tapi terjadi pada page table [4]. TLB menyimpan sebagian alamat-alamat data dari suatu proses yang berada pada page table yang sedang digunakan atau sering digunakan. Salah satu fitur dari TLB adalah mampu membuat proteksi suatu alamat memori.

3.     Memori Virtual Pada Server

Berikut ini merupakan table test machine configuration dan table workload description yang diterapkan pada konsep server, khususnya database sever [2].

 

3.1.           Efisiensi Memori Virtual

Berdasarkan table diatas, menunjukan bahwa terjadi banyak TLB miss. Data tersebut diperoleh dari hasil pengujian yang dilakukan oleh Basu, A., Gandhi, J., Chang, J., Hill, M. D., & Swift, M. M. (n.d.).. Oleh karena itu, diusulkan suatu mekanisme memori virtual yang lebih efisien mencakup faktor kecepatan dan juga meminimalisir kesalahan penerjemahan alamat melalui segmentasi. Mekanisme tersebut dikembangkan dari segi hardware dan software yang memiliki karakteristik mengurangi beban kerja dari memori virtual tersebut khususnya menangani penerjemahan alamat yang sudah dijelaskan diatas. Untuk penanganan hardware difokuskan pada segmentasi direct. Dimana memungkinkan kecepatan dan efisiensi penerjemahan alamat setiap bagian page memori virtual. Untuk melakukan hal tersebut dilakukan penerjemahan secara berlanjut pada rentang alamat yang ditujukan kepada alamat fisik penyimpanan [2].

Untuk penanganan  pada sistem perangkat lunak dilakukan metode yang disebut primary region. Primary region merupakan rentang alamat virtual pada alamat proses yang memiliki akses read and write. Fungsionalitas page yang berbasis konvensional memori virtual seperti fine-grain protection, sparse allocation, swapping, dan demand paging tidak dijamin bisa dialokasikan di memori utama [2].

3.2.           Software Prototype

Setelah dilakukan analisis berdasarkan feedback yang didapat dari hasil pengolahan perangkat keras dan perangkat lunak di sub bab 3.1, diterapkan sebuah prototip yang memodifikasi kernel LINUX 2.6.32 dimana disitu memuat implementasi architecture-independent yang dalam pelaksanaan prototipnya disederhanakan dengan asumsi bahwa hanya satu proses yang dapat menggunakan segmen secara langsung yang disebut dengan proses primer. Sementara itu pada implementasi desain architecture-dependent dibuat fungsi dengan menggunakan 4KB yang menirukan fungsionalitas dari perangkat keras yang ada pada konsep memori virtual secara umum [2].

3.3.           Evaluation

Dalam pengujian menggunakan kombinasi dari hardware  dan kernel  yang dimodifikasi  . Dalam evaluasi, sistem yang dibuat dibagi menjadi dua metode umum yaitu,

  1. Baseline

Pada baseline, menggunakan kinerja counter hardware untuk memperkirakan siklus eksekusi yang habis ketika terjadi TLB miss. Dari data tersebut dikumpulkan untuk dianalisis .

  1. Direct Segmen

Untuk mengefisienkan hasil dari analisis yang ilakukan dibedakan apa saja faktor-faktor yang menyebabkan TLB miss. Di bagian ini dibutuhkan miss address untuk menunjukan posisi dari TLB miss tersebut. Namun pada kenyataannya arsitektur x86 mwnggunakan page table walker untuk mencari alamat TLB miss tersebut. Sehingga sistem yang belum dimodifikasi tidak bisa mengenali alamat dari TLB miss tersebut. Sehingga pada tahap selanjutnya digunakan Linux kernel untuk mengambil posisi atau alamat TLB miss tersebut. Dibagian akhir dilakukan modifikasi penanganan page fault untuk mencatat setiap alamat dimana TLB miss berasal baik dari primary atau konvensional pages memory [2].

Berikut in adalah table evaluasi yang dilakukan oleh Basu, A., Gandhi, J., Chang, J., Hill, M. D., & Swift, M. M. (n.d.)  [2].

 

Conclusion

Berdasarkan data telah dipaparkan diatas, dari bab 1 sampai bab 3 menggambarkan tentang beberap penjelasan secara umum tentang konsep virtual memory. Dimana meliputi pembahasan tentang paging,locality dan konsep TLB.

Selain itu dibahas juga tentang efisiensi TLB pada server. Pada bab 3 inimembahas tentang penanganan TLB miss pada memori virtual server. Penanganan TLB miss pada server bisa terjadi dikarenakan kapasitas memorifisik utama dan sekunder setiap saat mengalami peningkatan yang signifikan sehingga perlu dilakukan modifikasi konsep virtual memori yang akan diimplementasikan untuk computer server.

 

Daftar Pustaka

[1]. Jean, L. B., & Gary, R. S. (1976). Dynamic Improvement of Locality in Virtual Memory Systems. Improvement of Locality in Memory Systems, 54-62.

[2]. Basu, A., Gandhi, J., Chang, J., Hill, M. D., & Swift, M. M. (n.d.). Efficient Virtual Memory for Big Memory Servers. Madison: University of Wisconsin-Madison.

[3]. Environment, V. M. (1969). Weizer, Norman; Heimer, Oppen;. Spirit Joint Computer Conference, 249-256.

[4]. Memori Virtual – Wikipedia Bahasa Indonesia, Ensiklopedia Bebas. (2013, April 5). Retrieved from Wikipedia: http://id.wikipedia.org/wiki/Memori_virtual

[5]. William, S. (2009). Operating System : Internal and Design Principles. Prentice Hall.

[6]. amelia. (2010, November 19). Locality | Wissen. Retrieved from Wissen: http://rianiamelia.wordpress.com/2010/11/19/locality/

 

 

 

 

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *