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