Virtual Memory
-Virtual Memory
merupakan teknik manajemen memori yang dikembangkan untuk kernel multitugas. Teknik ini divirtualisasikan dalam berbagai bentuk arsitektur komputer dari komputer penyimpanan data, yang memungkinkan sebuah program harus dirancang seolah-olah hanya ada satu jenis memori, memori virtual, yang bertindak secara langsung beralamat memori baca/tulis
-Virtual Address
Alamat yang dimasukkan ke lokasi pada virtual memory agar lokasi tersebut dapat diakses seolah-olah itu merupakan baggian dari main memory
-Virtual Address Space
Virtual storage yang ditugaskan untuk sebuah proses
-Address Space
Barisan dari memory addresses yang ada untuk sebuah proses
-Real Address
Alamat dari sebuah storage location pada main memory
Perbedaan Antara Real Memory dengan Virtual Memory
-Real Memory
Real Memory merupakan main memory yang berupa RAM
-Virtual Memory
Virtual Memory merupakan memory pada disk dan membuat multiprogramming menjadi lebih efektif
Requirement untuk Virtual Memory
-Hardware harus dapat melakukan paging dan segmentation
-Di dalam OS harus terdapat software untuk mengatur pergerakan pages atau segmentasi diantara secondary memory dan main memory
Paging
-Paging merupakan sistem manajemen pada sistem operasi dalam mengatur program yang sedang berjalan. Program yang berjalan harus dimuat di main memory. Kendala yang terjadi apabila suatu program lebih besar dibandingkan dengan main memory yang tersedia.
Page Table
-Stuktur hirarki Page Table
-Simple Page Table = satu Page Table setiap proses
Inverted Page Table
-Struktur Inverted Page Table
-Disebut inverted karena struktur tersebut memberi index pada page table entries dengan frame number daripada virtual page number
-Page Number yang merupakan bagian dari virtual address dipetakan menjadi sebuah hash value
-Hash value menujuk ke inverted page table
-Bagian yang tetap(fixed) dari real memory dibutuhkan untuk tables tanpa melihat jumlah proses atau virtual pages supported
Transaction Lookaside Buffer
-Untuk mengatasi efek yang muncul dari membuat memory access time menjadi dua kali lipat, special high-speed cache atau lebih dikenal dengan Transaction Lookaside Buffer wajib digunakan
-Setiap virtual memory reference dapat menyebabkan dua akses ke alamat physical memory.Yang satu untuk melakukan fetching page table entry dan yang satu lagi untuk melakukan fetching data atau instruksi selanjutnya
Page Size
-Semakin banyak pages yang dibutuhkan dalam tiap proses, maka ukuran page tables juga semakin besar
-Untuk program yang besar pada lingkungan multiprogramming, beberapa bagian page tables dari proses yang aktif harus berada di dalam virtual memory daripada main memory
Segmentation
-Segmentation memperbolehkan programmer untuk melihat memory sebagai multiple address spaces atau segments
-Simple dalam menangani struktur data yang sedang berkembang
-Dapat merubah program serta dapat dikompile ulang secara independent
-Setiap segment table entry mengandung starting address yang sesuai dengan segment pada main memory dan panjang dari segment itu
-Sebuah bit dibutuhkan untuk menentukan jika segment telah berada di main memory
-Bit-bit yang lain dibutuhkan untuk menentukan jika segment telah diubah sejak berada di main memory
Penggabungan Paging dengan Segmentation
-User address space dipecah menjadi kumpulan segments.Setiap segments dipecah menjadi kumpulan sized pages yang tetap yang sesuai dengan panjang main memory frame
-Segmentation dapat dilihat oleh programmer, sedangkan Paging tidak dapat dilihat oleh programmer
Address Translation
Basic Algorithm untuk replace halaman yang telah diseleksi