fadilefdika
Just another Jejaring Blog Unnes Sites site
November 7, 2022 Categories: Uncategorized. No Comments on Virtual Memory

Memori Virtual adalah proses dimana penyimpanan memori logis dapat dialamatkan seperti bagian dari memori utama. Apabila tidak ada virtual memori, semua halaman dalam program akan langsung tersimpan kedalam memori fisik atau memori utama, jadi istilahnya virtual memori ini merupakan sistem penyimpanan sementara yang ada di dalam disk. Virtual memori menjadi penyimpanan tambahan yang menjadi fitur dalam sistem operasi.

Untuk penyimpanan program di memori, hanya butuh sebagian program yang dibuat untuk dieksekusi. Oleh karena itu kapasitas dari memori ini lebih besar daripada kapasitam memori utama atau memori fisik. Virtual memory ini memungkinkan penggunaan ruang alamat dilakukan secara bersamaan oleh beberapa proses, pembuatan proses menjadi lebih efisien, bisa menjalankan proses secara bersamaan, dan I/O yang digunakan hanya sedikit untuk mengganti atau mengambil proses

Penyimpanan di virtual memory tempat dimana proses disimpan memiliki alamat. Biasanya alamat tersebut dimulai dari indeks ke 0 sampai ke batas maksimum kapasitas memori yang diatur. Memori fisik diatur dalam halaman, dan Memori Maganement Unit atau MMU yang memetakan memori logis ke memori fisik atau memori utama. Virtual memory bisa diterapkan melalui halaman permintaan dan halaman segmentasi atau pembagian.

Ruang alamat virtual biasanya mendesain ruang alamat memori logis seperti tumpukkan-tumpukkan, yang dimulai dari batas maksimum kemudian turun sampai ke index 0, lalu menumpuk sampai tumbuh keatas sampai mencapai batas maksimum. Ini digunakan untuk memaksimalkan penggunaan ruang alamat. Ruang alamat yang tidak digunakan antara keduanya adalah lubang. Lalu memungkinkan ruang alamat yang jarang digunakan atau yang berlubang digunakan untuk pertumbuhan.

Demand Paging atau halaman permintaan yang fungsinya bisa membawa seluruh proses kedalam memory pada saat sedang memuat proses atau membawa halaman ke dalam memori hanya ketika dibutuhkan. Penggunaan I/O hanya sedikit saat melakukan demand paging, lebih sedikit memori yang dibutuhkan, respon yang cepat, dan lebih banyak pengguna. Sistem paging ini mirip dengan swapping

Valid-Invalid Bit, dengan setiap kali memasuki tabel halaman, bit akan menunjukan valid-invalid suatu proses. Jika tandanya “v” maka proses didalam memori dan “I” maka tidak ada dalam memori. Pada awalnya valid-invalid bit ini diatur dengan tanda “I” untuk semua masukkan. Selama penerjemahan alamat MMU dilakukan, jika valid-invalid bit di dalam tabel halaman adalah “I” maka halaman tersebut terjadi kesalahan.

 

 

Halaman terjadi kesalahan jika ada referensi yang menuju ke halaman, referensi pertama yang ke halaman tersebut akan terjebak di sistem operasi. Jika terjadi kesalahan halaman maka:

  1. Sistemoperasi akan melihat tabel untuk memutuskan :
    • Jikareferensi tidak valid maka batalkan
    • Memangtidak ada didalam memori
  2. Mencaribingkai atau ruang yang kosong
  3. Menukarhalaman ke dalam ruang melalui operasi disk yang telah diatur
  4. Resettabel ke halaman yang ditampilkan sekarang di memori lalu atur validasi bitnya sebagai “v”
  5. Restartulang instruksi yang menyebabkan kesalahan halaman Aspek didalam halaman permintaan
  • Dalamkasus yang ekstrim, proses dimulai tanpa halaman di memori

Sistem operasi mengatur pointer intruksi ke intruksi pertama dari proses, data disalin ke memori tersebut dari disk atau penyimpanan lain, maka terjadi kesalahan halaman

  • Sebenarnya,intruksi yang diberikan dapat mengakses banyak halaman tetapi yang terjadi bisa menyebabkan beberapa kesalahan halaman. Pertimbangkan jika mengambil atau mengkode intruksi yang menambahkan 2 angka dari memori dan menyimpan hasilnya kembali ke memori
  • Untukmelakukan permintaan paging, peran perangkat keras juga sangat

