Tuesday, 19 January 2016

virtual memory

Memori virtual adalah teknik manajemen memori yang dikembangkan untuk kernel multitugas. Teknik ini divirtualisasikandalam berbagai bentuk arsitektur komputer dari komputer penyimpanan data (seperti memori akses acak dan cakram penyimpanan), yang memungkinkan sebuah program harus dirancang seolah-olah hanya ada satu jenis memori, memori "virtual", yang bertindak secara langsung beralamat memori baca/tulis (RAM).
Sebagian besar sistem operasi modern yang mendukung memori virtual juga menjalankan setiap proses di ruang alamat khususnya sendiri. Setiap program dengan demikian tampaknya memiliki akses tunggal ke memori virtual. Namun, beberapa sistem operasi yang lebih tua (seperti OS/VS1 danOS/VS2 SVS) dan bahkan yang modern yang (seperti IBM i) adalah sistem operasi ruang alamat tunggal yang menjalankan semua proses dalam ruang alamat tunggal yang terdiri dari memori virtual.
Memori virtual membuat pemrograman aplikasi lebih mudah oleh fragmentasi persembunyian dari memori fisik; dengan mendelegasikan ke kernel beban dari mengelola hierarki memori (sehingga menghilangkan keharusan untuk program dalam mengatasi hamparan secara eksplisit); dan, bila setiap proses berjalan dalam ruang alamat khususnya sendiri, dengan menghindarkan kebutuhan untuk merelokasi kode program atau untuk mengakses memori dengan pengalamatan relatif.
Virtualisasi memori adalah generalisasi dari konsep memori virtual.
Memori virtual (dalam bahasa Inggris: virtual memory) adalah sebuah mekanisme yang digunakan oleh aplikasi untuk menggunakan sebagian dari hierarki memori seolah-olah ia menggunakannya sebagai RAM wujud yang terpasang di dalam sebuah sistem. Mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam kandar keras (hard drive) yang disebut dengan berkas tukar, berkas halaman atau tukar petak. - Selengkapnya

Jadi, Virtual Memori adalah suatu sistem yang digunakan oleh sistem operasi untuk menggunakan sebagian dari memori sekunder (Harddisk). Seolah-olah sistem tersebut menggunakan memori internal / primary (RAM) fisik yang terpasang pada sebuah sistem komputer. Cara kerja sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas pada Hard Drive yang biasa disebut dengan Page File. Proses pemakaian virtual memori pada windows umumnya dapat dilihat di Task Manager.


Beberapa keuntungan penggunaan memori virtual adalah sebagai berikut:
Berkurangnya  proses  I/O  yang  dibutuhkan  (lalu  lintas  I/O  menjadi  rendah).  Misalnya  untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.
Meningkatnya respon, karena menurunnya beban I/O dan memori.
Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Beberapa sistem operasi memerlukan yang namanya virtual memory. Layaknya Linux yang membutuhkan swap, microsoft windows vista ataupun XP pun membutuhkan yang namanya virtual memory. Pengertian dari Virtual memory itu sendiri yakni memori sementara yang digunakan komputer untuk menjalankan berbagai program aplikasi ataupun menyimpan data yang membutuhkan memory yang lebih besar dari memory yang telah tersedia ( Memory fisik seperti RAM, baca disini untuk lebih lengkap ). Program ataupun data yang tidak muat dimasukan pada memory asli ( RAM ), akan disimpan ke dalam sebuah Pagging File. Pengertian Pagging fileialah data yang hanya disimpan sementara atau bisa disebut swap. Pada sistem operasi linux kita diharuskan untuk membuat dua partisi utama yaitu untuk system dan untuk swap. Virtual Memory ini Berbeda halnya dengan Memory fisik seperti RAM, karena ram merupakan komponen yang termasuk kedalam golongan hardware. Walapun dalam kenyatannya Virtual Memory ini disimpan di harddisk, tetapi kerjannya itu tidak tampak, artinya berjalan secara software namun disimpan dihardware. Data yang disimpan ini tidak dapat bertahan lama, dalam artian hanya saat di gunakan saja. Dan bila komputer dimatikan, data data yang tadinya ada di virtual memory akan hilang. Jadi Fungsi Virtual Memoryialah untuk mengoptimalkan kinerja dari komputer, dengan tambahan memory, maka kemungkinan terjadi crash sangat kecil sekali. Ukuran dari paging file biasanya berbeda - beda, kalau ukuran paging file linuxialah 2 kali lipat dari memory aslinya. Misalkan kita memakai memory berkapasitas 512 MB, maka ukuran paging filenya yaitu 1 GB. Walaupun tidak harus 2 GB, tapi untuk memaksimalkan kinerja maka sebaiknya 2 kali lipatnya. Dan untuk Ukuran Paging file Di windows XP dan Vista Yaitu 1,5 kali dari kapasitas aslinya.


