Senin, 11 Januari 2016

[Pert 21 & 22] Virtual Memory

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

Least Recently Used (LRU)


  • 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