Monthly Archives: January 2016

Sistem Operasi Pertemuan 11

Session 21 & 22 – Virtual Memory

Definisi Virtual Memory
–  Adalah teknik pemetaan memori yang melibatkan memori sekunder, umumnya disk.
–  Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan     memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas
–  Jika program akan dieksekusi , maka program tersebut harus ada di memori, tapi kenyataannya ada program dalam memori yang tidak segera digunakan, sehingga perlu membatasi program yang tidak sedang digunakan mengingat kapasitas memori terbatas
–  Secara sistem logika, ukuran memori lebih besar daripada ukuran memori utama secara fisik.
–  Melibatkan mekanisme swapping

pemetaan memori

Program-program yang sudah tidak digunakan lagi, antara lain :
– Program-program pengendali error
– Array, list atau tabel yang dialokasikan melebihi kapasitas yang digunakan
– Program dibatasi oleh memori fisik
– Beberapa pilihan program yang jarang digunakan
– Hanya sedikit I/O yang digunakan pada saat load atau swap tiap-tiap user program ke memori

Keuntungan Model Virtual Memori
– Lebih sedikit memori yang diperlukan per proses.
– Berkurangnya proses I/O yang dibutuhkan
– System response menjadi lebih cepat, karena tidak semua bagian image proses perlu dialokasikan ke memori utama.
– Proses dapat dieksekusi lebih cepat.
– Lebih banyak proses yang dapat dijalankan multiprogramming
– Memori virtual melebihi daya tampung dari memori utama yang tersedia

Konsep Dasar
– Memori virtual diimplementasikan dalam sistem multiprogramming
• Misal 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb, tiap program dialokasikan 256 Kb dan bagian-bagian proses masuk (swap in) begitu diperlukan dan swap out jika tidak diperlukan, shg sistem multiprogramming menjadi lebih efisien
– Image proses akan diinisialisasi di area swap space, yaitu suatu lokasi di media penyimpan sebagai ekstensi memori utama.
– Swap space dapat berupa suatu berkas atau partisi khusus, dan unit terkecilnya disebut page.
– Pengalihan page dari swap space ke memori utama menggunakan teknik lazy swapper, yaitu hanya page proses yang dibutuhkan yang akan dialihkan ke memori utama.

pemetaan media penyimpanan

Memori virtual dapat dilakukan dengan 2 cara:
– Demand Paging (Permintaan pemberian halaman)
– Demand Segmentation (Permintaan segmentasi)

Demand Paging

mekanisme demand paging
– Sistem demand paging sama halnya dengan sistem paging dengan swapping
– Proses-proses tersebut disimpan ke memori sekunder, jika proses akan dieksekusi maka dipindah ke memori
– Sebuah page tidak pernah ditukar ke memori kecuali page diperlukan
– Jumlah frame di memori utama tergantung tingkat multiprogramming .
– Semakin tinggi tingkat multiprogramming, semakin sedikit jatah frame untuk tiap proses
– Menggunakan bit valid/invalid di page table. Misal: bit 1 berada di memori utama, bit 0 berada di swap space
– Jika berstatus invalid, maka trap page faultakan dibangkitakan agar ditangani lebih
lanjut oleh rutin SO yaitu: page fault handler.
– Rutin page fault handler akan menangani operasi swap-in terhadap page yang
diperlukan.

Langkah-langkah swap-in :
– Mencari frame memori utama yang kosong. Jika tidak ada dipilih salah satu page dalam frame (victim page) untuk di swap-out.
– Swap-in
– Memperbarui rekaman di page table
– Mengubah validation=1
– Restart.

Keuntungan demand paging :
– Sedikit I/O yang dibutuhkan
– Sedikit memori yang dibutuhkan
– Respon yang lebih cepat
– Dapat melayani banyak user

Demand Paging butuh perangkat keras :
– Page table “valid-invalid bit”
• Valid (“1”) -> pages berada di memori
• Invalid (“0”) -> pages berada di disk
– Memori sekunder, untuk menyimpan proses yang belum ada di memori
Jika suatu proses menginginkan page, namun page tersebut belum ada pada memori utama, maka akan terjadi page fault

Cara-cara untuk mengatasi page fault:
– Mengecek tabel internal (biasanya tersimpan dalam PCB) untuk menentukan bit referensi valid atau invalid
– Jika referensi invalid, maka proses dihentikan,jika valid tapi proses belum dikenali maka page tersebut akan dikenali kemudian cari frame kosong
– Dilakukan penjadwalan operasi disk untuk membaca pageyang diinginkan ke lokasi frame yang baru
– Jika pembacaan disk sudah selesai, maka internal table diperbaiki (ubah validation bit menjadi “1” yang berarti page telah ada di memori)
– Ulangi instruksinya dari awal

mekanisme penanganan fault

Pada berbagai kasus, ada 3 komponen yang dihadapi pada saat melayani page fault :
– Melayani interupsi page fault
– Membaca page
– Mengulang kembali proses

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.

Gambar dibawah menunjukkan jika proses user dieksekusi, maka akan timbul page fault.Padahal sudah tidak ada memori yang kosong, sehingga perlu adanya page replacement

pagefault

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

Langkah-langkah Page replacement :

langkahPR

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

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

algoritma page replacement

Ada beberapa Algoritma Page Replacement :
a.  Algoritma FIFO
b.  Algoritma Optimal
c.  Algoritma LRU
d.  Algoritma Clock

a. Algoritma FIFO

algoritma fifo
– Merupakan algoritma yang paling sederhana
– Jika ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan

b. Algoritma Optimal

algortima optimal
– Mengganti page yang tidak digunakan dalam waktu dekat
– Mempunyai rata-rata page fault terendah
– Algoritma ini sulit diimplementasikan

c. Algoritma LRU (Least Recently Use)

algoritma lru
– Merupakan perpaduan dari FIFO dan optimal
– Page yang diganti adalah page yang telah lama tidak digunakan

d. Algoritma Clock

algoritma clock
– Algoritma Clock menggunakan prinsip Second-Chance tapi dengan antrian yang berbentuk melingkar
– Pada antrian ini terdapat pointer yang menunjuk ke halaman yang paling lama berada di antrian.
– Ketika terjadi kesalahan halaman, halaman yang ditunjuk oleh pointer akan diperiksa bit acuannya seperti pada Second-Chance.
– Jika bit acuan = 0, halaman tersebut akan langsung diganti. Jika bit acuan = 1, bit acuannya diubah menjadi 0 dan pointer akan bergerak searah jarum jam ke halaman yang berada di sebelahnya.

Alokasi 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.

 

www.binus.ac.id

www.skyconnectiva.com