Sistem Operasi – Virtual Memori


Pokok bahasan Sistem Operasi pada bab Virtual Memori ini meliputi:  Latar Belakang perlunya Virtual memori, Demand Paging, Page Replacement, Alokasi Frame, Thrashing, Contoh Sistem Operasi.

Setelah mempelajari materi dalam bab virtual memori  ini, mahasiswa diharapkan mampu:

  • Memahami latar belakang memori virtual
  • Memahami maksud demand paging
  • Memahami mekanisme page replacement
  • Memahami algoritma alokasi frame
  • Mengetahui implementasi memori virtual

Latar Belakang

Sebagian besar algoritma manajemen memori memerlukan satu kebutuhan dasar yaitu instruksi yang akan dieksekusi harus berada di memori fisik. Pada beberapa kasus, keseluruhan program tidak diperlukan. Misalnya :

  • Program mempunyai kode untuk menangani kondisi error yang tidak biasa. Karena error-error ini jarang terjadi, kode ini hampir tidak pernah dieksekusi.
  • Array, list dan tabel dialokasikan lebih dari kapasitas memori yang diperlukan
  •  Pilihan dan gambaran program jarang digunakan

Pada kasus dimana keseluruhan program dibutuhkan, mungkin tidak semua diperlukan pada saat yang sama. Kemampuan mengeksekusi program hanya pada beberapa bagian dari memori mempunyai beberapa keuntungan yaitu :

  •  Program tidak terbatas jumlah memori fisik yang tersedia sehingga user dapat  menulis program untuk ruang alamat virtual yang sangat besar yang berarti menyederhanakan programming task.
  • Karena setiap program user dapat menggunakan memori fisik yang lebih kecil, pada waktu yang sama dapat menjalankan lebih banyak program.
  •  I/O yang lebih sedikit diperlukan untuk load atau swap program user ke memori, sehingga setiap program user dapat berjalan lebih cepat.

Pengertian/Definisi Virtual Memori

Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.

Implementasi Virtual Memori

Memori virtual biasanya diimplementasikan menggunakan demand paging atau demand segmentation juga digunakan. Tetapi algoritma segment-replacement lebih kompleks daripada algoritma page-replacement karena segmen mempunyai ukuran
yang bervariasi.

Virtual Memory

Virtual Memory

Demand Paging

Demand paging adalah sistem paging dengan swapping. Page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat dan lebih banyak user yang menggunakan.

Proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping bila page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke
memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika acuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di memori tersebut akan dibawa ke memori dari backing store. Untuk membedakan antara page pada memori dengan page pada disk digunakan valid-invalid bit. Tabel page untuk page yang berada di memori diset “valid’, sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset “invalid”.

Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap ke sistem operasi. Karena status (register, kode kondisi, counter instruksi) dari proses ter-interrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang sama, kecuali page yang cocok sedang di memori dan sedang diakses. Prosedur untuk menangani page fault sebagai berikut :

  1. Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka proses dihentikan dan page sedang tidak berada di memori.
  2. Jika acuan invalid dilakukan trap ke sistem operasi.
  3.  Sistem mencari frame kosong
  4. Sistem melakukan proses swapping ke frame bebas.
  5. Tabel page di-reset, bit valid-invalid diset 1 atau valid
  6. instruksi di-restart.

Apabila tidak ditemukan frame bebas maka dilakukan page replacement yaitu mencari beberapa page di memori yang tidak digunakan kemudian dilakukan swap out ke backing store. Terdapat beberapa algoritma page replacement dimana performansi
algoritma diharapkan menghasilkan jumlah page fault minimum. Beberapa page kemungkinan dibawa ke memori beberapa kali.
Perangkat keras yang dibutuhkan untuk mendukung demand paging sama dengan perangkat keras untuk sistem paging dengan swapping yaitu:

  •  Tabel page : tabel mempunyai kemampuan untuk memberi entry bit valid-invalid atau nilai khusus untuk bit proteksi
  • Memori sekunder : digunakan untuk membawa page yang tidak di memori dan biasanya adalah disk kecepatan tinggi yang disebut swap device.

Perfomansi Demand Paging

Demand paging memberikan efek yang signifikan dalam kinerja sistem computer. Diasumsikan ma adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :

EAT = (1-p) x ma + p x page_fault-time

Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault. Page fault menyebabkan terjadi

  •  Trap ke sistem operasi.
  • Menyimpan register dan status proses.
  •  Menentukan interrupt adalah page fau.t
  • Memeriksa page acuan legal atau tidak dan menentukan lokasi page pada disk.
  • Membaca dari disk ke frame bebas :
  • Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
  • Menunggu perangkat mencari dan / atau waktu latency.
  •  Memulai transfer dari page ke frame bebas.
  • Sementara menunggu, alokasikan CPU untuk user lain.
  • Interrupt dari disk (melengkapi I/O).
  • Menyimpan register dan status process user lain.
  • Menentukan interrupt dari disk.
  • Memperbaiki tabel page dan tabel lain untuk menunjukkan page yang dimaksud sudah di memori.
  • Menunggu CPU dialokasikan untuk proses ini kembali.
  • Menyimpan kembali register, status proses dan tabel page baru, kemudian melanjutkan kembali instruksi yang di-interupsi.

Tidak semua langkah diatas diperlukan pada setiap kasus. Pada beberapa kasus, terdapat tiga komponen utama dari waktu pelayanan page fault yaitu

  • Melayani interrupt page fault.
  • Membaca page.
  • Memulai kembali proses.

Untuk menghitung effective access time dari sistem demand paging perhatikancontoh berikut. Diasumsikan memory access 100 ns. Rata-rata waktu latency untuk hard disk adalah 8 ms, waktu pencarian 15 ms dan rata-rata transfer sebesar 1 ms. Total
waktu paging ≈ 25 ms.

Effective access time = (1-p) x (100) + p x (25 ms)
= (1-p) x 100 + p x 25000000
= 100 + 24999900 x p

Apabila satu dari 1000 akses menyebabkan page fault, maka effective access time = 25 micro-sec (lebih lambat dengan faktor 250). Tetapi bila menginginkan degradasi kurang dari 10% maka

110 > 100 + 25000000 x p
10 > 250000000 x p
p < 0.0000004

Perlu diperhatikan system harus mempertahankan rata-rata page-fault yang rendah pada sistem demand-paging. Sebaliknya, jika effective access time meningkat maka akan memperlambat eksekusi proses secara drastis.

Download Materi selengkapnya: Bab8-VirtualMemory.pdf

Iklan

One thought on “Sistem Operasi – Virtual Memori

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s