Setiap page diberi label untuk menandai berapa intruksi lagi baru dia gunakan. Page dengan label tertinggi (waktu dari sekarang sampai pemakaian berikutnya paling lama) yang akan dikeluarkan.
  1. Algoritma Penggantian Page NRU (Not-Recently Used)     Setiap page diberi status bit R (referenced) dan M (modified). Bit bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika sebaliknya. Dari nilai desimalnya didapat 4 kelas Intinya algoritma ini mudah dipahami dan dikembangkan karena sangat efisien walaupun tak banyak langkah dalam pemilihan page dan kelemahannya juga tidak optimal tapi dalam kondisi normal yang memadai.
  2.  Algoritma Penggantian Page FIFO (First In First Out)    Inti dari algoritma ini adalah simple / paling sederhana karena prinsipnya sama seperti prinsip antrian tak berprioritas. Page yang masuk terlebih dahulu maka yaitu yang akan keluar duluan juga. Untuk algoritma ini menggunakan structure data stack. Jadi kerjanya yaitu dimana kalau tidak ada frame yang kosong saat terjadi page fault maka korban yang dipilih adalah frame dengan stack paling bawah seperti hal nya halaman yang sudah lama tersimpan didalam memory maka dari itu algoritma ini juga bisa memindahkan page yang sering digunakan.       Utamanya algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun 70-an, pada saat itu juga Belady menemukan keganjalan pada algoritma ini dan dikenal dengan anomali Belady. Anomali Belady itu sendiri ialah keadaan dimana page fault rate meningkat seiring dengan pertambahannya jumlah frame.
  3.  Algoritma Penggantian Page Modifikasi FIFO    Algoritma FIFO murni jarang digunakan, tetapi dikombinasikan (modifikasi). Kelemahan FIFO yang jelas adalah algoritma dapat memilih memindahkan page yang sering digunakan yang lama berada di memori. Kemungkinan ini dapat dihindari dengan hanya memindahkan page tidak diacu Page ditambah bit R mencatat apakah page diacu atau tidak. Bit R bernilai 1 bila diacu dan bernilai 0 bila tidak diacu. Variasi dari FIFO antara lain:     - Algoritma penggantian page kesempatan kedua (second chance page replacement algorithm)     -Algoritma penggantian clock page (clock page replacement algorithm) Algoritma yang pertama adalah algoritma second chance. Algoritma second chance berdasarkan pada algoritma FIFO yang disempurnakan. Algoritma ini menggunakan tambahan berupa reference bit yang nilainya 0 atau 1. Jika dalam FIFO menggunakan stack , maka second chance menggunakan circular queue . Halaman yang baru di-load atau baru digunakan akan diberikan nilai 1 pada reference bit-nya. Halaman yang reference bit-nya bernilai 1 tidak akan langsung diganti walaupun dia berada di antrian paling bawah (berbeda dengan FIFO). Urutan langkah kerja algoritma second chance adalah sebagai berikut:   - Apabila terjadi page fault dan tidak ada frame yang kosong, maka akan dilakukan razia (pencarian korban) halaman yang reference bit-nya bernilai 0 dimulai dari bawah antrian (seperti FIFO).   - Setiap halaman yang tidak di- swap (karena reference bit-nya bernilai 1), setiap dilewati saat razia reference bit-nya akan diset menjadi 0.
  4. Algoritma Penggantian Page LRU (Least Recently Used)      Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah algoritma lain yang performance-nya mendekati algoritma optimal dengan sedikit cost yang lebih besar. ama seperti algoritma optimal, algoritma LRU tidak mengalami anomali Belady. Algoritma ini memakai linked list untuk mendata halaman mana yang paling lama tidak terpakai. Linked list inilah yang membuat cost membesar, karena harus meng-update linked list tiap saat ada halaman yang di akses
         www.skyconnectiva.com




No comments:

Post a Comment