Disusun Oleh :
Muhammad Shidqi
Dosen Pengampu :
Sistem operasi memiliki dua cara untuk menangani masalah ini. Yang pertama
dengan men-terminasi proses yang sedang mengakses halaman tersebut. Akan tetapi,
cara ini tidak dapat dilakukan karena demand paging merupakan usaha sistem operasi
untuk meningkatkan utilisasi komputer dan throughput-nya.
Cara yang kedua yaitu dengan penggantian halaman (page replacement). Sistem
operasi dapat memindahkan suatu proses dari memori fisik, lalu menghapus semua
bingkai yang semula digunakannya, dan mengurangi level of
multiprogramming (dengan mengurangi jumlah proses yang berjalan). Prinsip kerja
penggantian halaman adalah sebagai berikut. "Jika tidak ada bingkai yang kosong,
maka dicari (dengan suatu algoritma ganti halaman) salah satu bingkai yang sedang
tidak digunakan dan kemudian dikosongkar. Suatu bingkai dapat dikosongkan
dengan memindahkan isinya ke dalam ruang pemindahan kemudian mengubah
semua tabel halaman hingga mengindikasikan bahwa halaman yang dipindah tersebut
sudah tidak berada di memori fisik. Lalu bingkai yang telah kosong tersebut dapat
digunakan oleh halaman yang akan ditempatkan di memori fisik". Dengan
memodifikasi urutan penanganan page fault, maka dapat dijabarkan urutan
proses page replacement sebagai berikut.
1. Mencari lokasi dari halaman yang dicari di disk.
2. Mencari bingkai yang kosong di memori fisik:
a. Jika ada bingkai yang kosong, maka gunakan bingkai tersebut.
b. Jika tidak ada bingkai yang kosong, gunakan algoritma ganti halaman untuk
memilih bingkai "korban"
c. Pindahkan bingkai "korban" tersebut ke disk dan sesuaikan tabel halaman.
3. Masukkan halaman yang berasal dari disk tersebut ke dalam bingkai yang baru
dikosongkan tersebut. Sesuaikan tabel halaman.
4. Lanjutkan proses yang telah diinterupsi.
Page Replacement
Page Replacement diperlukan pada saat dimana proses dieksekusi perlu frame
bebas tambahan tetapi tidak tersedia frame bebas.
KonsepPage Replacement :
– Jika tidak ada frame yang kosong, cari frame yang tidak sedang digunakan, lalu
kosongkan dengan cara menuliskanisinya ke dalam swap space, dan mengubah
semua table sebagai indikasi bahwa page tersebut tidak akan berada lama di memori.
Gambar dibawah menunjukkan jika proses user dieksekusi, maka akan timbul page
fault.Padahal sudah tidak ada memori yang kosong, sehingga perlu adanya page
replacement
Rutinitas Page replacement :
– Tentukan lokasi page yang diharapkan pada disk
– Carilahframe kosong
– Jika adaframe kosong, gunakan
– Jika tidak ada, gunakan algoritma page replacement untukmenyeleksi frame yang
akan dikorbankan
– Simpan page yang dikorbankan ke disk, ubah page dan frame table secara berurutan
– Baca page yang diinginkan ke frame kosong; ubahpage dan frame table
– Mulai kembali user process
Langkah-langkah Page replacement :
Secara umum, algoritma dapat dibagi dua:
– Global Replacement -> Victim frame dapat dipilih dari semua frame yang ada
– Local Replacement -> Victim frame dapat dipilih dari frame-frame yang sedang
ditempati oleh image proses bersangkutan
Algoritma Page Replacement
– Selama jumlah frame meningkat, maka jumlah page fault akan menurun.
Peningkatan jumlah frame dapat terjadi jika memori fisik diperbesar
– Tujuan Algoritma Page Replacement adalah untuk mendapatkan page fault
terendah
– Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat
page fault sehingga proses akan berjalan lambat
Ada beberapa Algoritma Page Replacement :
a. Algoritma FIFO
b. Algoritma Optimal
c. Algoritma LRU
d. Algoritma Clock
a. Algoritma FIFO
d. Algoritma Clock
# Konsep Overlay,
yaitu dimana program yang di jalankan dipecah menjadi beberapa bagian yang dapat
dimuat oleh memory (overlay), sedangkan yang belum dieksekusi akan disimpan di
dalam disk, yang nantinya akan dimuat ke memori begitu diperlukan dalam ekekusi.
# Konsep Memori Maya
yaitu kemampuan untuk mengalamati ruang memori melebihi memori utama yang
tersedia.
Sebuah program adalah kumpulan segmen. Suatu segmen adalah unit logika seperti
program utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok
umum, stack, tabel simbol, array dan lain-lain. Pandangan user terhadap sistem
segmentasi dapat dilihat pada Gambar Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang
dituliskan dengan(nomor segmen, offset)
Perangkat keras yang digunakan pada sistem segmentasi. Pemetaan dari alamat
logika ke alamat fisik membutuhkan 2 acuan memori untuk setiap alamat logika. Hal
ini akan menurunkan kecepatan sistem dengan faktor 2. Solusi standard yang
digunakan adalah dengan cache (atau associative register) untuk menyimpan entri
tabel segmen yang sering digunakan. Pemetaan alamat logika ke alamat fisik dengan
menggunakan tabel segmen . Misalnya alamat logika dengan nomor segment 0 offset
88 akan dipetakan ke alamat fisik 1400 + 88 = 1488 karena offset < limit (88 <
1000). Alamat logika dengan nomor segment 1 offset 412 akan terjadi error karena
offset > limit (412 > 400). Alamat logika dengan nomor segment 2 offset 320 akan
dipetakan ke alamat fisik 4300 + 320 = 4620 karena offset < limit (320 < 400).
Segmentation Registers
Logical address terdiri atas dua bagian : segment identifier dan sebuah offset
yang menunjukkan alamat yang bersangkutan pada segment. Segment identifier
adalah sebuah 16-bit field yang disebut segment selector. Untuk mempermudah
memperoleh segment selectors dengan cepat, prosesor menyediakan segmentation
register yang tujuannya hanya untuk memegang segment selectors. Ada enam
segmentation register : cs, ss, ds, es, fs, dan gs.
Segment Descriptor
Setiap segment direpresentasikan dengan 8-byte segment descriptor yang
menggambarkan karakteristik segment. Segment descriptor disimpan pada Global
Descriptor Table(GDT) atau pada Local Descriptor Table(LDT).
Segment Selectors
Untuk mempercepat pengubahan dari logical address ke linear address, Intel
menyediakan nonprogrammable register tambahan untuk setiap dari 6 programmable
segmentation register. Setiap segment selector di-load pada sebuah segmentation
register, segment descriptor yang bersangkutan di-load dari memori ke
nonprogrammable CPU register yang bersesuaian. Jadi, pengubahan dari logical
address ke linear address dilakukan tanpa mengakses GDT atau LDT yang berada
pada memori utama.
Segmentation Unit
Segmentatipn Unit melakukan operasi-operasi berikut :
- Memeriksa TI dari segment selector, untuk memutuskan apakah descriptor table
berada pada segment descriptor.
- Menghitung alamat dari segment descriptor dari index filed segment selector.
- Menambahkan ke Base field dari segment descriptor, offset dari logical address,
sehingga diperoleh linear address.