Tahap-tahap dalam demand paging yaitu jika terperangkap di sistem operasi, simpan register pengguna dan status proses yang dilakukan, tentukan bahwa penundaan sebagai kesalahan halaman, periksa apakah refrensi halaman itu legal atau tidak dan tentukan dimana lokasi halaman di disk, lakukan pembacaan dari disk ke free frame, alokasikan CPU ke user lain sambil menunggu proses pembacaan, lalu akan menerima pesan dari subsistem I/O disk, simpan register dan status untuk user yang lain, pastikan bahwa pesan atau interupsi berasal dari disk, perbaiki tabel halaman, tunggu CPU dialokasikan untuk proses ini, pulihkan register, status proses, dan tabel halaman baru, lalu lanjutkan kembali, lalu interupsi akan terputus.

Kinerja dari demand paging, ada tiga kegiatan utama untuk kinerja dari demand paging yaitu, melayani interupsi, membaca halaman, dan memulai ulang proses. Kesalahan halaman bisa dinilai dengan cara 0≤p≤1 , jika p = 0 maka tidak ada halaman yang bermasalah, jika p = 1 maka ada beberapa halaman yang bermasalah.

Untuk menghitung waktu rata-rata untuk mendapatkan nilai dari memori kita bisa menggunakan yang namanya Effective Access Time (EAT). Rumus untuk menghitung waktunya adalah EAT = (1-p) x memory access + p (page fault overhead + swap page out + swap page in). contoh dari EAT ini yaitu :

Waktu yang digunakan untuk mengakses memori = 200 nanosecond Rata-rata waktu pelayanan kesalahan halaman = 8 millisecond

 

 

EAT = (1-p) x 200 + p (8 millisecond)

= (1-p) x 200 + p x 8,000,000

= 200 + p x 7,999,800

Jika satu akses dari 1.000 akses menyebabkan kesalahan halaman, maka EAT = 8.2 microsecond

Copy-on-Write (COW) ini berfungsi ketika proses induk dan proses anak yang pada awalnya di halaman yang sama di memori, jika salah satu proses memodifikasi halaman yang sama, maka halaman baru tersebut akan disalin.

Apabila ingin mengganti halaman (Page Replacement) jangan biarkan alokasi memori yang berlebihan dengan cara memodifikasi service rutin halaman yang bermasalah untuk menambahkan atau mengganti halaman. Gunakan git yang telah dimodifikasi untuk mengurangi overhead halaman. Dengan mengganti halaman maka akan menyelesaikan pemisahan antara memori logis dan memori fisik atau memori utama.

Cara dasar untuk mengganti halaman yaitu cari lokasi yang diinginkan di disk, cari free frame, simpan halaman yang baru dibuat kedalam free frame lalu perbarui halaman dan tabel frame, lanjutkan proses dengan mengulangi kembali instruksi yang tadi diberikan.

Page and Frame Replacement Algorithme, algoritma untuk mengalokasikan frame yaitu menentukan berapa banyak bingkai untuk setiap proses lalu bingkai mana yang harus diganti, algoritma untuk mengganti halaman berfungsi untuk membuat tingkat kesalahan halaman menjadi rendah pada pengaksesan pertama dan pengaksesan ulang.

Ada beberapa algoritma pada page and frame replacement algorithme ini yaitu :

  • FirstIn First Out (FIFO) Algorithme

Algoritma ini berbentuk seperti antrian, siapa yang pertama masuk maka dia yang pertama keluar atau siapa yang terlebih masuk dahulu maka dia yang di service terlebih dahulu.

Apabila antrian memiliki nama atau nomor yang sama dengan yang ingin dimasukkan, maka nama atau nomor yang akan dimasukkan akan dilewat atau tidak di masukkan.

  • OptimalAlgotihme

Algoritma ini akan mengganti suatu halaman yang sudah lama tidak dipakai. Algoritma ini memiliki rata-rata kesalahan halaman terendah tetapi sangat susah untuk penggunaannya.

  • LeastRecently Used (LRU) Algorithme

Algoritma ini mengganti isi dari cache, jika ada entri yang ingin dimasukkan dan penyimpanannya sudah penuh, maka akan dicari cachenya yang sudah penuh dan jarang entri atau jarang digunakan lalu cache tersebut akan dihapus dan diganti dengan entri yang baru

 

 

  • EnhancedSecond-Change Algorithme

Algoritma ini menggunakan bit referensi dan bit yang telah dimodifikasi

  • CountingAlgorithme

Algortima yang menghitung halaman dari yang terkecil.

  • Page-BufferingAlgorithme

Algoritma yang selalu menyimpan pool pada free frame dan menjaga free frame agar tetap utuh dan isinya tetap terjaga.

Leave a Reply

Your email address will not be published. Required fields are marked *

* Kode Akses Komentar:

* Tuliskan kode akses komentar diatas:

Skip to toolbar