VIRTUAL MEMORI
Kelompok 6:
- Abizard Aulia(10116040)
- Aulia Avirahmati(11116192)
- Delpiero Manuputty(11116792)
- Ilham Cendana(13116418)
- Jaya Suryanto Putra(13116685)
- Muhammad Fhadil A(14116851)
- Rizky Kurniawan(16116606)
JURUSAN SISTEM INFORMASI
UNIVERSITAS GUNADARMA
2018
Virtual Memori adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori utama yang tersedia. Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik).
Teknik ini menempatkan keseluruhan program di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan kebutuhan. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari ke disk sekunder.
Cara Kerja:
Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging file. Virtual memory digunakan pada saat operating system kehabisan memory, dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram.
Kemudian, pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena operating system tidak dapat secara langsung menjalankan program dari swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki ram yang kecil.
Prinsip dari memori virtual adalah : "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."
Konsep memori virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic storage allocation pada sistem komputer atlas di Universitas Manchester. Sedangkan istilah memori virtual dipopulerkan oleh peter j. denning yang mengambil istilah “virtual” dari dunia optic.
2. DEMAND PANGING
Demand paging atau permintaan pemberian halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. Demand paging pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan. Untuk itu diperlukan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan, Karena demand paging merupakan implementasi dari memori virtual, maka keuntungannya sama dengan keuntungan memori virtual, yaitu:
· Sedikit M/K yang dibutuhkan.
· Sedikit memori yang dibutuhkan.
· Respon yang lebih cepat.
· Dapat melayani lebih banyak pengguna.
Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada halaman yang dibutuhkan, yaitu: halaman ada dan sudah berada di memori – statusnya valid ("1"); halaman ada tetapi masih berada di disk atau belum berada di memori (harus menunggu sampai dimasukkan) – statusnya tidak valid ("0"). Halaman tidak ada, baik di memori maupun di disk (invalid reference).Saat terjadi kasus kedua dan ketiga, maka proses dinyatakan mengalami kesalahan halaman.
Ciri-ciri Demand Paging :
· (Demand paging) pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan.
· Page diload ke memory hanya ketika dibutuhkan
· Sedikit I/O yang dibutuhkan.
· Sedikit memori yang dibutuhkan.
· Respon yang lebih cepat.
· Dapat melayani lebih banyak pengguna.
· Lazy swapper – tidak melakukan swapping page ke memori hingga page dibutuhkan.
3. UNJUK KERJA DEMAND PANGING
Demand paging memberikan efek yang signifikan dalam kinerja sistem computer. Diasumsikan ma adalah access timeke 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 faultmenyebabkan terjadi
1. Trap ke sistem operasi.
2. Menyimpan register dan status proses.
3. Menentukan interrupt adalah page fau.t
4. Memeriksa page acuan legal atau tidak dan menentukanlokasi page pada disk.
5. Membaca dari disk ke frame bebas :
a. Menunggu di antrian untuk perangkat sampaipermintaan membaca dilayani.
b. Menunggu perangkat mencari dan / atau waktulatency.
c. 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 menunjukkanpage yang dimaksud sudah dimemori.
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
Tidak semua langkah diatas diperlukan pada setiap kasus. Padabeberapa kasus, terdapat tiga komponen utama dari waktu pelayananpage fault yaitu
· Melayani interrupt page fault.
· Membaca page.
· Memulai kembali proses.
Untuk menghitung effective access time dari sistem demand pagingperhatikan contoh berikut. Diasumsikan memory access 100 ns. Rata-rata waktu latency untuk hard disk adalah 8 ms, waktu pencarian 15 ms danrata-rata transfer sebesar 1 ms. Total waktu paging ≈ 25 ms.
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, makaeffective 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
Perlu diperhatikan system harus mempertahankan rata-rata page-fault yang rendah pada sistem demand-paging. Sebaliknya, jika effective access time meningkat maka akanmemperlambat eksekusi proses secara drastis.
4. PAGE RECLACEMENT
Page replacement diperlukan pada situasi dimana proses dieksekusi perlu frame
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskanframe dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori. Kebutuhan akan page replacement dapat
dilihat pada Gambar:
Langkah-langkah untukpage fault yang memerlukan page replacement seperti
Gambar adalah sebagai berikut :
1) Carilah lokasi pageyang diharapkan pada disk.
2) Carilah framekosong dg cara :
· Bila ada frame kosong, gunakan.
· Bila tidak ada, gunakan algoritma page replacement untuk menyeleksiframe
yang akan menjadi korban.
· Simpan page korban ke disk, ubah tabel page.
3) Baca page yang diinginkan ke frame kosong yang baru, ubah tabelpage.
4) Mulai kembali proses user.
Terdapat beberapa algoritma page replacement, setiap sistem operasi
mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan
yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi dengan
menjalankannya pada string tertentu dari memory reference dan menghitung jumlah
page fault. String yang mengacu ke memori disebut reference string(string acuan).
String acuan dibangkitkan secara random atau dengan menelusuri sistem dan menyimpan alamat dari memori acuan.
5. ALGORITMA PAGE REPLACEMENT
Algoritma Page Replecement atau yang disebut dengan algoritma pergantian page diartikan sebagai algoritma yang berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement ini menggunakan modify bit untuk mengurangi overhead transfer page, dimana modifikasi dilakukan hanya pada page yang di tulis di disk. Algoritma Page Replecement melengkapi pemisahan antara memory logik dan fisik, dimana virtual memory yang besar dapat memenuhi kebutuhan memory fisik yang kecil atau yang disebut dengan sumberdaya yang terbatas.
Algoritma Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti:
a. Algoritma FIFO (First In First Out) adalah sebuah algoritma yang mempunyai cara kerja mengganti page yang menempati memory paling lama.
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.
b. Algoritma Optimal adalah sebuah algoritma yang mempunyai cara kerja mengganti page yang tidak akan digunakan pada periode berikutnya dengan melihat jauh referensi berapa page tersebut akan tampil kembali.
Pengertian dari algoritma ini sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip dari algoritma ini sangat efisien sekali karena hanya mengganti halaman yang sudah tidak terpakai lagi dalam jangka waktu lama sehingga page fault yang terjadi akan berkurang dan terbebas dari anomali Belady Selain itu juga page fault dari algoritma ini memiliki rate paling tinggi dari algoritma lainnya dari semua kasus, akan tetapi tidak belum bias disebut sempurna karena sulit untuk di mengerti dan dari segi system pun belum tentu bisa mengetahui page untuk berikutnya tetapi dapat di simulasikan hanya untuk suatu program. Untuk intinya gunakanlah hingga mendekati page optimal agar bisa memanfaatkannya.
c. Algoritma Least Recently Use (LRU) adalah sebuah algoritma yang mempunyai cara kerja mengganti page yang menempati periode waktu paling lama belum digunakan atau belum diakses.
Dikarenakan algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah algoritma lain yangperformance-nya mendekati algoritma optimal dengan sedikitcost 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 costmembesar, karena harus meng-update linked list tiap saat ada halaman yang di akses.
6. PENGALOKASIAN FRAME
Frame adalah tempat untuk membawa halaman dengan intruksi-intruksinya. Alokasi frame berhubungan dengan mekanisme alokasi sejumlah memori bebas yang tetap diantara beberapa proses. Meskipun terdapat beberapa variasi pengalokasian frame bebas ke beberapa proses, tetapi strategi dasar jelas yaitu : proses user dialokasikan untuk sembarang frame bebas.
Jumlah minimum frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang tersedia. Jumlah minimum frame ditentukan oleh arsitekturinstruction-set. Bila terjadi page fault sebelum eksekusi intruksi selesai,intruksi harus di-restart. Sehingga tersedia frame yang cukup untuk membawa semua page yang berbeda dimana sembarang intruksi dapat mengacu. Misalnya mikrokomputer menggunakan memori 128K yang dikomposisikan dengan page ukuran 1K, maka terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka 93 frame bisa digunakan program user. Bila suatu program menyebabkan page fault sebanyak 93 kali, maka menempati 93 frame bebas tersebut. Jika terjadi page fault yang ke 94, dari 93 frame yang terisi harus dipilih salah satu untuk diganti yang baru. Bila program selesai, 93 frame tersebut dibebaskan kembali.Terdapat 2 bentuk algoritma alokasi yaitu equal allocation dan proportional allocation. Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frame yang sama (m/n frame). Pada proportional allocation setiap porses dialokasikan secara proporsional berdasarkan ukurannya.
a) Algoritma Pengalokasian
yaitu equal allocation dan proportional allocation. Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frameyang sama (m/n frame). Pada proportional allocation setiap proses dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual memori untuk proses piadalah si dan total jumlah frame yang tersedia m. Selain itu terdapat algoritma alokasi berprioritas yang menggunakan skema proporsional dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai nomor prioritas terendah.
b) Algoritma global dan local
Faktor penting lain dalam cara-cara pengalokasianframe ke berbagai proses adalah penggantian halaman. Dengan proses-proses yang bersaing mendapatkan frame, kita dapat mengklasifikasikan algoritma penggantian halaman kedalam dua kategori broad: Penggantian Global dan Penggantian Lokal. Penggantian Global memperbolehkan sebuah proses untuk menyeleksi sebuah frame pengganti dari himpunan semua frame, meski pun frame tersebut sedang dialokasikan untuk beberapa proses lain; satu proses dapat mengambil sebuah frame dari proses yang lain. Penggantian Lokal mensyaratkan bahwa setiap proses boleh menyeleksi hanya dari himpunan frame yang telah teralokasi pada proses itu sendiri.
Untuk contoh, pertimbangkan sebuah skema alokasi dimana kita memperbolehkan proses berprioritas tinggi untuk meyeleksi frame dari proses berprioritas rendah untuk penggantian. Sebuah proses dapat menyeleksi sebuah pengganti dari frame-nya sendiri atau dari frame-frame proses yang berprioritas lebih rendah. Pendekatan ini memperbolehkan sebuah proses berprioritas tinggi untuk meningkatkan alokasi frame-nya pada expense proses berprioritas rendah.
Dengan strategi Penggantian Lokal, jumlah frame yang teralokasi pada sebuah proses tidak berubah. Dengan Penggantian Global, ada kemungkinan sebuah proses hanya menyeleksi frame-frame yang teralokasi pada proses lain, sehingga meningkatkan jumlah frame yang teralokasi pada proses itu sendiri (asumsi bahwa proses lain tidak memilihframe proses tersebut untuk penggantian).
Masalah pada algoritma Penggantian Global adalah bahwa sebuah proses tidak bisa mengontrol page-fault-nya sendiri. Himpunan halaman dalam memori untuk sebuah proses tergantung tidak hanya pada kelakuan paging dari proses tersebut, tetapi juga pada kelakuan paging dari proses lain. Karena itu, proses yang sama dapat tampil berbeda (memerlukan 0,5 detik untuk satu eksekusi dan 10,3 detik untuk eksekusi berikutnya) due to totally external circumstances. Dalam Penggantian Lokal, himpunan halaman dalam memori untuk sebuah proses hanya dipengaruhi kelakuan paging proses itu sendiri. Penggantian Lokal dapat menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses lain, menggunakan halaman yang lebih sedikit pada memori. Jadi, secara umum Penggantian Global menghasilkan sistem throughput yang lebih bagus, maka itu artinya metode yang paling sering digunakan.
7. TRASHING
Trashing adalah suatu proses yang sibuk melakukan swap page in dan out. Jika suatu proses tidak mempunyai page yang cukup, tingkat page fault menjadi tinggi. Hal tersebut dapat dilihat dari :
1. Sistem Operasi meningkatkan multiprogramming
2. Utilisasi CPU meningkat sejalan dengan bertambahnya multiprogramming
3. Proses lain ditambhakan ke dalam system
Jika suatu proses tidak memiliki frame yang cukup, walau pun kita memiliki kemungkinan untuk mengurangi banyaknya frame yang dialokasikan menjadi minimum, tetap ada halaman dalam jumlah besar yang memiliki kondisi aktif menggunakannya. Maka hal ini akan mengakibatkan kesalahan halaman. Pada kasus ini, kita harus mengganti beberapa halaman menjadi halaman yang dibutuhkan walau pun halaman yang diganti pada waktu dekat akan dibutuhkan lagi. Hal ini mengakibatkan kesalahan terus menerus.
Aktivitas yang tinggi dari paging disebut thrashing. Suatu proses dikatakan thrashing jika proses menghabiskan waktu lebih banyak untuk paging daripada eksekusi (proses sibuk untuk melakukan swap-in swap-out).
Penyebab Thrashing
Penyebab dari thrashing adalah utilisasi CPU yang rendah. Jika utilisasi CPU terlalu rendah, kita menambahkan derajat darimultiprogramming dengan menambahkan proses baru ke sistem.
Sejalan dengan bertambahnya derajat dari multiprogramming, utilisasi CPU juga bertambah dengan lebih lambat sampai maksimumnya dicapai. Jika derajat dari multiprogramming ditambah terus menerus, utilisasi CPU akan berkurang dengan drastis dan terjadi thrashing. Untuk menambah utilisasi CPU dan menghentikan thrashing, kita harus mengurangi derajat dari multiprogramming.
Daftar Pustaka:
http://zaherarifka.blogspot.co.id/2015/04/virtual-memory-rz.html
Tidak ada komentar:
Posting Komentar