Memori Virtual dan Demand Paging

5.6. Memori Virtual dan Demand Paging

5.6.1. Pengertian

Managemen memori pada intinya adalah menempatkan semua bagian proses yang akan dijalankan kedalam memori sebelum proses itu dijalankan. Untuk itu, semua bagian proses itu harus memiliki tempat sendiri di dalam memori fisik.

Tetapi tidak semua bagian dari proses itu akan dijalankan, misalnya:

• Pernyataan atau pilihan yang hanya akan dieksekusi pada kondisi tertentu. Contohnya adalah: pesan-pesan error yang hanya muncul bila terjadi kesalahan saat program dijalankan.

• Fungsi-fungsi yang jarang digunakan. • Pengalokasian memori yang lebih besar dari yang dibutuhkan. Contoh: array, list dan tabel.

Pada memori berkapasitas besar, hal-hal ini tidak akan menjadi masalah. Akan tetapi, pada memori yang sangat terbatas, hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik. Sebagai solusi dari masalah-masalah ini digunakanlah konsep memori virtual.

Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis.

Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori fisik yang tersedia.

Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."

Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris (Hariyanto, Bambang: 2001).

Gambar 5-13. Memori Virtual

Silberschatz, Galvin and Gagne @ 2002

Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori fisik. Hal ini memberikan keuntungan:

• Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.

• Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10

MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.

• Meningkatnya respon, karena menurunnya beban I/O dan memori. • Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan

komputer untuk menerima lebih banyak permintaan dari pengguna.

Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di

Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 KByte dan bagian-bagian proses swap in ) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien.

Memori virtual dapat dilakukan melalui dua cara: • Permintaan pemberian halaman (demand paging).

• Permintaan segmentasi (demand segmentation). Contoh: IBM OS/2. Algoritma dari permintaan segmentasi lebih kompleks, karena itu jarang diimplementasikan.

5.6.2. Demand Paging

Demand paging atau permintaan pemberian halaman adalah salah satu implementasi dari memori virtual yang paling umum digunakan. (Demand paging) pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan. Untuk itu diperlukan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia diperlukan.

Karena demand paging merupakan implementasi dari memori virtual, maka keuntungannya sama dengan keuntungan memori virtual, yaitu:

• Sedikit I/O yang dibutuhkan. • Sedikit memori yang dibutuhkan. • Respon yang lebih cepat. • Dapat melayani lebih banyak pengguna.

Ada tiga kemungkinan kasus yang dapat terjadi pada saat dilakukan pengecekan pada halaman yang dibutuhkan, yaitu: halaman ada dan sudah berada di memori. Statusnya valid ("1"). Halaman ada tetapi masih berada di disk belum diberada di memori (harus menunggu sampai dimasukkan). Statusnya tidak valid ("0"). Halaman tidak ada, baik di memori maupun di disk (invalid reference --> abort).

Saat terjadi kasus kedua dan ketiga, maka proses dinyatakan mengalami kesalahan halaman. Perangkat keras akan menjebaknya ke dalam sistem operasi.

5.6.3. Skema Bit Valid - Tidak Valid

Dengan meminjam konsep yang sudah pernah dijelaskan dalam Bagian 5.5, maka dapat ditentukan halaman mana yang ada di dalam memori dan mana yang tidak ada di dalam memori.

Konsep itu adalah skema bit valid-tidak valid, di mana di sini pengertian valid berarti bahwa halaman legal dan berada dalam memori (kasus 1), sedangkan tidak valid berarti halaman tidak ada (kasus 3) atau halaman ada tapi tidak ditemui di memori (kasus 2).

Pengesetan bit: • Bit 1 --> halaman berada di memori

• Bit 0 --> halaman tidak berada di memori.

(Dengan inisialisasi: semua bit di-set 0) Apabila ternyata hasil dari translasi, bit halaman = 0, berarti kesalahan halaman terjadi.

5.6.4. Penanganan Kesalahan Halaman

