Memori Virtual pada Sistem Operasi

Memori

Memori Virtual pada Sistem Operasi – www.kolonginfo.com. 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). Sobat kolonginfo.com dapat langsung baca pada artikel berikut.

Latar Belakang

Konsep memori virtual yang dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris:

“Kecepatan maksimum eksekusi proses pada memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama pada sistem yang tanpa menggunakan memori virtual.”

Sobat kolonginfo.com perlu memahami istilah teknis dalam mempelajari manajemen memori. Sebelumnya admin tulis artikel tentanga Manajemen Memori pada Sistem Operasi. Sobat kolonginfo.com dapat baca artikel tersebut jika ingin memahami konsep dasarnya terlebih dahulu.

Manajemen Memori

Memori Virtual

Virtual Memory 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).

Memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik)

Demand Paging

Demand paging: Permintaan pemberian page. Permintaan pemberian page menggunakan swapping (pelajari swapping pada artikel manajemen memori). Page pada permintaan pemberian page hanya di-swap ke memori jika benar-benar diperlukan.

Memori Virtual – Swapping

Keuntungan penggunaan demand paging:

  • Sedikit I/O yang dibutuhkan
  • Sedikit Memory yang dibutuhkan
  • Response yang lebih cepat
  • Lebih banyak melayani user
Baca Juga:  Manajemen Memori pada Sistem Operasi

Butuh dukungan perangkat keras, yaitu:

  • Page-table “valid-invalid bit”; Valid (“1”) pages berada di memori. Invalid (“0”) pages berada di disk.
  • Memori sekunder, untuk menyimpan proses yang belum berada di dalam memori.

Jika proses mengakses lokasi yang berada di dalam memori, proses akan berjalan normal. Jika tidak, maka perangkat keras akan menjebaknya ke Sistem Operasi (page fault).

Algoritma

Bertujuan untuk mendapatkan page fault terendah. Ada beberapa Algoritma Page Replacement:

  1. Algoritma FIFO
  2. Algoritma Optimal
  3. Algoritma LRU
  4. Algoritma Perkiraan LRU
  5. Algoritma Counting
  6. Algoritma Page Buffering

1. Algoritma FIFO

Algoritma FIFO : Page yang diganti adalah page yang paling lama berada di memori. Mudah diimplementasikan. Mudah dimengerti.

Bisa mengalami Anomali Belady yaitu

  • Page fault rate meningkat seiring dengan meningkatnya jumlah frame.
  • Hanya terjadi pada beberapa Algoritma Page Replacement.

2. Algoritma Optimal

Algoritma Optimal :Page yang diganti adalah page yang tidak akan dipakai dalam jangka waktu terlama. : Sulit diimplementasikan. Memiliki page-fault terendah. :Tidak akan mengalami Anomali Belady.

3. Algoritma LRU

Algoritma LRU: Page yang diganti adalah page yang telah lama tidak digunakan. Merupakan perpaduan antara Algoritma FIFO dan Algoritma Optimal. Sulit diimplementasikan. Tidak akan mengalami Anomali Belady.

Dapat diimplementasikan dengan 2 cara, yaitu :

  • Counter : Menggunakan clock yang nilainya akan ditambah 1 tiap kali melakukan reference ke suatu page. Harus melakukan pencarian.
  • Stack: Tiap mereference ke suatu page, page tersebut dipindah dan diletakkan pada bagian paling atas stack. Page yang diganti adalah page yang berada di stack paling bawah. Tidak perlu melakukan pencarian. Lebih mahal.

4. Algoritma Perkiraan LRU

Algoritma Perkiraan LRU: Menggunakan bit reference. Awalnya semua bit diinisialisasi 0 oleh sistem operasi. Setelah page direference, bit diubah menjadi 1 oleh perangkat keras. Ada beberapa cara untuk implementasi algoritma ini :

Baca Juga:  Penjadwalan Prosesor Tunggal (Uniprocessor Scheduling)

Algoritma Additional-Reference-Bits.

Setiap page memiliki 8 bit byte sebagai penanda. Pada awalnya 8 bit ini diinisialisasi 0 (contoh : 00000000) Setiap selang beberapa waktu, timer melakukan interupsi kepada sistem operasi, kemudian sistem operasi menggeser 1 bit ke kanan. Page yang diganti adalah page yang memiliki nilai terkecil. Contoh page yang selalu digunakan setiap periode : 11111111.

Algoritma Second-Chance.

Dasar algoritma ini adalah Algoritma FIFO. Algoritma ini juga menggunakan circular queue. Apabila nilai bit reference-nya 0, page dapat diganti. Apabila nilai bit reference-nya 1, page tidak diganti tetapi bit reference diubah menjadi 0 dan dilakukan pencarian kembali.

Algoritma Second-Chance (yang diperbaiki).

Algoritma ini mempertimbangkan 2 hal sekaligus, yaitu bit reference dan bit modifikasi. Ada 4 kemungkinan :

  • (0,0) tidak digunakan dan tidak dimodifikasi, bit terbaik untuk dipindahkan.
  • (0,1) tidak digunakan tapi dimodifikasi, tidak terlalu baik untuk dipindahkan karena page ini perlu ditulis sebelum dipindahkan.
  • (1,0) digunakan tapi tidak dimodifikasi, terdapat kemungkinan page ini akan segera digunakan lagi.
  • (1,1) digunakan dan dimodifikasi, page ini mungkin akan segera digunakan lagi dan page ini perlu ditulis ke disk sebelum dipindahkan.

5. Algoritma Counting

Algoritma Counting: Menyimpan counter untuk masing-masing page. Prinsip ini dapat dikembangkan menjadi algoritma berikut : 1) Algoritma LFU yaitu page yang diganti adalah page yang paling sedikit dipakai (nilai counter terkecil). 2) Algoritma MFU yaitu page yang diganti adalah page yang paling sering dipakai (nilai counter terbesar).

6. Algoritma Page Buffering

Algoritma Page Buffering : Sistem menyimpan pool dari frame yang kosong. Proses dapat mengulang dari awal secepat mungkin. Tidak perlu menunggu page yang akan dipindahkan untuk ditulis ke disk. Teknik ini digunakan dalam sistem VAX/ VMS.

Baca Juga:  Manajemen Memori pada Sistem Operasi

Thrashing

Proses menghabiskan waktu yang lebih banyak untuk paging daripada eksekusi. Proses sibuk untuk melakukan swap-in swap-out.

Thrashing dapat terjadi karena:

  • Rendahnya utilitas dari CPU
  • Sistem meningkatkan derajat dari multiprogramming dengan menambahkan proses baru ke sistem.
  • Jika derajat dari multiprogramming ditambah terus menerus, utilisasi CPU akan berkurang dengan drastis dan terjadi thrashing.

Membatasi Efek Thrashing :

Algoritma penggatian lokal atau prioritas:

  • Proses tersebut tidak dapat mencuri frame dari proses yang lain.
  • Jika proses thrashing, proses tersebut akan berada di antrian untuk melakukan paging yang mana hal ini memakan banyak waktu.

Menyediakan sebanyak mungkin frame sesuai dengan kebutuhan suatu proses.

Penutup

Dalam pemrosesan sistem operasi atau komputer diperlukan memori guna menyimpan informasi. Perlu strategi dalam pengelolaan virtual memori, algoritma, dan teknik.

Sobat kolonginfo.com dapat menemukan artikel yang lebih mendalam tentang memori pada sistem operasi/sistem informasi dapat ditemukan pada menu Sistem Informasi. Semoga bermanfaat

Diolah dari berbagai sumber