Jumat, 27 April 2012

Memori Virtual


1.      Konsep Dasar Memori Virtual
Manajemen memori pada intinya merupakan semua bagian proses yang akan dijalankan kedalam memori sebelum proses itu dijalankan. Untuk itu, semua bagian proses itu harus memiliki tempat sendiri di dalam memori fisik.Tetapi tidak semua bagian dari proses itu akan dijalankan, misalnya :
-          Pernyataan atau pilihan yang hanya akan dieksekusi pada kondisi tertentu. Contohnya, pesan-pesan error yang hanya muncul bila terjadi kesalahan saat program dijalankan.

-          Fungsi-fungsi yang jarang digunakan.

-          Pengalokasian memori yang lebih besar dari yang dibutuhkan. Contoh, array, list, dan table.

Pada memori berkapasitas besar, hal hal tersebut tidak akan menjadi masalah. Namun, bagi memori berkapasitas terbatas, ha tersebut akan menurunkan optimalisasi utilitas dari ruang memori fisik. Oleh sebab itu digunakan konsep memori virtual.
  
Ilustrasi

Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya, atau kemampuan mengalami tiruan memori melebihi memori utama yang tersedia.Teknik ini menyembunyika naspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berbeda. Memori virtual dapat menampung program dalam skala besar, melebihi daya tamping dari memori fisik yang tersedia. Prinsip dari memori virtual yang patut diingat adalah bahwa : “Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di system tanpa menggunakan memori virtual.”. Konsep memori virtual pertama kali dikemukakan oleh Forthering ham pada tahun 1961 pada system computer Atlas di Universitas  Manchester, Inggris .Sebagaimana telah diungkapkan di atas bahwa hanya sebagian dari program yang diletakkan di memorifisik. Hal ini memberikan keuntungan :

-          Berkurangnya proses I/O yang dibutuhkan (lalulintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memori setiap kali diakses.

-          Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.

-          Meningkatnya respon, karena menurunya beban I/O dan memori

-          Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan computer untuk menerima lebih banya permintaan dari pengguna.

Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. System operasi menyimpan bagian-bagian  proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian-bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swap-out) dan diganti (swap-in) oleh disk yang diperlukan.

Memori virtual di implementasikan dalam system multi programming. Misalnya : 10 program dengan ukuran 2 Mb berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 Kbyte dan bagian-bagian proses masuk kedalam memori fisik begitu diperlukan dan akan keluar jika sedang tidak diperlukan. Dengan demikian, system multi programming akan lebih efisien.

2.       Demand Paging
Demand paging (permintaan pemberi halaman) adalah salah satu implemetasi dari memori virtual yang paling umum digunakan. Demand paging pada prinsip nya hamper sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan dibawa kedalam memori fisik untuk sampai benar-benar diperlukan.Untuk itu diperlukan bantuan pernagkat keras untuk mengetahui lokasi dari halaman saat diperlukan. Perangkat keras yang dibutuhkan dalam demand paging sama dengan perangkat keras yang dibutuhkan dalam paging, yaitu :

-          Table page yaitu table yang mempunyai kemampuan untuk member entry bit valid-invalid atau nilai khusus untuk bit proteksi.

-          Memori sekunder yaitu memori yang digunakan untuk membawa page yang tidak di memori dan biasanya adalah disk kecepatan tinggi yang disebur swap device.

Pada demand paging page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat dan lebih banyak user yang menggunakan. Proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka dipindah ke memori dengan melakukan swapping. Sebuah page tidak pernah ditukar ke memori apabila page tidak diperlukan.Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika acuan invalid maka dilakukan penghentian.

Untuk membedakan antara page pada memori dengan page pada disk digunakan table page valid-invalid bit. Table page yang berada di memori disebut valid, sedangkan table page untuk page yang tidak sedang di memori (adapada disk) disebut invalid.
·         Skema bit vaid-invalid
Skema bit valid-invalid dimana disini pengertian valid berarti bahwa halaman legal dan berada dalam memori, sedangkan tidak valid berarti halaman tidak ada atau halaman ada tapi tidak ditemui di memori. Pengesetan bit :

Bit 1 =  halaman berada di memori
Bit 0 =  halaman tidak berada di memori