Prosedur penanganan kesalahan halaman sebagaimana tertulis dalam buku Operating System Concept 5th Ed. halaman 294 adalah sebagai berikut:

• Memeriksa tabel internal yang dilengkapi dengan PCB untuk menentukan valid atau tidaknya bit. • Apabila tidak valid, program akan di terminasi (interupsi oleh illegal address trap). Jika valid tapi proses

belum dibawa ke halaman, maka kita halaman kan sekarang. • Memilih frame kosong (free-frame), misalnya dari free-frame list. Jika tidak ditemui ada frame yang kosong,

maka dilakukan swap-out dari memori. Frame mana yang harus di-swap-out akan ditentukan oleh algoritma (lihat sub bab penggantian halaman).

• Menjadualkan operasi disk untuk membaca halaman yang diinginkan ke frame yang baru dialokasikan. • Ketika pembacaan komplit, ubah bit validasi menjadi "1" yang berarti halaman sudah diidentifikasi ada di

memori. • Mengulang instruksi yang tadi telah sempat diinterupsi. Jika tadi kesalahan halaman terjadi saat instruksi

di-ambil, maka akan dilakukan pengambilan lagi. Jika terjadi saat operan sedang di-ambil, maka harus dilakukan pengambilan ulang, dekode, dan pengambilan operan lagi.

5.6.5. Apa yang terjadi pada saat kesalahan?

Kesalahan halaman menyebabkan urutan kejadian berikut:

• Ditangkap oleh Sistem Operasi. • Menyimpan register pengguna dan proses. • Tetapkan bahwa interupsi merupakan kesalahan halaman. • Periksa bahwa referensi halaman adalah legal dan tentukan lokasi halaman pada disk. • Kembangkan pembacaan disk ke frame kosong. • Selama menunggu, alokasikan CPU ke pengguna lain dengan menggunakan penjadualan CPU. • Terjadi interupsi dari disk bahwa I/O selesai. • Simpan register dan status proses untuk pengguna yang lain. • Tentukan bahwa interupsi berasal dari disk. • Betulkan tabel halaman dan tabel yang lain bahwa halaman telah berada di memory. • Tunggu CPU untuk untuk dialokasikan ke proses tersebut • Kembalikan register pengguna, status proses, tabel halaman, dan meneruskan instruksi interupsi.

Pada berbagai kasus, ada tiga komponen yang kita hadapi pada saat melayani kesalahan halaman: • Melayani interupsi kesalahan halaman

• Membaca halaman • Mengulang kembali proses

5.6.6. Kinerja Demand Paging

Menggunakan Effective Access Time (EAT), dengan rumus: EAT = (1-p) x ma + p x waktu kesalahan halaman

• p: kemungkinan terjadinya kesalahan halaman (0 < p < 1) • p = 0; tidak ada kesalahan halaman • p = 1; semuanya mengalami kesalahan halaman • ma: waktu pengaksesan memory (memory access time) Untuk menghitung EAT, kita harus tahu berapa banyak waktu dalam pengerjaan kesalahan halaman. Contoh penggunaan Effective Access Time Diketahui: Waktu pengaksesan memory = ma = 100 nanodetik Waktu kesalahan halaman = 20 milidetik Maka, EAT = (1-p) x 100 + p (20 milidetik) = 100 - 100p + 20.000.000p = 100 + 19.999.900p (milidetik) Pada sistem demand paging, sebisa mungkin kita jaga agar tingkat kesalahan halamannya rendah. Karena bila

Effective Access Time meningkat, maka proses akan berjalan lebih lambat.

5.6.7. Permasalahan Lain yang berhubungan dengan Demand Paging

Sebagaimana dilihat di atas, bahwa ternyata penanganan kesalahan halaman menimbulkan masalah-masalah baru pada proses restart instruction yang berhubungan dengan arsitektur komputer.

Masalah yang terjadi, antara lain mencakup: • Bagaimana mengulang instruksi yang memiliki beberapa lokasi yang berbeda?

