Hardware Virtual Memory
Pendahuluan
Memori merupakan suatu tempat penyimpanan utama (primary storage) yang bersifat sementara (volatile). Ukuran memori yang terbatas dapat menimbulkan masalah bagaimana menempatkan program yang berukuran yang lebih besar dari ukuran memori fisik (memori utama) dan masalah penerapan multiprogramming yang membutuhkan tempat yang lebih besar di memori.
Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Tanpa memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik). Teknik ini menempatkan keseluruhan program di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan kebutuhan. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari ke disk sekunder.
Prinsip Locality
Program atau data yang akan dieksekusi biasanya terletak pada alamat memori berurutan(locality) berurutan(locality). Sehingga, dimungkinkan untuk menerapkan sistem yang dapat memperkirakan bagian program mana yang dapat memperkirakan bagian program mana yang selanjutnya akan dieksekusi
Terdapat 2 jenis jenis lokalitas:
-
Lokalitas berdasarkan waktu (temporal locality), proses cenderung terkonsentrasi acuannya ke satu interfal waktu eksekusi yang dekat.
-
Lokalitas berdasarkan ruang (spatial locality), proses cenderung terkonsentrasi acuannya ke satu kelompok data yang berdekatan.
Paging
Karakteristik Paging Pada Virtual Memory :
-
Memori dipartisi kecil-kecil menjadi frame
-
Program dipecah kecil-kecil menjadi page
-
Terjadi fragmentasi internal
-
Tidak terjadi fragmentasi eksternal
-
SO menggunakan tabel page untuk mencatat lokasi tempat page di memori di memori
-
SO mencatat daftar frame yang kosong
-
Alamat absolut dihitung berdasarkan nomor page dan offset
-
Proses dapat dieksekusi meskipun baru beberapa pagesaja yang ditaruh di memori
-
Bila page baru dimasukkan ke memori dapat menyebabkan terjadi perpindahan page dari memori ke harddisk
Page Table Structure (PTS)
Prosedur pada PTS :
-
Register menyimpan alamat awal tabel page suatu proses
-
Sebuah program membutuhkan data dan mengirimkan sebuah alamat virtual
-
Nomor page pada alamat virtual digunakan sebagai indeks untuk menunjuk nomor frame pada tabel page
-
Nomor frame digabungkan dengan offset pada alamat virtual menjadi alamat fisik
-
Alamat fisik digunakan untuk mengakses bagian program pada memori
Inverted Page Table (IPT)
………..
Translation Lookaside Buffer (TLB)
Prosedur pada TLB :
-
Suatu program meminta data/program dengan mengirimkan alamat virtual.
-
Prosesor mencari page yang diminta pada TLB.
-
Jika page yang diminta ada, maka terjadi TLB hit. Fram diambil dari TLB untuk membentuk alamat fisik.
-
Jika terjadi TLB miss, prosesor mencari page yang diminta pada tabel page.
-
Jika page yag diminta ada, maka frame diambil dari tabel page untuk membentuk alamat fisik.
-
Page yang baru saja diambil disimpan di TLB.
-
Jika pada yang diminta tidak ada, maka dilakukan pencarian ke harddisk.
-
Alamat fisik digunakan untuk mengambil data pada memori.
Ukuran page
……………….
Segmentasi
Prosedur pada segmentasi :
-
Register menyimpan alamat awal tabel segment suatu proses.
-
Sebuah program membutuhkan data dan mengirimkan sebuah alamat virtual.
-
Nomor segment pada alamat virtual digunakan sebagai indeks untuk mengakses tabel segment sehingga diperoleh alamat awal segment tersebut.
-
Alamat awal dari segment dijumlahkan dengan offset pada alamat virtual menjadi alamat fisik.
-
Alamat fisik digunakan untuk mengakses bagian program/data pada memory.
Kombinasi Paging dan Segmentasi
…………………….
Prosedur kombinasi segmentasi dan paging :
-
Register berfungsi untuk menyimpan alamat tabel segment suatu proses.
-
Program membutuhkan data dan mengirimkan alamat virtual
-
Nomor segement pada alamat virtual digunakan sebagai indeks untuk mengakses tabel segment sehingga diperoleh alamat awal dari tabel page.
-
Nomor page digunakan sebagai indeks untuk mengakses tabel page sehingga diperolehnomor frame.
-
Alamat fisik adalah gabunngan antara nomor frame dan nomor page
-
Alamat fisik digunakan untuk mengakses bagaian program pada memori
Proteksi dan Sharing
Proteksi dan sharing dilakukan pada segementasi dikarenakan
-
Alamat awal suatu segmen telah diketahui
-
Panjang segment sudah ditentukan
-
Alamat akses di luar batas tersebut akan dapat diketahui.
Proteksi dan sharing pada model ring .
Terdapat beberpa aturan pada model ring yaitu
-
Program hanya bisa mengakses program yang terdapat pada ring yang sama atau ring yang lebih luar
-
Jika program ingin mengakses program pada ring yang lebih dalam maka harus mengirimkan call service.
Recent Comments