MEMORI VIRTUAL Sistem Operasi – TIKB1023 Munengsih Sari Bunga Politeknik Indramayu TIKB1023/Sistem Operasi/MSB 1 Materi: 1. 2. 3. 4. 5. Konsep dasar memori virtual Demand Paging Unjuk Kerja Demand Paging Page Replacement Algoritma Page Replacement - Algoritma FIFO - Algoritma Optimal - Algoritma LRU TIKB1023/Sistem Operasi/MSB 2 Konsep Dasar Memori Virtual (1) z Memori virtual adalah teknik yang memisahkan memori lojik dan memori fisik. z Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas z 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 TIKB1023/Sistem Operasi/MSB 3 Konsep Dasar Memori Virtual (2) z 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 z Keuntungan memori virtual : { Berkurangnya proses I/O yang dibutuhkan { Berkurangnya memori yang dibutuhkan { Bertambahnya jumlah user yang dapat dilayani { Memori virtual melebihi daya tampung dari memori utama yang tersedia TIKB1023/Sistem Operasi/MSB 4 Konsep Dasar Memori Virtual (3) z Skema Virtual Memori • Memori Virtual > memori fisik TIKB1023/Sistem Operasi/MSB 5 Konsep Dasar Memori Virtual (4) z 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 z Memori virtual dapat dilakukan dengan 2 cara: { Demand Paging (Permintaan pemberian halaman) { Demand Segmentation (Permintaan segmentasi) TIKB1023/Sistem Operasi/MSB 6 Demand Paging (1) z Sistem demand paging sama halnya dengan sistem paging dengan swapping z Proses-proses tersebut disimpan ke memori sekunder, jika proses akan dieksekusi maka dipindah ke memori z Sebuah page tidak pernah ditukar ke memori kecuali page diperlukan z Keuntungan demand paging : { Sedikit I/O yang dibutuhkan { Sedikit memori yang dibutuhkan { Respon yang lebih cepat { Dapat melayani banyak user TIKB1023/Sistem Operasi/MSB 7 Demand Paging (2) z Demand Paging butuh perangkat keras : {Page table “valid-invalid bit” z Valid (“1”) Æ pages berada di memori z Invalid (“0”) Æ pages berada di disk {Memori sekunder, untuk menyimpan proses yang belum ada di memori z Jika suatu proses menginginkan page, namun page tersebut belum ada pada memori utama, maka akan terjadi page fault TIKB1023/Sistem Operasi/MSB 8 Demand Paging (3) z 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 page yang 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 z Pada berbagai kasus, ada 3 komponen yang dihadapi pada saat melayani page fault : { Melayani interupsi page fault { Membaca page { Mengulang kembali proses TIKB1023/Sistem Operasi/MSB 9 Unjuk Kerja Demand Paging (1) z Demand Paging memiliki efek yang sangat penting bagi unjk kerja sistem komputer. z Untuk menunjukkan hal tersebut, dapat dilihat dengan cara menghitung effective access time untuk memori yang menggunakan konsep demand paging, dengan rumus : EAT = (1-p) x ma + p x waktu page fault p : kemungkinan terjadinya page fault (0 ≤ p ≤ 1) p = 0 Æ tidak ada page-fault p = 1 Æ semuanya mengalami page-fault ma : waktu pengaksesan memory (memory access time) z Untuk menghitung EAT, kita harus tahu berapa banyak waktu dalam pengerjaan page-fault. TIKB1023/Sistem Operasi/MSB 10 Unjuk Kerja Demand Paging (2) z Contoh menghitung Effective Access Time : { Diasumsikan memory access (ma)= 100 ns { Rata-rata latency time untuk HD = 8 ms, seek time = 15 ms, dan transfer rate = 1 ms Æ total waktu pelayanan page fault = 25 ms { Effective Access Time = (1-p) x (100) + p x (25 ms) = (1-p) x (100) + p x 25000000 = 100 – 100p + 25000000p = 100 + 24999900 x p Jika sekali akses menyebabkan 1000 page fault, effective access time sebesar 25 mikrodetik z Semakin besar nilai effective access time, maka proses berjalan semakin lambat TIKB1023/Sistem Operasi/MSB 11 Page Replacement (1) zPage Replacement diperlukan pada saat dimana proses dieksekusi perlu frame bebas tambahan tetapi tidak tersedia frame bebas zKonsep Page Replacement : {Jika tidak ada frame yang kosong, cari frame yang tidak sedang digunakan, lalu kosongkan dengan cara menuliskan isinya ke dalam swap space, dan mengubah semua tabel sebagai indikasi bahwa page tersebut tidak akan berada lama di memori TIKB1023/Sistem Operasi/MSB 12 Page Replacement (2) z Gambar dibawah menunjukkan jika proses user dieksekusi, maka akan timbul page fault.Padahal sudah tidak ada memori yang kosong, sehingga perlu adanya page replacement TIKB1023/Sistem Operasi/MSB 13 Page Replacement (3) zRutinitas Page replacement : {Tentukan lokasi page yang diharapkan pada disk {Carilah frame kosong zJika ada frame kosong, gunakan zJika tidak ada, gunakan algoritma page replacement untuk menyeleksi frame yang akan dikorbankan zSimpan page yang dikorbankan ke disk, ubah page dan frame table secara berurutan {Baca page yang diinginkan ke frame kosong; ubah page dan frame table {Mulai kembali user process TIKB1023/Sistem Operasi/MSB 14 Page Replacement (4) z Langkah-langkah Page replacement : TIKB1023/Sistem Operasi/MSB 15 Algoritma Page Replacement (1) z Selama jumlah frame meningkat, maka jumlah page fault akan menurun. Peningkatan jumlah frame dapat terjadi jika memori fisik diperbesar z Tujuan Algoritma Page Replacement adalah untuk mendapatkan page fault terendah z Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat page fault sehingga proses akan berjalan lambat z Ada beberapa Algoritma Page Replacement : {Algoritma FIFO {Algoritma Optimal {Algoritma LRU TIKB1023/Sistem Operasi/MSB 16 Algoritma Page Replacement (2) z Algoritma FIFO { Merupakan algoritma yang paling sederhana { Jika ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan z Algoritma Optimal { Mengganti page yang tidak digunakan dalam waktu dekat { Mempunyai rata-rata page fault terendah { Algoritma ini sulit diimplementasikan z Algoritma LRU (Least Recently Use) { Merupakan perpaduan dari FIFO dan optimal { Page yang diganti adalah page yang telah lama tidak digunakan TIKB1023/Sistem Operasi/MSB 17