Apabila ternyata hasil dari translasi, bit halaman  = 0, berarti kesalahan halaman terjadi. Manajemen memori dengan permintaan halaman (demand paging) memliki kelebihan yang sama dengan manajemen memori dengan pemberian halaman, antara lain yaitu menghilangkan masalah fragmentasi eksternal sehingga tidak diperlukan pemadatan (compaction). Selain itu, permintaan halaman jugga memliki kelebihan lain, yaitu :

-          Memori virtual yang besar
Memori logis tidak lagi terbatas pada ukuran memori fisik. Hal ini berarti bahwa besar suatu program tidak akan terbata hanya pada ukuran memori fisik yang tersedia.

-          Penggunaan memori yang lebih efisien
Bagian dari program yang dibawa ke memori fisik hanyalah bagian program yang dibutuhkan sementara bagian lain yang jarang tidak akan dibawa.

-          Meningkatkan derajat multiprogramming
Derajat multiprogramming menunjukkan banyaknya proses yang berada di memori fisik. Dengan penggunaan permintaan halaman maka ukuran suatu program di memori akan lebih kecil mengingat bahwa hanya bagian program yang diperlukan saja yang akan dibawa ke memori fisik. Penggunaan memori yang lebih kecil oleh sebuah proses member sisa ruang memori fisik yang lebih besar sehingga lebih banyak proses yang biasa berada di memori fisik. Hal ini berpengaruh pada utilisasi CPU dan throughput (banyaknya proses yang dapat diselesaikan dalam satu satuan waktu) yang lebih besar.

-          Penggunaan I/O yang lebih sedikit
Hal ini dapat terjadi karena permintaan halaman hanya membawa bagian yang diperlukan dari suatu program. Penggunaan I/O pada permintaan halaman lebih sedikit dibandingkan dengan manajemen memori lain yang membawa seluruh memori logis sebuah program ke memori fisik.

3.      Unjuk Kerja Demand Paging
Demand paging memberikan efek yang signifikan dalam kinerja system computer. Demand paging memberikan efek yang signifikan dalam kinerja sistem computer. Diasumsikan ma adalah access time ke memori dan P adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :

EAT = (1-p) x ma + p x page_fault-time

Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault. Page fault menyebabkan terjadinya :

1.      Trap ke system operasi.
2.      Menyimpan register dan status proses.
3.      Menentukan interrupt adalah page fault
4.      Memeriksa page acuan legal atau tidak dan menentukan lokasi page pada disk.
5.      Membaca dari disk ke frame bebas :

·         Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
·         Menunggu perangkat mencari dan  waktu latency.
·         Memulai transfer dari page ke frame bebas

6.      Sementara menunggu, alokasikan CPU untuk user lain.
7.      Interrupt dari disk (melengkapi I/O).
8.      Menyimpan register dan status process user lain.
9.      Menentukan interrupt dari disk.
10.  Memperbaiki tabel page dan tabel lain untuk menunjukkan page yang dimaksud sudah di memori.
11.  Menunggu CPU dialokasikan untuk proses ini kembali.
12.  Menyimpan  kembali register, status proses dan tabel page baru, kemudian  melanjutkan kembali instruksi yang di-interupsi.

Untuk Menghitung Effective Access Time dari sistem demand paging perhatikan contoh berikut. Diasumsikan memory access 100 ns. Rata-rata waktu latency untuk hard disk adalah 8 ms, waktu pencarian 15 ms dan rata-rata transfer sebesar 1 ms. Total waktu paging ˜ 25 ms.

EAT = (1-p) x ma + p x page_fault-time
Effective access time     = (1-p) x (100) + p x (25 ms)
= (1-p) x 100 + p x 25000000
= 100 + 24999900 x p

Apabila satu dari 1000 akses menyebabkan page fault, maka effective access time = 25 micro-sec (lebih lambat dengan faktor 250). Tetapi bila menginginkan degradasi kurang dari 10% maka :

        110 > 100 + 25000000 x p
            10 > 250000000 x p
            p< 0.0000004

Dapat Disimpulkan system harus mempertahankan rata-rata page-fault yang rendah pada system demand-paging. Sebaliknya, jika effective access time meningkat maka akan memperlambat eksekusi proses secara drastic.

Sumber :

Tidak ada komentar:

Posting Komentar