Modul-10 Virtual Memory

44
Virtual Memory Virtual Memory

description

Virtual Memory

Transcript of Modul-10 Virtual Memory

  • Virtual Memory

  • PembahasanOverviewDemand Paging

  • OverviewKonsep manajemen memori sebelumnya :Me-maintain banyak proses yang running dalam memori secara multiprogrammingProses berada dalam memori fisik sebelum dieksekusiDalam overlaying user harus men-dekomposisi struktur program dalam algoritmanya dan menspesifikasi modul-modul overlaynya

  • OverviewIsi program :Algoritma utama yang aktif mengolah dataPenanganan kondisi error (exceptional condition) yang amat jarang terjadiStruktur data dynamic allocated yang terpakai secara efektifStruktur data fixed allocated yang biasanya hanya sebagian yang digunakanModul-modul tertentu yang jarang digunakan

  • OverviewKeuntungan jika tidak semua bagian tersebut ada di memori (hanya bagian yang paling aktif) :Program tidak terkendalakan oleh jumlah memori fisik ; program bisa amat besarProgram-program pengendali error (error handling) jarang digunakan.Array, list atau tabel yang dialokasikan melebihi kapasitas yang digunakan.Program-program yang dijalankan belakangan.Lebih banyak program yang dapat running secara konkuren di memori; utilisasi CPU meningkatLebih sedikit I/O untuk loading/swapping ; program user lebih cepat

  • OverviewKonsep Virtual MemoryMelihat memori sebagai cache dan disk sebagai memoriImplementasi dengan demand paging : bagian program berada dalam memori adalah page-page yang sesuai dengan kebutuhanDapat diimplementasikan melalui :Demand pagingDemand segmentation (page segmentasi)

  • Diagram Virtual Memory lebih besar dari Physical Memory

  • Demand PagingSama dengan teknik paging dengan swappingProses berada dalam secondary storage (biasanya disk) yang terbagi dalam sejumlah pageUntuk dapat dieksekusi maka page proses yang diperlukan harus ada di memoriJika belum ada maka page di-swap in (dalam hal ini swapper lebih tepat disebut pager, swap-in/out menjadi page-in/out)

  • Demand Paging Virtual Memory - Physical MemoryDemand pageApakah page di memori ?Ada, lalu aksesTidak ada, maka page di loadSwap page

  • Demand PagingPertanyaan saat page-in :Page mana yang akan di page-out ?Apakah frame yang akan ditempati kosong ?Jika suatu page yang di page-out merupakan data, perlu / tidak page di storage di-refresh ?

  • Demand PagingPeriksa tabel internal (biasanya pada PCB = process control block) apakah referensi valid/invalidBila valid tapi belum ada maka di page-inJika invalid, maka batalkan proses

  • Transfer of a Paged Memory to Contiguous Disk Space

  • Dukungan HardwarePage table : tabel memiliki valid/invalid bit serta bit proteksi khususSecondary memory : memori yang menyimpan seluruh page (biasanya disk)Dikenal sebagai swap device dan bagian disk yang digunakan untuk swap disebut swap space (backing store)

  • Valid-Invalid BitMasing-masing entry page table memiliki nilai :(1 in-memory, 0 not-in-memory)Inisialisasi validinvalid bit di-set 0 untuk semua entry page tableContoh page table :

    Selama translasi address, jika validinvalid bit dalam page table adalah 0 page fault.

  • Page Table When Some Pages Are Not in Main Memory

  • Dukungan SoftwareKendala arsitektur : kemampuan me-restart instruksi setelah terjadi page-faultPage fault bisa terjadi pada :Memory (data) referenceInstruction fetch

  • Contoh :Instruksi 3 address ADD C, A, B dilakukan dalam beberapa tahap :Fetch instruksi ADDFetch data A ke dalam register RaFetch data B ke dalam register RbAdd Ra dan Rb dan hasilnya di register RcStore hasil Rc ke CPage fault terjadi pada salah satu tahap memerlukan pengulangan dari awal

  • Steps in Handling a Page Fault

  • Apa yang terjadi jika tidak ada frame yang kosong ?Page replacement temukan page dalam memori, tetapi tidak sedang digunakan, swap-out page tersebutAlgoritma yang digunakanPerformance algoritma yang digunakan adalah yang menghasilkan jumlah minimum page fault

  • Performance Demand PagingRasio Page Fault 0 p 1.0if p = 0 no page faults if p = 1, every reference is a fault Effective Access Time (EAT)EAT = (1 p) x memory access time+ p (page fault overhead+ [swap page out ]+ swap page in+ restart overhead)

  • Contoh Demand PagingMemory access time = 1 microsecond (1 sec)50% dari waktu page yang digantikan (replace), membutuhkan swap-outSwap Page Time = 10 msec = 10,000 secEAT = (1 p) x 1 + p (15000) = 1 + 15000p (dalam sec)

    5000 sec overhead

  • Page Replacement PolicyPerformance (page fault ratio) bergantung pada page replace policy agar page fault rate (PFR) sekecil mungkin.Jadi pemilihan policy untuk page replacement sangat kritis terhadap performance sistem keseluruhan.

  • Swap SpaceAspek penting dalam demand paging adalah menangani penggunaan swap space (ruang disk yang digunakan untuk swap)Suatu bagian dalam disk dijadikan swap space (di luar sistem file) sebagai penyimpan virtual memory

  • Over-Allocating MemoryPeningkatan degree of multiprogramming akan sampai pada situasi Over Allocating MemorySaat terjadi page-fault & hendak page-in ternyata tidak ada frame kosong tersediaSolusi OS : terminate proses user ? NO.Paging harus transparan bagi user.

  • SolusiThrashing : swap-out suatu proses (penurunan degree of multiprogramming)Page replacement : mencari salah satu frame yang tidak sedang digunakan dan membebaskannyaMenuliskan isi sebelumnya ke swap-spaceMengubah page table dimana page tidak ada di memori

  • Kebutuhan Page Replacement Over-Allocating Memory

  • Page Fault ServiceMenemukan lokasi dari page di dalam diskMenemukan free-frame, jika ada gunakan frame tersebut untuk page yang bersangkutan dan jika tidak ada :Mencari frame yang akan di-replacePage-out frame tersebut ke swap-space dan ubah tabel page & framePage-in page yang diminta ke frame kosong yang baru, serta ubah tabel page & frameMulai kembali ke user proses

  • Page Replacement

  • Dirty bit (Modify-bit)Saat tidak ditemukan frame kosong maka dilakukan dua kali page transfer (in & out)Untuk mengurangi overhead operasi ini digunakan dirty-bit pada setiap page/frame untuk menunjukkan perlu/tidaknya page dalam disk diupdate (telah terjadi modifikasi)Modify bit di-set ketika word/byte dalam page ditulis (write) page telah dimodifikasi.Ketika memilih page untuk di-replace, modify bit dibaca dulu.Jika bit tersebut di-set, maka page tersebut sudah dimodifikasi sejak dibaca di disk write page ke disk.Jika bit tersebut tidak di-set, maka page tersebut belum dimodifikasi sejak dibaca di memory jika copy dari page tersebut di disk belum di overwrite, tidak perlu lagi write page memory ke disk karena sudah ada.

  • Frame Allocation Page ReplacementDua masalah :Frame allocation algorithm : menentukan berapa banyak frame dialokasikan untuk suatu/setiap prosesPage-replacement algorithm : menentukan frame mana yang dipilih untuk di page-outPemilihan algoritma yang tepat sangat penting, karena pemrosesan pada disk I/O costnya mahal (berpengaruh pada effective acces time)

  • Page ReplacementTerdapat banyak skema/algoritmaKriteria pemilihan algoritma yang sesuai : meminimisasi page-fault rateEvaluasi dengan string : string dari aktifitas-aktifitas memory referenceString dari memory reference dinamakan reference stringSecara empiris direkam dari referensi yang terjadi pada running programSecara hipotesis digenerate secara acak (random number generator)Menghitung jumlah page fault pada string tersebut

  • Page Fault vs Jumlah FrameBertambahnya jumlah frame akibat penambahan physical memory space dapat mengurangi PFRTanpa penambahan tersebut maka memperkecil ukuran frame/page yang akhirnya meningkatkan page fault

  • Grafik Page Faults vs Jumlah Frame

  • Page Replacement PolicyAlgoritma First In First Out (FIFO)Algoritma Optimal (OPT)Algoritma Least Recently Used (LRU)Algoritma Second Change (Clock)Algoritma Enhanced Second Change (Clock)Algoritma CountingAlgoritma Page Buffering

  • Reference StringDalam pembahasan algoritma-algoritma reference string disederhanakan dengan deretan page number (bukan address-address referensi)Contoh :0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, dstDigantikan (page size = 100 byte) dengan : 1, 4, 1, 6, 1, 6, dst

  • Algoritma First In First Out (FIFO)Page yang di-replace adalah page yang paling tua (paling lama berada di memory secara terus menerus)Realisasinya setiap page menyimpan data waktu page yang bersangkutan di-page-in atau menggunakan struktur queueMudah di-implementasikan tapi performance tidak selalu baik

  • FIFO Page ReplacementReference string : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1Jumlah frame = 3Page fault terjadi = 15 kali

  • Anomaly BeladyAnomali yang terjadi : PFR naik saat jumlah frame ditingkatkanContoh, jika reference string :1,2,3,4,1,2,5,1,2,3,4,5Jumlah frame = 3, PFR = 9 page faultJumlah frame = 4, PFR = 10 page fault

  • FIFO Illustrating Beladys Anamoly

  • Algoritma Optimal (OPT)Jika diketahui page-page mana yang berikutnya akan diakses, maka page yang tidak akan digunakan dalam waktu dekat (ie. Selang waktu terlama hingga diakses kembali) yang di-replace.Anomali Belady tidak berlakuSecara teoritis paling optimal tapi dalam kenyataannya sulit diimplementasikan

  • Optimal Page ReplacementReference string : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1Jumlah frame = 3Page fault terjadi = 9 kaliPada referensi ke-4 terlihat page 7 akan di-replace dengan page 2, karena page 7 baru akan digunakan pada referensi ke-18, sedangkan page 0 akan digunakan pada referensi ke-5 dan page 1 akan digunakan pada referensi ke-14

  • Algoritma Least Recently Used (LRU)Algoritma LRU merupakan perpaduan antara FIFO dan OPTMengaproksimasi Algoritma OptimalPerkiraan akses yang akan datang (forward information) diestimasi dengan menggunakan informasi akses yang lalu (backward information)Page dalam memori yang paling lama tidak diakses yang di-replaceJika SR = reverse S maka PFR OPT pada S sama dengan PFR LRU pada SR

  • LRU Page ReplacementReference string : 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1Jumlah frame = 3Page fault terjadi = 12 kali

  • END OF MODUL - 10