MAKALAH
VIRTUAL MEMORY
Disusun oleh :
DENNY ANDRIAN 11116823
FINSYEN ILHAM ERDI 12116843
PRAYOGA DWI PANGESTU 15116787
RICHARD CAMBRESS HANSPADAR 16116313
RANDY MUWARDANI 16116062
FAKULTAS ILMU KOMPUTER
DAN TEKNOLOGI INFORMASI
SISTEM INFORMASI
UNIVERSITAS GUNADARMA
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Virtual memory adalah bagian yang terkait erat dengan unit-unit
operasional dan interkoneksi antar komponen penyusun sistem sistem komputer dalam merealisasikan aspek arsitekturalnya. Komputer sendiri adalah sebuah mesin elektronik yang secara cepat
menerima informasi masukan digital dan mengolah informasi tersebut menurut seperangkat instruksi yang tersimpan dalam komputer dan
menghasilkan keluaran informasi yang dihasilkan setelah diolah.
Terdapat
hal-hal yang akan diketahui pada Virtual memory diantaranya : Penegrtian
virtual memory, Page Replacement , Algoritma page replacement, Algoritma fifo,
Algoritma optimal, Algoritma least recently use(LRU), Alokasi frame, Alokasi
global, Alokasi lokal, Trashing. Virtual memory sangat penting dalam sistem
operasi, dimana berfungsi sebagai penghubung antara memory utama dengan
penyimpanan piringan atau harddisk .
1.2 RUMUSAN MASALAH
1. Apa yang dimaksud dengan virtual memori ?
2. Apa saja fungsi Virtual Memori ?
3. Apa yang dimaksud dengan Demand Paging ?
4. Menjelaskan apa yang dimaksud dengan Page
Replacement.
1.3 TUJUAN
Supaya pembaca dapat memahami penggunaan virtual memori sebagai
pelengkap memori kerja dan mengerti tentang fungsi memori semu (Virtual Memori)
serta paging dan segmentasi.
BAB II
PEMBAHASAN
2.1 Virtual memori
Dalam ilmu komputer, memory virtual adalah teknik manajemen memory yang dikembangkan untuk kernel multi tugas. Teknik ini divirtualisasikan dalam
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 dan OS/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.
Memory 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.
2.2 Konsep dasar memori virtual
Manajemen memori pada intinya adalah
menempatkan 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 adalah: 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 tabel.
Pada memori berkapasitas besar, hal-hal ini tidak akan menjadi
masalah. Akan tetapi, pada memori yang sangat terbatas, hal ini akan menurunkan
optimalisasi utilitas dari ruang memori fisik. Sebagai solusi dari
masalah-masalah ini digunakanlah konsep memori virtual.
Memori virtual adalah suatu teknik yang memisahkan antara memori logis
dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari
user dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang
tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di
memori logis. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik,
memori virtual dapat menampung program dalam skala besar, melebihi daya tampung
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 sistem tanpa menggunakan memori virtual.”
Konsep memori virtual pertama kali
dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di
Universitas Manchester, Inggris (Hariyanto, Bambang : 2001). Sebagaimana
dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori
fisik. Hal ini memberikan keuntungan yaitu:
- 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.
- Space 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 user yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari user .
Gagasan utama
dari memory
virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori
fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang
digunakan di memori fisik ( main memory ) dan sisanya diletakkan di disk.
Begitu 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 bagian disk yang diperlukan itu.
Memori virtual
diimplementasikan dalam sistem multi programming. Misalnya: 10 program dengan
ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program
dialokasikan 256 KByte dan bagian-bagian proses swap in ) masuk ke dalam memori
fisik begitu diperlukan dan akan keluar ( swap out ) jika sedang tidak
diperlukan. Dengan demikian, sistem multi programming menjadi lebih efisien.
Memory virtual dapat dilakukan melalui dua cara:
- Permintaan pemberian halaman ( demand paging )
- Permintaan segmentasi ( demand segmentation ). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karena itu jarang diimplementasikan.
2.3 Unjuk Kerja Demand Paging
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 faut.
4. Memeriksa page acuan legal atau tidak dan menentukanlokasi page pada disk.
5. Membaca dari disk ke frame bebas :
a. Menunggu diantrian 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.
2.4 Page
Replacement
Page Replacement
diperlukan pada saat dimana proses dieksekusi perlu frame bebas tambahan tetapi
tidak tersedia frame bebas.
KonsepPage
Replacement :
– Jika tidak ada frame yang kosong, cari frame yang tidak sedang digunakan, lalu kosongkan dengan cara menuliskanisinya ke dalam swap space, dan mengubah semua table sebagai indikasi bahwa page tersebut tidak akan berada lama di memori.
– Jika tidak ada frame yang kosong, cari frame yang tidak sedang digunakan, lalu kosongkan dengan cara menuliskanisinya ke dalam swap space, dan mengubah semua table sebagai indikasi bahwa page tersebut tidak akan berada lama di memori.
Gambar dibawah
menunjukkan jika proses user dieksekusi, maka akan timbul page fault.Padahal
sudah tidak ada memori yang kosong, sehingga perlu adanya page replacement
Rutinitas Page
replacement :
– Tentukan lokasi page yang diharapkan pada disk
– Carilahframe kosong
– Jika adaframe kosong, gunakan
– Jika tidak ada, gunakan algoritma page replacement untukmenyeleksi frame yang akan dikorbankan
– Simpan page yang dikorbankan ke disk, ubah page dan frame table secara berurutan
– Baca page yang diinginkan ke frame kosong; ubahpage dan frame table
– Mulai kembali user process
– Tentukan lokasi page yang diharapkan pada disk
– Carilahframe kosong
– Jika adaframe kosong, gunakan
– Jika tidak ada, gunakan algoritma page replacement untukmenyeleksi frame yang akan dikorbankan
– Simpan page yang dikorbankan ke disk, ubah page dan frame table secara berurutan
– Baca page yang diinginkan ke frame kosong; ubahpage dan frame table
– Mulai kembali user process
Secara umum,
algoritma dapat dibagi dua:
– Global Replacement -> Victim frame dapat dipilih dari semua frame yang ada
– Local Replacement -> Victim frame dapat dipilih dari frame-frame yang sedang ditempati oleh image proses bersangkutan
– Global Replacement -> Victim frame dapat dipilih dari semua frame yang ada
– Local Replacement -> Victim frame dapat dipilih dari frame-frame yang sedang ditempati oleh image proses bersangkutan
Algoritma Page
Replacement
– Selama jumlah frame meningkat, maka jumlah page fault akan menurun. Peningkatan jumlah frame dapat terjadi jika memori fisik diperbesar
– Tujuan Algoritma Page Replacement adalah untuk mendapatkan page fault terendah
– Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat page fault sehingga proses akan berjalan lambat
– Selama jumlah frame meningkat, maka jumlah page fault akan menurun. Peningkatan jumlah frame dapat terjadi jika memori fisik diperbesar
– Tujuan Algoritma Page Replacement adalah untuk mendapatkan page fault terendah
– Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat page fault sehingga proses akan berjalan lambat
Ada beberapa
Algoritma Page Replacement :
a. Algoritma FIFO
b. Algoritma Optimal
c. Algoritma LRU
d. Algoritma Clock
a. Algoritma FIFO
b. Algoritma Optimal
c. Algoritma LRU
d. Algoritma Clock
a. Algoritma
FIFO
– Merupakan
algoritma yang paling sederhana
– Jika ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan
– Jika ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan
b. Algoritma
Optimal
– Mengganti page
yang tidak digunakan dalam waktu dekat
– Mempunyai rata-rata page fault terendah
– Algoritma ini sulit diimplementasikan
– Mempunyai rata-rata page fault terendah
– Algoritma ini sulit diimplementasikan
c. Algoritma
LRU (Least Recently Use)
– Merupakan
perpaduan dari FIFO dan optimal
– Page yang diganti adalah page yang telah lama tidak digunakan
– Page yang diganti adalah page yang telah lama tidak digunakan
Pengalokasian
Frame
– Pengalokasian tiap-tiap proses bervariasi tergantung pada tingkat multiprogramming
– Jika tingkat multiprogramming nya semakin tinggi, maka proses akan kehilangan beberapa frame
– Sebaliknya jika tingkat multiprogramming berkurang, maka proses akan mendapat
frame melebihi dari yang dibutuhkan.
Jenis Alokasi
Frame :
– Alokasi sama rata (equal allocation) ->Tiap proses mendapat jumlah frame sama banyak
– Alokasi proporsional (proporsional allocation) -> Tiap proses mendapat jumlah frame sesuai dengan besarnya image proses itu.
– Alokasi berprioritas (priority allocation) ->Jumlah frame yang dialokasikan untuk tiap proses berdasarkan prioritas.
– Alokasi sama rata (equal allocation) ->Tiap proses mendapat jumlah frame sama banyak
– Alokasi proporsional (proporsional allocation) -> Tiap proses mendapat jumlah frame sesuai dengan besarnya image proses itu.
– Alokasi berprioritas (priority allocation) ->Jumlah frame yang dialokasikan untuk tiap proses berdasarkan prioritas.
BAB3
RANGKUMAN
Konsep memori
virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan
menggunakan dynamic storage allocation pada sistem komputer atlas di
Universitas Manchester.
Memori virtual
adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan
memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia
memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori
fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan
pemrograman.
DAFTAR ISTILAH
I/O : input
output, adalah Unit input adalah (masukan) unit luar yang digunakan untuk
memasukkan data, unit output (keluaran) biasanya digunakan untuk menampilkan
data
CPU : Central
Processing Unit
Program : kata, ekspresi, atau pernyataan yang
disusun dan dirangkai menjadi satu kesatuan prosedur, yang berupa urutan
langkah, untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan
bahasa pemrograman sehingga dapat dieksesuksi oleh komputer.
OS : Endless Computers merilis sistem operasi
Endless OS untuk pasar Indonesia. Sistem operasi ini telah
dipasang secara pre-installed dalam laptop Asus dan Acer untuk pemasarannya.
Endless OS adalah sistem operasi yang bisa digunakan untuk
bekerja dan bermain.
Proteksi :
perlindungan
User : user
merupakan Pengguna. Biasanya ditujukan kepada pengguna suatu sistem yang
umumnya adalah manusia.
Abort :
Menghentikan
DAFTAR PUSTAKA