Sistem Operasi Komputer Pertemuan IX Memori Virtual Memori Virtual Latar belakang Demand paging Unjuk kerja demand paging Page replacement Algoritma page replacement Pengalokasian frame Trashing Universitas Kristen Maranatha -- IT Department
Memori virtual Latar belakang Pemisahan antara memori lojik dan memori fisik dari programprogram yang dipakai user Caching Ruang alamat lojik dapat lebih besar daripada ruang alamat fisik Menambah efektivitas dan utilitas CPU Hanya sebagian dari program yang dibutuhkan dalam memori pada saat eksekusi (penyederhanaan pengelolaan memori) Ruang alamat dapat di-share oleh proses (security dan protection) Dapat diimplementasikan dengan Demand paging Demand segmentation Virtual memori memindahkan (mengcopy) isi RAM yang tidak digunakan ke dalam secondary memory (disk) Penggunaan Kapasitas Memori Universitas Kristen Maranatha -- IT Department 2
Hirarki memori cache virtual memory CPU regs C 8 B a 32 B 4 KB Memory c h e Disk ukuran: kecepatan: $/Mbyte: transfer: Register Cache Memory Disk Memory 32 B ns 8 B 32 KB-4MB 2 ns $25/MB 32 B Lebih besar, lambat, murah 024 MB 30 ns $0.20/MB 4 KB 00 GB 8 ms $0.00/MB Sistem Virtual Memori Memory Virtual Addresses Page Table 0: : Physical Addresses 0: : CPU P-: N-: Disk Universitas Kristen Maranatha -- IT Department 3
Memori virtual > Memori fisik Memori virtual adalah bagian dari memori lojik dari memori fisik Demand paging Konsep sama dengan swapping (sistem paging) Proses disimpan dalam memori sekunder (disk) Jika proses akan dieksekusi, dipindahkan ke memori (lazy swapper) Digunakan valid/invalid bit Valid page yang diperlukan ada dalam memori utama Invalid page yang diperlukan tidak ada dalam memori utama Page dibutuhkan gunakan referensi Referensi invalid hentikan proses Tidak ada di memori bawa ke memori Universitas Kristen Maranatha -- IT Department 4
Transfer page secara contiguous Page fault () Valid / invalid bit Frame # M valid-invalid bit 0 0 page table Mula-mula diset dengan 0, untuk semua entry Pada saat translasi, jika valid/invalid bit menunjukkan 0 page fault, dengan kata lain jika frame yang diinginkan tidak ada di memori virtual 0 0 Universitas Kristen Maranatha -- IT Department 5
Page Fault (2) Sebelum page fault Memory Setelah page fault Memory Virtual Addresses Page Table Physical Addresses Virtual Addresses Page Table Physical Addresses CPU CPU Disk Disk Page tidak ada di memori Universitas Kristen Maranatha -- IT Department 6
. Mengecek tabel internal (biasa tersimpan dalam PCB) untuk menentukan bit referensi valid / invalid 2. Referensi. invalid stop proses 2. valid, dan page belum dikenali panggil ke memori 3. Cari frame kosong 4. Algoritma page replacement 5. Refresh tabel internal 6. Restart instruksi Mengatasi page fault Effective access time () Demand paging turut menentukan kinerja sistem komputer Page Fault Rate 0 p.0 if p = 0 no page faults if p =, every reference is a fault Effective Access Time (EAT): EAT = ( p) x memory access time + p ( page fault overhead + [swap page out ] + [swap page in] + [restart overhead] ) Memory access time (ma), komputer modern antara 0 200 nsec ( nsec = 0-9 sec) Jika tidak ada page fault, maka EAT sama dengan ma Universitas Kristen Maranatha -- IT Department 7
Effective access time (2) Memory access time = µsec = 0-3 msec 50% page telah digunakan dan akan di-swappedout Swap Page Time = 0 msec = 0000 µsec Maka: EAT = ( p) x + p (5000) = + 4900p (dalam µsec) EAT berbanding lurus dengan kecepatan page fault Page Replacement () Virtual Page Number Valid 0 0 0 Memory resident page table (physical page or disk address) Physical Memory Disk Storage (swap file or regular file system file) Universitas Kristen Maranatha -- IT Department 8
Page replacement (2) Memori fisik penuh Page replacement Page replacement (3) Jika sudah tidak ada memori yang kosong, sedangkan proses membutuhkan tempat di memori untuk eksekusi page replacement Page fault dimodifikasi dengan menambahkan page replacement Universitas Kristen Maranatha -- IT Department 9
Algoritma Page Replacement FIFO Optimal Least Recently Use (LRU) Diinginkan page fault rate yang terendah Dijalankan dengan menggunakan urutan referensi memori tertentu, dan menghitung banyaknya page fault rate Algoritma FIFO Posisi page yang paling lama yang digantikan Cara pandang mundur Muncul Belady s Anomaly kecepatan page fault akan bertambah jika frame dalam memori virtual juga bertambah Jumlah page fault = 5 Universitas Kristen Maranatha -- IT Department 0
Ilustrasi FIFO Belady s Anomaly Algoritma Optimal Page yang tidak digunakan dalam waktu dekat akan digantikan Cara pandang maju Jumlah page fault = 9 Universitas Kristen Maranatha -- IT Department
Algoritma LRU Menggantikan page yang baru saja tidak dipakai Gabungan FIFO dan Optimal Stack implementation Referensi page: Page yang menggantikan diletakkan di atas Page yang sudah lama (baru saja tidak dipakai) ada di bawah Jumlah page fault = 2 Pengalokasian Frame Setiap proses butuh jumlah frame minimum yang diperlukan dalam eksekusi Equal allocation Jika disediakan 00 frame (=m) untuk 5 proses (=n), maka tiap proses, mendapat 20 page (=m / n) Proportional allocation Mengalokasikan sesuai dengan ukuran proses Global allocation Proses-proses boleh berkompetisi mengalokasikan page yang dialokasikan kepada dirinya Local allocation Proses hanya dapat mereplace page yang dialokasikan pada dirinya Jumlah page untuk suatu proses tetap Universitas Kristen Maranatha -- IT Department 2
m s s a a 2 2 = 64 = 0 = 27 0 = 37 27 = 37 Proportional allocation si = size of process pi S = si m = total number of pages (frames) si ai = allocation for pi = xm S X 64 X 64 5 59 Trashing Terjadi jika suatu proses sibuk melakukan page replacement terusmenerus (tidak memiliki page yang cukup) dan mengabaikan pemrosesan Efek dari global allocation ( mencuri page (frame) dari proses lain) atau jika jumlah local page melebihi kapasitas memori yang ada Universitas Kristen Maranatha -- IT Department 3
task_struct mm mm_struct pgd mmap Linux VM process virtual memory vm_area_struct vm_end vm_start vm_prot vm_flags shared libraries vm_next 0x40000000 pgd: page directory address vm_prot: read/write permissions for this area vm_flags shared with other processes or private to this process vm_end vm_start vm_prot vm_flags vm_next vm_end vm_start vm_prot vm_flags vm_next data text Linux mengorganisasikan VM sebagai koleksi Area 0x0804a020 0x08048000 0 Win NT/2000: Memory Management App 2 GB Program Address Space App 2 2 GB Program Address Space 2 Virtual Memory Manager 3 Demand Paging RAM App App App 2 App App 2 System Pages 4 Disk Pagefile.sys Virtual Memory Universitas Kristen Maranatha -- IT Department 4
Win 2000: Memory Management Information Total penggunaan virtual memory dari memori fisik (Total VM + Kernel Memory yang dipaged-kan) 2 Limit yang disetujui = jumlah memori fisik tersedia + ukuran total paging yang terjadi 2 Win 2000: Informasi Memori pada Proses Mem Usage = memori fisik yang digunakan proses Note: page yang dishare dihitung pada tiap proses 2 2 VM Size = virtual memori yang tidak dishare (private) 3 Mem Usage total memori yang digunakan (jumlah kolom mem.usage) 3 Universitas Kristen Maranatha -- IT Department 5
Win: Informasi pengelolaan memori System Cache ukuran total memori fisik untuk page, berisi: NtosKrnl.Exe Drivers File system cache 2 Available = jumlah memori fisik yang belum dialokasikan untuk proses 2 Latihan soal (). Apakah yang terjadi jika alamat lojik lebih besar dibandingkan dengan alamat fisik? 2. Jelaskan konsep memori virtual! 3. Apa yang akan dilakukan oleh sistem operasi jika terjadi page fault? 4. Jelaskan konsep page replacement! 5. Mengapa Linux menggunakan memori virtual dalam melakukan manajemen memori? Universitas Kristen Maranatha -- IT Department 6
Latihan soal (2) 6. Diketahui referensi page sebagai berikut:, 2, 3, 4,, 2, 5,, 2, 3, 4, 5 Diasumsikan bahwa proses dijalankan dengan urutan referensi memori di atas. Diasumsikan juga bahwa frame mula-mula kosong. Hitunglah jumlah page fault yang terjadi, apabila diketahui jumlah frame yang tersedia adalah 3. Gunakan algoritma page replacement a) FIFO (First In First Out) b) Optimal c) LRU (Least Recently Used) Universitas Kristen Maranatha -- IT Department 7