You are on page 1of 33

By: Esty Swandana & Mirza Sulthony

Latar Belakang Demand Paging


Page Replacement Algorithm Thrashing

Pada sebuah program, instruksi yang akan dieksekusi harus berada di memori fisik/main memory (RAM) Tidak seluruh bagian program diproses, misal:
Error handling

Alokasi array/list/ tabel yang tidak terpakai


Option atau feature tertentu yang jarang

digunakan

Berarti, meskipun seluruh bagian program diunggah ke main memory, tidak semuanya terpakai. Pada memori dengan kapasitas terbatas, hal ini akan menurunkan optimalisasi utilitas dari ruang memori fisik (memori utama).

Masalah:
Bagaimana menempatkan program yang

berukuran lebih besar dari kapasitas RAM. Multiprogramming yang membutuhkan alokasi memory besar.

Solusi: menggunakan virtual memory

Virtual memory: mekanisme yang memisahkan antara memori logis dan memori fisiknya.

Mekanisme ini menempatkan keseluruhan program di memori sekunder dan membawa page yang diperlukan ke memori fisik sehingga RAM hanya akan menyimpan sebagian alamat proses yang sering digunakan (dapat diambil sesuai kebutuhan).

Skema Virtual Memory

Keuntungan menggunakan virtual memory:


1. Lalu lintas I/O menjadi rendah

2. Program tidak terbatas jumlah memori fisik

yang tersedia. 3. Dapat menjalankan beberapa program secara bersamaan. 4. Shared library (copy-on-write).

Virtual Memory diimplementasikan dengan 2 cara:


Demand Paging
Menerapkan konsep pemberian halaman/page pada proses Demand Segmentation

Menerapkan konsep ukuran segmen yang bervariasi

Latar Belakang Demand Paging


Page Replacement Algorithm Thrashing

Merupakan implementasi Virtual Memory yang paling umum digunakan. Memiliki prinsip yang sama dengan swapping. Perbedaannya adalah pada demand paging, page tidak akan dibawa ke memori fisik sampai benar-benar diperlukan (lazy swapper/pager).

Proses demand paging:


1
Seluruh page dari proses yang akan dieksekusi disimpan di memori sekunder (disk). Saat sebuah page diperlukan, proses akan mengakses page table untuk referensi page yang diinginkan. Jika valid-invalid bit = valid page sudah ada di memori utama. Jika valid-invalid bit = invalid page tidak berada di memori utama terjadi page fault

Valid-invalid Bit: digunakan untuk menentukan page mana yang sudah berada di memori utama dan mana yang tidak ada.

Bit = 1
Bit = 0

Status = valid Page berada di memori utama Status = invalid Page berada di memori sekunder atau memang tidak ada.

Jika bit = 0, akan terjadi page fault.

Skema Demand Paging

Page Fault: interupsi yang terjadi ketika page yang dibutuhkan oleh suatu proses tidak berada di memori utama. Ketika page fault terjadi, proses akan dihentikan sementara page yang diminta dicari di dalam memori sekunder.

Penanganan page fault:


Terjadi page fault Hardware melakukan trap (proses terjebak pada OS)

Referensi alamat diberikan pada OS

Referensi alamat = legalpage diambil dari disk Referensi alamat = ilegal proses dihentikan

Page dibawa ke memori utama & page table diatur ulang

Proses diulang kembali

Skema Penanganan Page Fault

Latar Belakang Demand Paging


Page Replacement Algorithm Thrashing

Page replacement algorithm: algoritma untuk menentukan page mana yang akan di swap out ketika sebuah page baru membutuhkan frame.
Page replacement digunakan untuk mengatasi over-allocating saat dilakukan swap in.

Skema page replacement

Kriteria page replacement algorithm yang baik:


Menyebabkan page fault yang rendah

Tidak menyebabkan thrashing

Tidak terlalu sulit diimplementasikan

Macam-macam page replacement algorithm:


1.

Algoritma Optimal Prinsip: mengganti page yang tidak akan terpakai lagi dalam jangka waktu terlama. Algoritma dengan page fault terendah. Sulit diimplementasikan (sistem tidak tahu page apa saja yang akan digunakan selanjutnya).

2.

Algoritma FIFO (First In, First Out) Prinsip: seperti prinsip antrian (antrian tak berprioritas). Algoritma paling sederhana. Dianggap cukup baik sampai tahun 1970-an ketika Belady menemukan anomali pada algoritma ini (Anomali Belady).

3.

Least Recently Used (LRU) Mengasumsikan page yang sudah lama tidak digunakan tidak dibutuhkan lagi sehingga dapat di-swap out. Performanya mendekati algoritma optimal dengan cost sedikit lebih besar. Menggunakan linked list untuk mendata page mana yang paling lama tidak terpakai.

4.

Algoritma Second Chance Menggunakan circular queue dan reference bit bernilai 1 atau 0. Page dengan reference bit = 1 (baru diload) tidak akan langsung diganti meski di antrian paling bawah. Berdasarkan pada algoritma FIFO yang disempurnakan.

5.

Algoritma Random
Page yang akan di-swap out dipilih secara acak. Relatif low cost, karena tidak memerlukan stack, queue atau counter. Page fault-nya tinggi, tetapi lebih unggul dalam hal memory looping reference dari Algoritma LRU.

Latar Belakang Demand Paging


Page Replacement Algorithm Thrashing

Ialah kondisi dimana satu proses terlalu sibuk melakukan page swapping, sehingga waktu processing lebih banyak untuk paging daripada untuk eksekusi.

Cara menghindari thrashing Menambah real memory Memperbaiki desain aplikasi Scheduling Memperbaiki penggunaan memori

Efek thrashing dapat dibatasi dengan menggunakan algoritma local (priority) replacement. Yaitu pengukuran yang menunjukkan bahwa setiap program membutuhkan minimal set halaman.

Untuk menghentikan thrashing, proses mana yang harus di-non aktifkan?


Proses dengan prioritas paling rendah Faulting process Proses yang terakhir kali diaktifkan

Proses terkecil
Proses terbesar

You might also like