SISTEM
PAGING
Sistem
Paging Adalah sistem manajemen pada sistem operasi dalam mengatur program yang
sedang berjalan. Program yang berjalan harus dimuat di memori utama. Kendala
yang terjadi apabila suatu program lebih besar dibandingkan dengan memori utama
yang tersedia.
Untuk
mengatasi hal tersebut Sistem Paging mempunyai 2 solusi, yaitu:
·
Konsep Overlay
Dimana
program yang dijalankan dipecah menjadi beberapa bagian yang dapat dimuat memori
(overlay). Overlay yang belum diperlukan pada saat program berjalan (tidak sedang
di eksekusi) disimpan di disk, dimana nantinya overlay tersebut akan dimuat ke
memori begitu diperlukan dalam eksekusinya.
·
Konsep Memori Maya (virtual Memory)
Adalah
kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep
ini pertama kali dikemukakan Fotheringham pada tahun 1961 untuk sistem komputer
Atlas di Universitas Manchester, Inggris.
Gagasan
Memori Maya adalah ukuran gabungan program, data dan stack melampaui jumlah
memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang
sedang digunakan di memori utama dan sisanya di disk. Begitu bagian di disk
diperlukan maka bagian memori yang tidak diperlukan disingkirkan dan diganti
bagian disk yang diperlukan.
Pengertian
Memori Maya
Didalam
menejemen memori dengan system partisi statis dan system dinamis sudah dapat
menyelesaikan masalah menejemen memori didalam banyak hal, tetapi masih
memiliki kekurangan atau keterbatasan di dalam pengakses. Dimana keterbatasan
akses hanya sebatas addres memori yang ada secara fisik ( memori nyata ).
Misalnya
memori 64 MB maka addres maksimum yang dapat diakses hanya sebesar 64 MB saja.
Pada hal banyak program yang akan diakses yang melebihi 64 MB. Untuk mengatasi
hal tersebut agar kemampuan akses lebih besar lagi maka dibentuklah memori maya
( yang pertama sekali di kemukakan oleh Fotheringham pada tahun 1961 untuk
system komputer Atlas di Universitas Manchester, Inggris).
Dengan
memori maya program yang besar tadi akan dapat diterapkan pada memori kecil saja,
misalnya program 500 MB dapat ditempatkan secara maya di memori 64 MB. Untuk
mengimplementasikan memori maya tersebut dapat dilakukan dengan tiga cara :
1.
Memori
system Paging
Untuk
menginplementasikan addres maya yang besar ke dalam memori yang kecil diperlukan
index register, base register, segment register dan MMU (Memory Menegement Unit).
· Pemetaan Memori Sistem
Paging
Sistem
kinerja komputer akan menerjemahkan alamat maya menjadi alamat fisik. Dengan
kata lain dalam system memori maya alamat memori tidak langsung di tuliskan ke
BUS tetapi terlebih dahulu dimasukkan ke MMU untuk diterjemahkan. Ada dua
kemungkinan keluaran MMU yaitu :
1.
Alamat yang dicari ada dimemori nyata, maka proses dapat langsung dikerjakan.
2.
Alamat yang dicari tidak ada didalam memori nyata, maka MMU mengeluarkan page
fault, yaitu permintaan alokasi memori untuk proses itu.
MMU
mempunyai fungsi untuk memetakan memori maya ke memori fisik. Apabila alamat
memori yang dipetakan tidak tersedia di memori fisik, MMU menertibkan exception
page fault yang melewatkan ke system operasi untuk menengani.
Implementasi
Pemetaan Memori sistem paging
Apabila
exception page fault meminta alokasi memori akan ditangani oleh system operasi
yaitu memilih partisi yang telah selesai diakses dan kemungkinan proses ini
akan digunakan lagi, dalam waktu yang lama lagi. Jika sudah dipilih maka
program akan dikosongkan dari memori dan selanjutnya program yang alamatnya
yang diminta akan dimasukkan ke memori.
·
Proses Pemetaan Pada
MMU
Dibawah
ini adalah suatu proses pemetaaan memori yang terjadi pada MMU. Alamat maya
terdiri dari bagian nomor page dan offset. Alamat ini dicarikan didalam tabel
page, bila ketemu maka MMU mengeluarkan page frame (register alamat fisik). Register
alamat fisik terdiri darei nomor page dan offset, dimana nomor page frame lebih
sedikit dari nomor page.
Apabila
alamat tersebut tidak ada pada tabel page maka MMU mengeluarkan page fault.
2.
Sistem
Segmentasi
·
Pengertian Segmentasi
Secara
sederhana segmentasi bisa diartikan sebagai suatu ruang alamat atau segment
yang berada di memori. Segment-segment itu dalam keadaan independent. Setiap
segment berisi alamat 0 sampai maksimum secara linier. Panjang setiap segment
berbeda-beda sampai panjang maksimun, perobahan panjang segment terjadi selama
proses eksekusi.
Segment
stack bertambah ketika terjadi operasi push dan turun saat operasi pop, dimana
setiap segment merupakan ruang alamat terpisah segment-segment dapat tumbuh dan
mengkerut secara bebas tanpa mempengaruhi yang lain.
Alamat
terdiri dari dua bagian pada memori bersegment yaitu :
1. Nomor
segment
2. Alamat
pada segment ( offset ).
Segment
dapat berisi :
1. Prosedure
2. Array
3. Stack
4. Kumpulan
variable skala.
·
Sistem Segmentasi
Sistem
dengan memori maya dengan segmentasi murni adalah alamat maya adalah offset di
segment, setiap proses mempunyai tabel segment dan pada saat proses running
alamat awal maya tabel dimuatkan ke register dasar. Nomor segment digunakan
mencari deskriptor segment di tabel segment yang menyediakan alamat fisik awal
dari segment, panjang dan bit-bit proteksinya. Alamat fisik dihitung dengan
menambahkan alamat dasar segment ke alamat maya.
Skema
Segmentasi
Keunggulan
sistem ini dimana segment-segment tersebut saling berhubungan dengan unit-unit
program, sehingga segment – segment indeal untuk proteksi dan pemakaian
bersama.
Kelemahan
sistem ini adalah dimana segment – segment berukuran bervariasi menyebabkan
fragmentasi eksternal dan sulit menyelesaikan pertumbuhan dinamis.
Segment-segment tidak memetakan blok-blok disk untuk memori maya secara alami.
3.
Teknik
Kombinasi Paging Dan Segmentasi
Teknik
kombinasi pacing dan segmentasi adalah ruang alamat pemakai dibagi menjadi
sejumlah segment sesuai dengan kehendak pemrogram. Segment tersebut dibagi
menjadi sejumlah page berukuran tetap dan berukuran sama dengan page frame
memori utama. Jika segment kurang dari ukuran page, maka segnent hanya
memerlukan satu page.
Dari
segi pandangan pemrogram, alamat maya masih berisi nomor segment dan offset di
segment itu. Dari segi pandangan sistem, offset segment dipandang sebagai nomor
page dan offset page untuk page di segment yang dispesifiksikan. Penggabungan
dengan proses adalah tabel segment dan sejumlah tabel page, merupakan satu
tabel persegment proses.
Saat
proses running, register menyimpan alamat awal tabel segment untuk proses,
pemroses menggunakan bagian nomor segment untuk mengindeks tabel segment proses
guna menemukan tabel page untuk segment. Bagian angka page alamat maya
digunakan untuk indeks tabel page dan mencari nomor page korespondensi. Angka
tersebut kemudian dikombinasikan dengan bagian offset alamat maya untuk
menghasilkan alamat nyata yang diinginkan.
Ganti
halaman dilakukan apabila terjadi page fault. Page fault bukan
suatu jenis error yang fatal, page fault terjadi apabila ada
halaman yang ingin diakses tetapi halaman tersebut tidak terdapat di dalam
memori utama. Page fault pasti terjadi minimal satu kali saat pertama
kali halaman itu ingin diakses.
Prinsip
ganti halaman adalah sebagai berikut:
- Proses meminta halaman
tertentu.
- Jika halaman berada di memori,
tidak dilakukan ganti halaman.
- Jika halaman tidak berada di
memori, maka:
- Jika ada frame kosong, maka
halaman itu di-load ke dalam frame yang kosong tersebut.
- Jika tidak ada frame yang
kosong, maka pilih halaman yang akan di-swap dengan menggunakan
algoritma ganti halaman.
- Update tabel halaman dan table
memori.
- Restart proses.
ilustrasi Swapping
Semakin
banyak dilakukan swap, semakin sibuk pula CPU mengurus hal ini. Bila
berkelanjutan, maka akan terjadi thrashing. Thrashing adalah
keadaan di mana banyak terjadi page fault, sehingga mengakibatkan
utilisasi CPU menurun drastis karena lebih sibuk mengurusi pergantian halaman
daripada mengurusi proses.
Untuk
menghindari hal ini, diperlukan pemilihan algoritma ganti halaman yang baik.
Kriteria algoritma yang baik adalah:
- Menyebabkan page fault rate yang
rendah.
- Tidak menyebabkan thrashing .
- Tidak terlalu sulit untuk
diimplementasikan.
ALGORITMA
PENGGANTIAN PAGE
Saat terjaid page fault berarti
harus diputuskan page frame di memori fisik yang harus diganti. Kinerja sistem
akan baik jika page yang diganti dipilih yang tidak akan digunakan di masa
datang. Jika page yang diganti akan kembali digunakan, maka page akan
dikembalikan secepatnya yang berarti terjadi page fault berulang kali.
Banyaknya page fault menghasilkan banayk overhead.
1
Algoritma penggantian page acak
Mekanisme algoritma :
Setiap terjadi page fault, page yang
di ganti di pilih secara acak.
Teknik ini tidak memakai informasi apapun
dalam menentukan page yang di ganti,semua page di memori utama mempunyai bobot
sama untuk di pilih.teknik ini memiliki sembarang page,termasuk page yang
sedang di acu,teknik ini sangat buruk,percobaan menunjukkan algoritma acak
menimbulkan rate terjadinya page fault yang sangat tinggi.
2
Algoritma pengganti page optimal
Mekanisme algoritma
Dasar Algoritma ini adalah memiliki
page yang berpeluang di pakai kembali di masa datang yang paling kecil.
Pendekatan ini dapat dilakukan
dengan simulasi,tapi hanya spesifik suatu program.bila yang terbaik tidak di
mungkinkan,maka yang perlu di lakukan adalah berusaha mendekatinya.algoritma
pengganti page mengumpulkan dan memakai informasi untuk menentukan page yang di
ganti sehingga mendekati optimal.
Algoritma pengganti page optimal
penting untuk kajian teoretis,sebagai pembanding bagi algoritma-algoritma yang
lain.
Ilustrasi gambar :
3
Algoritma pengganti page NRU
Mekanisme algoritma
Pada algoritma ini,page di beri dua
bit mencatat setatus page,bit R dan M, yaitu:
Bit R : referenced(menyatakan page sedang di acu)
Bit R = 1 berati sedang di acu
= 0 berati tidak sedang di acu
Bit M : modified (menyatakan page telah di modifikasi)
Bit M = 1 berati di modifikasi
= 0 berati
tidak di modifikasi
Dengan 2 bit,maka page-page di
kelompokan menjadi 4 kelas page yaitu:
Kelas 0 : tidak sedang di acu,belum di modifikasi (R=0,M=0)
Kelas 1 : tidak sedang di acu,telah di modifikasi (R=0,M=1)
Kelas 2 : sedang di acu,belum di modifikasi (R=1,M=0)
Kelas 3 : sedang di acu,telah di modifikasi (R=1,M=1)
1. Memilih mengganti page kelas
bernomor terendah secara acak
2. Bila kelas tersebut kosong maka di
pilih page di kelas yang lebih tingggi,dan seterusnya.
4
Algoritma
pengganti page FIFO
Mekanisme algoritma
Algoritma ini memerlukan pengelolaan
senari page di memeori,elemen terdepan senari adalah page tertua dan ujung
belakang adalah page paling akhir datang.
Bila terjadi page fault,page elemen
terdepan(page tertua) di ganti dan page baru di tambahkan di ujung belakang
senari.Algoritma FIFO murni jarang digunakan,tetapi di kombinasikan (modif)
Ilustrasi gambar :
5
Algoritma penggantian Modifikasi dari FIFO
Kelemahan FIFO yang jelas adalah
algoritma dapat memilih memindahkan page yang sering di gunakan yang lama
berada di memeori.kemungkinan ini dapat di hindari dengan hanya memindahkan
page tidak di acu.page di tambah bit R mencatat apakah page di acu atau
tidak,bit R bernilai 1 bila di acu dan bernilai 0 bila tidak di acu.
Variasi dari FIFO antara lain :
1. Algoritma Penggantian page
kesempatan kedua
Mekanisme algoritma
Saat terjadi page fault,algoritma
memilih page elemen terdepan di ganti bila bit R bernilai 0
2. Algoritma penggantian clock page
Bila bit R berniali 1 ,maka bit page
terdepan senarai diseret menjadi 0 dan di letekan di ujung belakang
senarai.mekanisme ini kembali di terapkan ke elemen erikutnya.
6
Algoritma penggantian page LRU
Mekanisme algoritma
Algoritma LRU adalah ketika terjadi
page fault maka memindahkan page yang tidak di gunakan paling lama.
Masalah
Sangat mahal
Kemahalan disebabkan harus mengelola
senarai informasi seluruh page di memori.senarai harus terurut berdasarkan
kemutkhiran penggunaan.senarai harus di perbaharui setiap terjadi pengacuan
memori.begitu terjadi pengacuan memori,harus di lakukan operasi menemukan page
di senarai.di pindahkan sebagai terdepan yaitu paling akhir di acu.
Ilustrasi gambar :
MASALAH
UTAMA PADA SYSTEM PAGING:
1
Working Set Model
Prinsip Lokalitas
Terdapat 2 jenis jenis lokalitas:
1. Lokalitas berdasarkan waktu
(temporal locality), proses cenderung terkonsentrasi acuannya ke satu intercal
waktu eksekusi yang dekat. Observasi berikut mendukung prinsip, antara
lain : Looping, Subrutin, stack dan variable-variabel yang digunakan untuk
iterasi dan penjumlahan total.
2. Lokalitas berdasarkan ruang (spatial
locality), proses cenderung terkonsentrasi acuannya ke satu kelompok data yang
berdekatan. Observasi berikut mendukung prinsip ini, antara lain: traversal
pada array, eksekusi kode yang sekuen, kecenderungan pemrogram menempatan
variable yang terkait saling berdekatan.
Prinsip lokalitas diperoleh dari observasi bukan dari kajian
teoritis. Menunjukkan kecenderungan prilaku lingkungan system bukan tepat
eksak.
Konsekuensi prinsip lokalitas adalah program dapat berjalan
secara efisien saat satu subset page berkecenderungan tinggi saling mengacu
terdapat di memory.
Thrashing: peristiwa page fault yang sangat berlebihan.
Salah satu cara menghindari thrashing adalah dengan
menyediakan sebanyak mungkin bingkai sesuai dengan kebutuhan proses. Untuk
mengetahui berapa bingkai yang dibutuhkan adalah dengan strategi working set.
Strategi ini dimulai dengan melihat berapa banyak bingkai yang digunakan oleh
suatu proses. Working set model mengatakan bahwa sistem hanya akan
berjalan secara efisien jika proses diberikan bingkai yang cukup, jika bingkai
tidak cukup untuk menampung semua proses maka suatu proses akan ditunda, dan
memberikan halamannya untuk proses yang lain.
Working set model merupakan model lokalitas dari
eksekusi proses. Model ini menggunakan parameter (delta) untuk definisi working
set window. Kumpulan dari halaman dengan halaman yang dituju yang paling
sering muncul disebut working set.
Berdasarkan hal ini terdapat dua
teknik untuk memuatkan page, yaitu:
·
Prepaging, teknik memuatkan page-page lebih dulu sbelum
proses berjalan.
·
Demand paging, teknik yang segera memuatkan page begitu page
dibutuhkan.
Keakuratan Working set
tergantung pada pemilihan :
1. jika terlalu kecil tidak akan
mewakilkan seluruh lokalitas.
2.
jika terlalu besar menyebabkan overlap.
3.
jika tidak terbatas working set adalah kumpulan
halaman sepanjang eksekusi program.
Jika total permintaan > total bingkai, maka akan terjadi thrashing.
Jika ini terjadi maka proses yang sedang berjalan akan diblok.
2
Kebijaksanaan Penggantian Local Vs Global
Terdapat dua pendekatan untuk
mengganti page, yaitu:
·
Penggantian local adalah page yang dipilih untuk diganti
hanya pada partisi dimana proses diletakkan.
·
Penggantian global adalah page yang dipilih untuk diganti
adalah tempat kosong dengan tidak mempedulikan partisi proses. Dengan
penggantian global, page fault suatu proses dapat dilayani dengan memindahkan
page yang dimiliki proses lain.
3
Frekuensi Page Fault
Frekuensi
terjadinya page fault dapat dikendalikan dengan algoritma PFF (page fault
frequency algorithm). Dengan PFF harus didefinisikan ambang batas dan ambang
bawah frekuensi page fault. Bila proses melampaui ambang batas frekuensi page
fault maka dialokasikan lebih banyak page memory fisik untuk prose situ.
Apabila proses telah mancapai amabang bawah frekuensi page fault maka alokasi
page dihentikan.
4
Ukuran Page
Ukuran page ditentukan oleh
perancang system operasi.. ukuran page harus ditentukan agar system berperilaku
optimal. Beberapa pertimbangan, antara lain:
·
Ukuran page lebih kecil berarti jumlah page dan page frame
lebih banyak sehingga memerlukan table page lebih besar.
·
Ukuran page besar, berarti sejumlah informasi yang tidak
diacu juga dimasukkan ke memory utama sehingga terjadi fragmentasi internal
yang tinggi.
·
Transfer masukan/ keluaran relative sangat mengkonsumsi
waktu sehingga perlu meminimumkan Transfer masukan/ keluaran saat program
berjalan.
·
Program cenderung mengikuti prinsip lokalitas yang cenderun
berukuran kecil.
Penanganan Page Fault
Prosedur untuk menangani page fault adalah
sebagai berikut:
- CPU
mengambil (load) instruksi dari memori untuk dijalankan.
Pengambilan instruksi dilakukan dari halaman pada memori dengan mengakses
tabel halaman. Ternyata pada tabel halaman bit ter-set tidak valid atau invalid
(i).
- Interupsi
page fault terjadi sehingga interupsi tersebut menyebabkan
perangkat keras melakukan trap yaitu menjebak proses tersebut ke
dalam sistem operasi.
- Jika
referensi alamat yang diberikan ke sistem operasi ilegal atau dengan kata
lain halaman yang ingin diakses tidak ada (tidak berada di disk), maka
proses akan dihentikan. Namun jika referensi alamatnya adalah legal maka
halaman yang diinginkan akan diambil dari disk.
- Halaman
yang diinginkan akan dibawa dari disk ke memori utama (memori fisik).
- Tabel
halaman akan diatur ulang lagi sesuai dengan kondisi yang baru. Jika tidak
terdapat ruang kosong (free frame) di memori utama (fisik) untuk
menaruh halaman yang baru maka dilakukan penggantian halaman dengan
memilih salah satu halaman pada memori utama untuk digantikan dengan
halaman yang baru tersebut. Penggantian halaman dilakukan dengan
menggunakan algoritma tertentu. Jika halaman yang digantikan tersebut
sudah dimodifikasi oleh proses maka halaman tersebut harus ditulis kembali
ke disk.
- Setelah
halaman yang diinginkan sudah dibawa ke memori utama (fisik) maka proses
dapat diulang kembali. Dengan demikian proses sudah bisa mengakses halaman
karena halaman telah diletakkan ke memori utama (fisik).
Perlu diingat bahwa status (register, condition
code, counter insruksi) dari proses yang diinterupsi ketika terjadi page
fault akan disimpan sehingga proses dapat diulang kembali di tempat dan
status yang sama, kecuali jika halaman yang diinginkan sekarang telah berada di
memori dan dapat diakses.
Pada berbagai kasus yang terjadi, ada tiga komponen
yang akan dihadapi pada saat melayani page fault:
- Melayani
interupsi page fault
- Membaca
halaman
- Mengulang
kembali proses
Langkah-Langkah dalam Menangani Page Fault
Kinerja
Dalam proses demand paging, jika terjadi page
fault maka diperlukan waktu yang lebih lambat untuk mengakses memori
daripada jika tidak terjadi page fault. Hal ini dikarenakan perlu adanya
penanganan page fault itu sendiri. Kinerja demand paging ini
dapat dihitung dengan menggunakan effective access time yang dirumuskan
sebagai berikut:
effective access time = (1 – p) x ma + p
x page fault time
ma adalah memory access time, yang pada umumnya
berkisar antara 10 hingga 200 nanosecond. p adalah probabilitas
terjadinya page fault, yang berkisar antara 0 hingga 1. Jika p
sama dengan 0 yang berarti bahwa tidak pernah terjadi page fault, maka effective
access time akan sama dengan memory access time, dan itulah yang
diharapkan. Sedangkan jika p sama dengan 1, yang berarti bahwa semua
halaman mengalami page fault, maka effective access time-nya akan
semaikin meningkat.
Untuk mendapatkan effective access time, kita
harus mengetahui waktu yang diperlukan untuk menangani page fault.
Komponen-komponen dalam penanganan page fault terdiri dari tiga kelompok
besar, yaitu melayani interupsi dari page fault, membaca halaman, dan
mengulang kembali proses.
Penggunaan effective access time dapat
ditunjukkan dalam contoh berikut.
Contoh penggunaan effective address
Diketahui waktu pengaksesan memori (ma) sebesar 100
ns. Waktu page fault sebesar 20 ms. Maka effective access time = (1 – p)
x ma + p x page fault time = (1 – p) x 100 + p x 20000000 = 100 – 100p +
20000000p = 100 + 19.999.900p nanosecond
Pada demand paging, diusahakan agar kemungkinan
terjadinya page fault rendah, karena bila effective access time-nya
meningkat, maka proses akan berjalan lebih lambat.
EAT Demand Paging
Waktu akses memory = 200 nanosecond
Rata-rata waktu page-fault service time = 8 milliseconds
1 ms=106 ns
EAT = ((1 – p) x 200) + (p x (8 milliseconds))
= ((1 – p) x 200) + (p x 8,000,000)
= 200 + (p x 7,999,800)
Jika 1 dari 1.000 kali akses terjadi fault, maka EAT =
8.2 microseconds.
EAT bertambah menjadi 40 kali lipat dari waktu akses
memory
Jika ingin EAT tidak lebih dari 220ns (waktu akses
memori bertambah 10 %) maka :
220 > 200+7.999.800 x p
20 > 7.999.800 x p
p < 0,0000025, artinya p harus lebih kecil dari
kejadian page-fault sekali dalam 400.000 kali akses
Tiga komponen waktu utama saat terjadi page fault:
- service
page fault interrupt (1-100 microseconds)
- baca
page/page switch time (8 millisecond)
- Rata-rata
latency: 3 ms, seek: 5 ms, transfer: 0.05 ms
- restart
proses (1-100 microseconds)
0 komentar:
Posting Komentar