• Bagaimana pengalamatan dengan menggunakan ragam pengalamatan spesial, termasuk autoincrement dan autodecrement mode ?

• Bagaimana jika instruksi yang dieksekusi panjang (contoh: block move)?

Masalah pertama dapat diatasi dengan dua cara yang berbeda. • komputasi microcode dan berusaha untuk mengakses kedua ujung dari blok, agar tidak ada modifikasi

halaman yang sempat terjadi. • memanfaatkan register sementara (temporary register) untuk menyimpan nilai yang sempat tertimpa/

termodifikasi oleh nilai lain.

Masalah kedua diatasi dengan menciptakan suatu status register spesial baru yang berfungsi menyimpan nomor register dan banyak perubahan yang terjadi sepanjang eksekusi instruksi. Sedangkan masalah ketiga diatasi dengan men-set bit FPD (first phase done) sehingga restart instruction tidak akan dimulai dari awal program, melainkan dari tempat program terakhir dieksekusi.

5.6.8. Persyaratan Perangkat Keras

Pemberian nomor halaman melibatkan dukungan perangkat keras, sehingga ada persyaratan perangkat keras yang harus dipenuhi. Perangkat-perangkat keras tersebut sama dengan yang digunakan untuk paging dan swapping , yaitu:

• tabel halaman "bit valid-tidak valid"

• Valid ("1") artinya halaman sudah berada di memori • Tidak valid ("0") artinya halaman masih berada di disk.

• Memori sekunder, digunakan untuk menyimpan proses yang belum berada di memori.

Lebih lanjut, sebagai konsekuensi dari persyaratan ini, akan diperlukan pula perangkat lunak yang dapat mendukung terciptanya pemberian nomor halaman.

Dokumen yang terkait

ANALISIS EFISIENSI PEMASARAN DAN PENDAPATAN USAHATANI ANGGUR (Studi Kasus di Kecamatan Wonoasih Kotamadya Probolinggo)

52 472 17

Studi Kualitas Air Sungai Konto Kabupaten Malang Berdasarkan Keanekaragaman Makroinvertebrata Sebagai Sumber Belajar Biologi

23 176 28

ANALISIS KOMPARATIF PENDAPATAN DAN EFISIENSI ANTARA BERAS POLES MEDIUM DENGAN BERAS POLES SUPER DI UD. PUTRA TEMU REJEKI (Studi Kasus di Desa Belung Kecamatan Poncokusumo Kabupaten Malang)

23 307 16

PENILAIAN MASYARAKAT TENTANG FILM LASKAR PELANGI Studi Pada Penonton Film Laskar Pelangi Di Studio 21 Malang Town Squere

17 165 2

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

DOMESTIFIKASI PEREMPUAN DALAM IKLAN Studi Semiotika pada Iklan "Mama Suka", "Mama Lemon", dan "BuKrim"

133 700 21

PEMAKNAAN MAHASISWA TENTANG DAKWAH USTADZ FELIX SIAUW MELALUI TWITTER ( Studi Resepsi Pada Mahasiswa Jurusan Tarbiyah Universitas Muhammadiyah Malang Angkatan 2011)

59 326 21

STRATEGI KOMUNIKASI POLITIK PARTAI POLITIK PADA PEMILIHAN KEPALA DAERAH TAHUN 2012 DI KOTA BATU (Studi Kasus Tim Pemenangan Pemilu Eddy Rumpoko-Punjul Santoso)

119 459 25

STRATEGI PUBLIC RELATIONS DALAM MENANGANI KELUHAN PELANGGAN SPEEDY ( Studi Pada Public Relations PT Telkom Madiun)

32 284 52

FAKTOR-FAKTOR PENYEBAB ORANG TUA MENIKAHKAN ANAK PEREMPUANYA PADA USIA DINI ( Studi Deskriptif di Desa Tempurejo, Kecamatan Tempurejo, Kabupaten Jember)

12 105 72