Virtual Memory Terminology
Real vs. Virtual Memory
Real Memory = main memory, RAM yang sebenar nya
Virtual Memory = memory di dalam disk
Support yang dibutuhkan oleh Virtual Memory :
- Hardware harus men-support paging dan segmentasi
- Operating System harus mencakup software untuk mengelola pergerakan dari pages (halaman) dan/atau segment di antara memory sekunder dan memory utama (main memory)
Paging
- Istilah virtual memory biasanya selalu berasosiasi dengan sistem yang menggunakan paging
- Penggunaan paging untuk memperoleh virtual memory, pertama kali dilaporkan untuk komputer Atlas
- Setiap proses mempuyai table halaman sendiri
- Setiap entry di table halaman berisikan jumlah frame mengenai halaman yang sesuai di main memory
Address Translation
address translation pada sistem paging
Page Table
- Simple page table : 1 table per proses
- Size merupakan masalah
- Untuk alamat dengan 32-bit, setengah untuk OS, setengah untuk user. Jumlah halaman di dalam proses user adalah 2^32 / ukuran halaman.
- Untuk ukuran page yang 2^10, maka table page akan memiliki entry sebanyak 2^22 per proses
Hierarchical Page Table Structure
Inverted Page Table Structure
- Simple page table, hierarchical page table memerlukan space yang banyak. Setiap proses mempunyai PT sendiri, ukuran dari setiap PT adalah proposional dengan ukuran dari virtual address
- Pendekatan lain : 1 halaman table memetakan semua ke memory. Ukuran page table sudah ditentukan
- Porsi nomor halaman pada virtual address dipetakan ke nilai hash
- Proporsi tetap pada real memory diperlukan untuk table tanpa melihat jumlah dari proses ataupun halaman virtual yang men-support
- Struktur disebut inverted karena meng-index entry halaman table dengan jumlah frame daripada menggunakan jumlah halaman virtual (virtual page)
Transaction Lookaside Buffer (TLB)
- Setiap referensi dari virtual memory dapat membuat 2 memory fisik (physical memory) untuk mengakses :
- 1(satu) untuk mengambil halaman entry table
- 1(satu) untuk mengambil data atau instruksi selanjutnya
- Untuk mengatasi efek dari waktu akses memory yang double (2 kali lipat), rata-rata, skema virtual memory menggunakan cache spesial yang berkecepatan tinggi yang disebut sebagai translation lookaside buffer
Page Size
Semakin kecil ukuran dari sebuah halaman, semakin sedikit jumlah dari fregmentasi internal
- Namun, setiap proses akan memerlukan lebih banyak halaman
- Lebih banyak halaman per proses, maka table halaman akan menjadi lebih besar
- Karakteristik fisik dari setiap perangkat memory sekunder akan menyukai ukuran page yang lebih besar untuk efisiensi pada transfer blok data
Segmentation
Segmentasi mengijinkan programmer untuk melihat memory sebagai yang terdiri dari beberapa address space atau segment
Keunggulan :
- Menyederhanakan penanganan pada struktur data yang sedang berkembang
- Mengijinkan program untuk dapat diubah dan dicomplie ulang secara independen
- Meminjamkan diri sendiri untuk membagikan data di dalam proses
- Meminjamkan diri sendiri untuk perlindungan
Address Translation
address translation di dalam sistem segmentasi
address translation pada sistem segmentasi/paging
Fetch Policy
1. Demand Paging
2. Pre-paging
Placement Policy
- Menentukan dimana potongan proses berada di dalam real memory
- Masalah design yang penting di dalam sistem segmentasi
Replacement Policy
- Berurusan dengan seleksi dari halaman di dalam main memory untuk digantikan ketika halaman baru harus dimasukkan
- Semakin bagus kerja sama dari replacement policy, maka hardware dan software dapat mengimplementasikan nya dengan baik
Optimal Policy
- Memilih halaman yang waktu ke referensi selanjut nya paling panjang / lama
- Menghasilkan 3(tiga) halaman setelah alokasi frame telah diisi
- Mengganti halaman yang belum direferensi untuk waktu yang panjang/lama
- Susah untuk di-implementasikan
- Halaman yang akan sangat sedikit direferensikan pada masa depan
FIFO
- First In First Out
- Memperlakukan frame halaman yang dialokasikan ke proses sebagai circular buffer
- Halaman dihapus dengan Round Robin style
- Halaman yang sudah berada di dalam memory paling lama akan digantikan
Clock Policy
- Membutuhkan asosiasi untuk penambahan bit pada setiap frame
- Ketika sebuah halaman pertama kali diloaded di memory ataupun direferensikan, penggunakan bit akan diset ke 1 (satu)
- Set frame dianggap sebagai circular buffer
- Frame apapun yang menggunakan bit 1(satu) akan dipassing oleh algoritma
- Frame halaman divisualisasikan sebagai peletakan secara lingkaran (bulat)
Replacement Policy and Cache Size
Dengan cache yang besar, penggantian halaman akan mempunyai dampak performa :
- apabila frame halaman yang dipilih untuk pergantian terdapat di dalam cache, maka blok cache tersebut akan hilang beserta halaman yang bersama nya
- di dalam sistem menggunakan page buffering, performa cache dapat ditingkatkan dengan policy (kebijakan) untuk pergantian halaman (page replacement) di page buffer
- kebanyakan sistem operasi meletakkan halaman-halaman dengan cara memilih frame halaman arbitrary dari page buffer
Replacement Policy
Dikategorikan sebagai :
1. Local
memilih hanya dari halaman lokal dari proses yang mengenerasikan page fault
2. Global
menganggap semua halaman sudah tidak terkunci di dalam main memory
Fixed Allocation, Local Scope
- Diperlukan untuk menentukan waktu untuk jumlah alokasi yang akan diberikan kepada proses
- Apabila alokasi terlalu kecil, maka akan rate dari page fault akan tinggi
- Apabila alokasi terlalu besar, maka akan ada sedikit program yang running di dalam main memory
Variable Allocation Global Scope
- Mudah untuk diimplementasikan
- Sistem operasi menjaga list dari frame yang masih ada (free)
- Frame yang masih kosong (free) akan ditambahkan ke set resident dari sebuah proses ketika page fault terjadi
- Apabila tidak ada frame yang tersedia, maka sistem operasi harus memilih halaman yang sekarang berada di memory
- Satu cara untuk melawan potensi masalah adalah menggunakan page buffering
Variable Allocation Local Scope
- Ketika proses baru dimuat ke main memory, akan dialokasikan ke nomor halaman yang ditentukan di frame halaman sebagai set resident nya
- Ketika page fault terjadi, pilih halaman tersebut dan menggantikan nya dari set resident pada proses yang terjadi page fault
- Mengevaluasi kembali alokasi yang tersedia untuk proses dan meningkatkan atau mengurangi nya agar dapat meningkatkan performa
Variable Allocation Local Scope
- Keputusan untuk meningkatkan atau mengurangi ukuran set residen adalah keputusan dari penilaian dari permintaan untuk proses yang aktif ke depan nya
Tidak ada komentar:
Posting Komentar