2. Pendahuluan
• Fokus pembelajaran yg dilakukan : bukan mempelajari Pemodelan
algoritma penggantian halaman/page secara teoritis, tetapi kearah :
bagaimana proses pemodelan ini bekerja
• beberapa pemodelan algoritma :
a. Belady’s Anomali
b. Stack Algorithms
c. The Distance String
April 25, 2011 Sistem Operasi 2
3. Pemodelan Algoritma
Belady’s Anomali
• secara intuitif, semakin banyak frame yang dimiliki memori, semakin
sedikit page fault yang akan terjadi.
• yang cukup mengejutkan, Belady (1969), menemukan anomaly dg
algo. FIFO dimana page fault justru lebih banyak terjadi ketika jumlah
frame=4 daripada jumlah frame=3, untuk virtual page=5.
• Virtual page : 0,1,2,3,4
April 25, 2011 Sistem Operasi 3
4. Pemodelan Algoritma
Gambar Belady’s Anomali* Tan 229 Keterangan gb(a)
1. Awal: semua frame kosong: tdk
ada page yang siap diacu
2. Page 0 diacu : Terjadi P
3. Page 1 diacu : Terjadi P
4. Page 2 diacu : Terjadi P
5. Page 3 diacu (page 0,1,2 siap
diacu,), terjaid P
6. Page 0 diacu (page 3,2,1 siap
diacu,), terjaid P
7. Page 1 diacu (page 0,3,2 siap
diacu,), terjaid P
8. Page 4 diacu (page 1,0,3 siap
diacu,), terjaid P
9. Page 0 diacu (page 4,1,0 siap
April 25, 2011 Sistem Operasi diacu,), tdk terjaid P 4
5. Pemodelan Algoritma
Stack Algorithm
• Banyak penelitian berkaitan dg Belady anomali
• Dpt dijelaskan dg konsep : stack algorithm
• Properti dari algoritma ini: M (m, r ) ⊆ M (m + 1, r )
Ket: Kumpulan page dlm M dg bag. atas=m entry dan ref. string=r juga termuat
dlm M dg bag. atas=m+1 entry dan ref. string=r
• Contoh stack algo.: LRU,Optimal sementara FIFO bukan stack algo.
Konsep
• Proses akses memori dinyatakan dlm bentuk list: reference string
• Karakteristik Paging System :
• Reference string
• Page replacement algorithm
• Jumlah frame yg tersedia dlm memori :m
April 25, 2011 Sistem Operasi 5
6. Pemodelan Algoritma
Konsep
• Terdapat :M yg merupakan internal array utk menjaga state dari memori
• M terdiri n baris, dg n=jumlah virtual page, M dibagi menjadi dua bagian
• Bagian atas = m, banyaknya frame, berisi page –page yg saat ini masih berada
di memori
• Bagian bawah=n – m, berisi page-page yg telah diacu dan keluar dari memori
Prinsip Kerja
• Ketika terjadi Page Fault, tdp 2 kemungkinan
• Page yg diacu tdk ada dibag. Bawah M 1 page baru masuk ke bag. Atas, 1
page lama keluar dari bag. Atas masuk ke bag. Bawah M
• Page yg diacu ada dibag. Bawah M 1 page baru diambil dr bag.bawah M,
dimasukkan ke bag.atas M. Kedua bag. M diatur ulang.
• Tidak terjadi Page Fault bag. Atas di atur ulang (tdk untuk FIFO)
April 25, 2011 Sistem Operasi 6
7. Pemodelan Algoritma
Gambar Memory aaray M dg 8 vir. Page, 4 frame, algo=LRU* Tan 229
Bagaimana bila menggunakan algo. FIFO ?
April 25, 2011 Sistem Operasi 7
8. Pemodelan Algoritma
The Distance String
• Dalam stack algorithm, biasanya reference string akan lebih baik bila dinyatakan
dlm bentuk yg lebih abstrak drpd nomor page yg sebenarnya
• cara lain menyajikan reference string : menggunakan distance string, yg
menyatakan jarak relatif antara top stack dg page yang akan diacu.
• Distance string ini tdk hanya terkait dg reference string, ttp juga dg algo.
penggantian hal. Berkaitan pemilihan page yg akan diremove.
• Berikut gbr pdf :prob . Page fault tdk terjadi antara 2 penyajian ref. string*
April 25, 2011 Sistem Operasi 8
9. Pemodelan Algoritma
Memprediksi tingkat Page Fault
• Salah satu sifat distance string adalah dapat digunakan utk mempredksi jumlah
page fault yg akan terjadi utk berbagai macam ukuran memori.
• Misal
• Fm : Banyak Page Fault dg m : banyak frame pd memori
• Ck : banyaknya event distance=k,
• C∞ : banyaknya event distance = ∞
• n : jumlah virtual page
• Berikut formula memprediksi page fault
n
Fm = C∞ + ∑C k
k = m +1
April 25, 2011 Sistem Operasi 9
10. Pemodelan Algoritma
Memprediksi rata-rata/tingkat Page Fault
• Berikut adalah contoh perhitungan berdasarkan gambar ppt hal 7
April 25, 2011 Sistem Operasi 10
11. ISU-ISU DESAIN PAGING
SYSTEM
Kebijakan alokasi Lokal vs Global
• Kebijakan alokasi lokal vs global ini terkait dg beberapa algoritma penggantian
halaman ketika page fault terjadi .
• contoh :3 proses A,B,C sedang dijalankan, terjadi page fault pada A. Misal
digunakan algoritma LRU, masalahnya adalah pada area mana LRU digunakan ?
• Page pengganti berasal dari page yg telah dialokasikan ke A saja lokal
• Page pengganti bisa berasal dari mana saja global
• Secara umum global lebih baik drpd lokal, apalagi bila variasi ukuran sangat besar
• Beberapa algo. Dpt menggunakan 2 strategi ini : global /lokal (FIFO, LRU),
sementara algo. Lain hanya dpt menjalankan salah satu saja, misal algo. Working
set dan WSClock hanya menjalankan startegi lokal saja.
• Gambar : local vs global Tan 235 -
April 25, 2011 Sistem Operasi 11
12. ISU-ISU DESAIN PAGING
SYSTEM
Kebijakan alokasi Lokal vs Global
• Bila lokal digunakan dan working set tumbuh: trashing * terjadi
• Bila global digunakan: sistem harus secara kontinu melihat banyaknya frame yg
harus diassign pada setiap proses.
• Dg me-monitor ukuran working set menggunakan umur bits tdk bisa
mencegah trashing
• Menggunakan algortima alokasi frame ke proses mula-mula setiap proses
dimulai dg ukuran page yg proporsional, ttp alokasi frame harus diupdate scr
dinamis PFF (Page Fault Frequency) algorithm
• PFF: memberikan info. ttg kapan alokasi page harus ditambah/dikurangi, tanpa
menunjuk page mana yg harus dihapus mengontrol ukuran alokasi
• PFF: tingkat page fault menurun sebanding dg banyaknya frame. Bila page fault
tinggi alokasi frame bertambah
• Pengukuran page fault: banyak fault/detik
April 25, 2011 12
Sistem Operasi
13. ISU-ISU DESAIN PAGING
SYSTEM
Gambar Kebijakan alokasi Lokal vs Global
April 25, 2011 Sistem Operasi 13
14. ISU-ISU DESAIN PAGING
SYSTEM
Pengendalian Beban
• Meskipun algo. Penggantian hal terbaik dan alokasi global sudah digunakan
masih dpt terjadi system trashes
• Salah satu indikasi: beberapa proses memerlukan memori yg lebih dan tidak ada
lagi memori yg dpt diberikan ke proses tsb tanpa melukai proses lain
• Cara mengatasinya : melakukan swapping thd beberapa proses ke disk dan
membebaskan page-page yg dipegangnya. Bila trashing masih terjadi
banyaknya proses yg swapp out’ ditambah
April 25, 2011 Sistem Operasi 14
15. ISU-ISU DESAIN PAGING
SYSTEM
Ukuran Halaman (Page Size)
• Menentukan page size harus memperhatikan kelebihan/kelemahan masing2
• Ada 2 alasan, menggunakan ukuran halaman kecil
• Utk ukuran yg besar tdp text, data, stack segment yg tdk memenuhi
sejumlah hal. secara keseluruhan setengah page bisa kosong. Ruang yg
tdk dipakai internal fragmentation. Bila n: segment dlm memori dan p:
ukuran page (bytes) internal fregementation = np/2 (besar)
• Ukuran yg lebih besar lebih banyak program yg tdk digunakan dlm memori
• Dalam bbrp mesin, page table harus diload ke hardware register setiap kali CPU
berpindah dari 1 proses ke proses lain. Pada mesin ini, memiliki ukuran page yg
kecil berarti waktu utk meload page table menjadi lebih lama.
• Ruang yg ditempati page table bertambah seiring dg mengecilnya ukuran page
April 25, 2011 Sistem Operasi 15
16. ISU-ISU DESAIN PAGING
SYSTEM
Ukuran Halaman (Page Size)
• Secara matematik, total overhead antara page table dan internal fragmentation
loss ini dapat dirumuskan sbb: Ukuran page table
Besar bila ukuran p kecil
overhead = se + p
p 2
• Dimana Internal fragmentation
Besar bila ukuran p besar
• s : rata-rata ukuran proses
• e : rata-rata entry yg diperlukan setiap page
Ukuran p optimum ???
• p : rata-rata ukuran page
• Dg menurunkan thd p (mencari nilai optimum p), diperoleh
− se 2+ 1 =0
p 2
• Nilai p optimum : p = 2 se
April 25, 2011 Sistem Operasi 16
17. ISU-ISU DESAIN PAGING
SYSTEM
Ukuran Halaman (Page Size)
• Contoh s= 1 MB dan e=8 bytes.
• Ukuran p yang optimum : 4 KB
• Nilai Overhead = 4 KB
• Misal digunakan nilai p lain
• p= 2 KB
• Overhead = 5 KB
• p = 8 KB
• Overhead = 5 KB
April 25, 2011 Sistem Operasi 17
18. ISU-ISU DESAIN PAGING
SYSTEM
Pengaruh Ukuran Page terhadap Page Fault Rate
• Apa analisis anda terhadap grafik ini ?
– Bila ukuran page cukup kecil, maka page
fault rate yang terjadi juga kecil. Kenapa
bisa begitu ?
• Memori akan diisi oleh page-page yang
sering digunakan
– Bila ukuran page hampir sama dengan
setengah ukuran proses, maka page fault
rate yang terjadi cenderung besar.
Apa penyebabnya ?
• Manfaat lokality berkurang karena semakin banyak data yang
diambil dari memori tetapi tidak segera digunakan
– Bila ukuran page hampir sama dengan ukuran proses, maka
page fault rate yang terjadi juga kecil. Kenapa bisa begitu ?
• Hampir seluruh page yang dibutuhkan sudah ada di memori
April 25, 2011 Sistem Operasi 18
19. ISU-ISU DESAIN PAGING
SYSTEM
Pengaruh Alokasi Frame terhadap Page Fault Rate
• Apa analisis anda terhadap grafik ini ?
– Bila jumlah frame yang dialokasikan
ke suatu proses semakin sedikit, maka page
fault rate-nya akan naik drastis. Kenapa bisa
begitu ?
• Jumlah page yang berada di memori sedikit
– Bila jumlah frame yang dialokasikan ke suatu
proses semakin banyak, maka page fault
rate-nya akan semakin turun. Apa penyebabnya ?
– Bila seluruh page berada di dalam memori, maka
page fault rate-nya menjadi nol. Kenapa bisa
begitu ?
April 25, 2011 Sistem Operasi 19
20. ISU-ISU DESAIN PAGING
SYSTEM
Ruang Data dan Instruksi (Menyatu dan Terpisah)
• Sebagian besar komputer memiliki struktur alamat tunggal utk menyimpan
program/instruksi dan data
• Masalah muncul : bila spcae-nya terlalu kecil, programmer harus mengatur agar
semuanya menjadi cukup
• Alternatif lain : memisah antara alamat ruang Instruksi (I-Space) dan Data (D-
Space)
• Pada pendekatan ini, linker harus tahu kapan I-Space dan D-Space digunakan
• Urutannya: setelah I-Space diikuti D-Space
• Kedua alamat dapat merupakan halaman yg saling independen
• Masing-masing memiliki page table yg dipetakan dari virtual page ke frame
• Ketika hardware ingin mengambil suatu instruksi, maka ia tahu bhw ia harus
menggunakan I-Space dan D-Space.
April 25, 2011 Sistem Operasi 20
21. ISU-ISU DESAIN PAGING
SYSTEM
Shared Pages
• Dalam sistem multiprograming berskala besar, akan lebih efisien bila beberapa
user menjalankan program yang sama dalam satu waktu
• Akan lebih efisen bila berbagi pages utk menghindari adanya 2 page yg sama dlm
memori dalam satu waktu
• Tidak semua page bisa di-share, scr umum Instruksi page dapat dishare,
sedangkan Data-page tdk dapat di-share
• Bila struktur I-Space dan D-Space digunakan, maka implementasi shared pages
dpt dilakukan scr langsung, dimana bbrp proses akan menggunakan page table yg
sama utk I-Space, dan page table yg berbeda utk D-Space.
• Dlm implementasinya, biasanya process table memiliki struktur data yg
independent dan memiliki 2 pointer, satu menunjuk ke I-Space, lainnya menunjuk
ke D-Space.
April 25, 2011 Sistem Operasi 21
22. ISU-ISU DESAIN PAGING
SYSTEM
Shared Pages
• Masalah yg timbul
• Misal proses A dan B menggunakan program yg sama, ketika scheduler
memutuskan semua isi program A dihapus dan diganti dg program yg lain, ini akan
membuat B harus men-generate sejumlah besar page fault utk membawanya
kembali
• Hal yg mirip juga terjadi ketika A berakhir, penting utk mengetahui apakah program-
page masih digunakan proses lain / tdk, cost utk searching keseluruhan table utk
hal ini terlalu mahal, solusinya adalah dg menggunakan struktur data khusus utk
menjaga track dari shared pages ini.
• Share data sebenarnya masih memungkinkan sepanjang proses –proses yg
menggunakannya hanya melakukan operasi READ data saja, tanpa
memodifikasinya.
April 25, 2011 Sistem Operasi 22
23. ISU-ISU DESAIN PAGING
SYSTEM
Cleaning Policy
• Ketika page frame: penuh, sebelum page baru masuk, maka page lama harus
ditulis dulu ke disk sebelum dikeluarkan
• Utk menjamin ketersediaan frame yg bebas ini, diperlukan paging daemon
• Paging daemon hanya berjalan dlm periode tertentu utk memeriksa status memori
• Jika terlalu sedikit frame yg bebas, paging daemon mulai memilih page yg akan
dikeluarkan, termasuk menulis page tsb ke disk bila dianggap perlu.
• Dlm kondisi yg sgt jarang, paging daemon akan menjamin semua page dlm frame
adalah clean (sudah ditulis dlm disk), agar ketika dikeluarkan tdk perlu repot
menulis ke disk
• Utk implementasinya, menggunakan Clock algo. dg 2 tangan. Tangan ke-1
dikendalikan paging daemon. Ketika menunjuk dirty page, maka page tsb akan
ditulis ke disk. Tangan ke-2 utk penggantian page seperti dlm algo. Clock.
April 25, 2011 Sistem Operasi 23
24. ISU IMPLEMENTASI
• Dalam implementasinya, SO tidak hanya melakukan pilihan berdasarkan
teori secara umum, seperti lokal vs global, NRU vs FIFO dsb.
• Juga harus memperhatikan sejumlah isu implementasi praktis: masalah
dan solusinya.
• Beberapa topik utama:
• Keterlibatan SO dlm paging
• Detail Page Fault Handling
• Backup instruksi
• Backing Store
• Pemisahan antara Policy dan Mekanisme
April 25, 2011 24
25. ISU IMPLEMENTASI
Keterlibatan SO dlm paging
• Ada 4x SO harus bekerja terkait dg paging, yaitu saat
• Kreasi proses
• Eksekusi proses
• Terjadi page fault
• Terminasi proses
April 25, 2011 25
26. Keterlibatan SO dlm
paging
Kreasi proses dan Eksekusi proses
• Ketika sebuah proses dibuat dlm sebuah sistem paging, SO harus
menentukan ukuran data dan program pada saat awal dan membuat
sebuah page table utk itu.
• Ruang yg dialokasi di memori utk page table harus diinisialisasi
• Ketika proses di-run, page table ada di memori, tetapi ketika proses di
swap-out, harus ada swap area didalam disk. Swap area diinisialisasi dg
program text dan data, shgg ketika page fault terjadi, page dpt segera
dibawa dlm disk.
• Informasi yg terkait dg page table dan swap area pada disk juga harus
direkam (dlm tabel proses)
April 25, 2011 26
27. Keterlibatan SO dlm
paging
Eksekusi proses
• Ketika suatu proses akan dieksekusi, MMU harus direset utk proses baru dan jejak-
jejak dari eksekusi proses sebelumnya disimpan (dlm TLB).
• (optional) beberapa / semua page proses dibawa ke memori utk mengurangi
terjadinya page fault
Terjadi Page Fault
• Ketika page fault terjadi, SO harus membaca register utk menentukan virtual
address yg menyebabkan fault. Dari info ini, SO akan menghitung page yg
dibutuhkan dan yang akan dipindah ke disk
• SO kemudian mencari frame yg kosong utk menyimpan page baru, mengeluarkan
page lama dari frame jika diperlukan
• Terakhir ia harus memback-up program counter ketika fault terjadi shhg intruksi dpt
berlanjut lagi.
April 25, 2011 27
28. Keterlibatan SO dlm
paging
Terminasi Proses
• Ketika suatu proses berakhir/keluar, SO juga harus melepas page table-
nya, ruang yang sebelumnya ditempati page dlm disk.
• Jika bbrp page di-share dg proses lain, maka page-page dlm disk atau
memori hanya akan dilepas bila proses terakhir yg menggunakannya
telah berakhir. .
April 25, 2011 28
29. Penanganan Page Fault
Berikut adalah event-event scr detail ketika page fault terjadi
• Hardware yg terkait dg kernel, menyimpan program counter dlm stack
• Sebuah kode assembly rutin dijalankan utk meyimpan “general register” dan info volatile lainnya,
menjaga agar SO tdk merusaknnya. SO dipanggil sbg prosedur.
• SO menemukan page fault terjadi dan berusaha mencari virtual page yg diperlukan. Seringkali
salah satu register berisi info ini, jika tdk SO harus mendapatkan kembali program counter,
mengambil instruksi dan menguraikannya dlm s/w
• Ketika virtual address yg menyebabkan fault diketahui, SO akan memeriksa apakah alamatnya
valid dan ‘proteksinya’ konsisten. Bila tdk proses akan di-terminasi, bila ya SO akan melihat
apakah ada frame yg free. Jika tdk ada frame free, algo penggantian page akan dijalankan.
• Jika page frame yg dipilih: “dirty”, maka page akan dijadwalkan utk ditransfer ke disk. Selama
transfer berlangsung, proses lain dpt berjalan, frame ditandai sbg busy, agar tdk digunakan oleh
proses lain.
April 25, 2011 29
30. Penanganan Page Fault
Berikut adalah event-event scr detail ketika page fault terjadi
• Ketika disk interupt terjadi sbg indikasi page telah datang, maka page table akan diupdate
sesuai posisinya dan frame ditandai dlm status ‘normal’
• Instruksi fault dibackup pada status ia mulai, program counter direset kembali pada awal
instruksi
• Proses faulting dijadwalkan, SO kembali ke awal dipanggil oleh kode assembly
• Kode assembly ini me-load kembali register dan info lainnya dan mengembalikan ke user ytk
melanjutkan instruksi
April 25, 2011 30
31. Backup Instruksi
• Ketika program mengacu page yg tdk ada dlm memori, instruksi akan menyebabkan
fault, dan trap akan terjadi. Setelah SO memperoleh page yg diperlukan, maka ia dpt
memulai kembali pada instruksi yg menyebabkan fault.
• Apa yg terjadi bila SO tdk menemukan instruksi ketika fault terjadi ?
• Backup utk instruksi diperlukan
• Sesaat sebelum instruksi dieksekusi, program counter akan dicopy terlebih dahulu
ke “ hidden internal register “
• Dg adanya info ini, SO dpt kembali dg mudah pada instruksi awal ketika fault terjadi
April 25, 2011 31
32. Penguncian page dlm memory
• Ketika paging algorithm bersifat global, maka akan ada sedikit peluang yg terjadi:
page yg berisi buffer I/O akan terpilih dan dihapus dari memori.
• Jika device I/O saat itu sdg menjalankan DMA (Direct Memory Access) transfer pada
page tsb, penghapusan page tsb akan berakibat bagian data yg ditulis juga akan ikut
hilang.
• Salah satu solusinya: page yg berisi buffer i/o akan dikunci (disebut juga pinning)
dlm memori shgg tidak bisa dihapus.
April 25, 2011 32
33. Backing Store
• Ini berkaitan dg area dlm disk ketika sebuah page di keluarkan (swapp out)
Algo 1 (paling sederhana)
• Mengalokasikan space khusus dlm disk sbg swap area .
• ketika sistem di-boot, area ini kosong dan ketika ketika suatu proses (swap-out)
dimulai, sebagian area akan berkurang sesuai pesanan proses tsb. Setelah proses
tsb seleai, ruang proses dlm disk akan dikosongkan kembali.Swap area dikelola dlm
sebuah list (bagian-bagian yg telah kosong/ free chunks)
• Alamat page: semua page dlm memori memiliki ‘copy’ dlm swap area dg ukuran yg
sama .
• Masalah : proses dpt bertambah ukurannya setelah dimulai, oleh sebab itu akan
lebih baik jika memesan area yg terpisah utk text, data dan stack kemudian
membiarkan setiap area berisi lebih dari satu bagian/ chunk dlm disk.
April 25, 2011 33
34. Backing Store
Algo 2
• Tidak mengalokasikan ruang scr khusus, alokasi disk space hanya utk suatu page
yang di-swapp out dan men-dealokasikan kembali ketika ia di-swapp-in
• Dalam cara ini, proses-proses di memori tdk mengikat apapun di swap space
• Kerugian : Harus ada tabel proses dlm memori utk memberitahu utk alamat setiap
page
• Gambar 2 alternatig backing store (Tan 247)
April 25, 2011 34
35. Backing Store
Algo 2
• Tidak mengalokasikan ruang scr khusus, alokasi disk space hanya utk suatu page
yang di-swapp out dan men-dealokasikan kembali ketika ia di-swapp-in
• Dalam cara ini, proses-proses di memori tdk mengikat apapun di swap space
• Kerugian : Harus ada tabel proses dlm memori utk memberitahu utk alamat setiap
page
• Gambar 2 alternatig backing store (Tan 247)
April 25, 2011 35
36. Backing Store
Gambar 2 alternatif backing store (Tan 247)
April 25, 2011 36
37. SEGMENTASI
• Ingat bhw segementasi adalah satu teknik utk mengimplementasikan virtual memori
(selain paging).
• Sejauh ini, virtual memori yg dibahas adalah 1 dimensi
• Memiliki 2 atau lebih ruang alamat yg terpisah : lebih baik dari 1 alamat
• Misalkan dimiliki 5 tabel yang berkaitan, yaitu
• Source text
• Symbol table {berisi nama dan atribut variabel}
• Constant {berisi semua kontanta integer dan floating point}
• Parse tree {berisi analisis syntaksis program}
• Call stack {untuk pemanggilan prosedur}
• Apa yg terjadi bila semua tabel ini disimpan 1 dimensi ?
• 5 tabel tsb harus disimpan secara berurutan dlm tabel
• Bagaimana pengaturannya? Setiap tabel bisa mengecil / membesar.
April 25, 2011 37
38. SEGMENTASI
Gambar 2 alternatif penyimpanan page tabel: 1 dimensi dan banyak dimensi*
April 25, 2011 38
39. SEGMENTASI
• Solusinya : menyediakan banyak ruang alamat yang independent : segment
• Segment berisi sederetan alamat dg panjang tertentu.
• Segmen memiliki panjang yg berbeda, bisa bertambah atau berkurang panjangnya
secara independen. Ketika suatu prosedur pada suatu segmen dimodif / recompiled,
prosedur lain(pada segmen lain) tdk perlu diubah karena tdk ada alamat awal yg
diubah. Ini sangat berbeda kalau semua prosedur disimpan dlm 1 alamat sama
• Umumnya sebuah segmen berisi: sebuah prosedur, array, stack atau koleksi skalar
• Segmentation juga menyediakan sharing prosedur/data utk beberapa proses (ada
salah satu segmen yg scr khusus dialokasikan utk di-share). Contoh yg paling umum
: shared library
April 25, 2011 39
40. SEGMENTASI
• Perbandingan antara paging dan segmentasi
Hal paging Segmentation
Programmer perlu tahu bhw teknik ini digunakan ? Tidak Ya
Jumlah linear addres space 1 Banyak
Dptkah total address space melampaui ukuran memori fisik? Ya Ya
Dptkah prosedur dan data diproteksi scr berbeda dan tidak Ya
terpisah ?
Fluktuasi ukuran tabel diakomodasi dg mudah ? tidak Ya
Apakah sharing prosedur difasilitasi ? tidak Ya
Mengapa teknik ini diciptakan ? ... ...
• Paging : utk memperoleh linear address yg besar tanpa harus membeli memori fisik yg lebih banyak
• Segmentasi : mempermudah proteksi dan sharing data/program serta mengakomodasi fluktuasi
ukuran tabel
April 25, 2011 40
41. SEGMENTASI
Implementasi Segmentasi Murni/sederhana
• Implementasi segmentasi dan paging berbeda dlm hal: ukuran page tetap
sedangkan ukuran segment tidak tetap
• Ada kemiripan antara segmentasi dan partisi dinamis, perbedaannya adalah :
dalam segmentasi :
• Program boleh menempati lebih dari satu partisi/segmen
• Letak program di dalam memori boleh tidak berurutan (terpisah-pisah)
• Eksternal fragmentasi masih dapat terjadi tetapi ukurannya lebih kecil (kurang dari
satu segment)
• Kelebihan pengalamatan pada segmentasi :
• Untuk tujuan modularitas, programmer dapat membagi-bagi programnya dan
ditempatkan pada segment-segment berbeda di dalam memori dan lebih fleksibel
• Kelemahannya:
• Programmer harus mengetahui ukuran maksimum dari segment
• Implementasi translasi ke dalam hardware lebih kompleks
April 25, 2011 41
42. SEGMENTASI
Implementasi Segmentasi Murni/Sederhana
• Implementasi antara segmentasi (murni) dan paging (sederhana) berbeda scr
mendasar dalam hal : page berukuran tetap, ukuran segmen tidak tetap. Mirip dg
partisi dinamis (digunakan dlm swapping), dlm segmentasi juga tdp compaction
• Gambar konfigurasi dg segmentasi, compaction segmen: e (Tan 253)
April 25, 2011 42
45. SEGMENTASI
Implementasi Segmentasi dg Paging
• Contoh pada MULTICS
• Menyediakan tiap program dg virtual memori sampai 218 segmen (>250000)
• 1 program memiliki 1 tabel segmen dg 1 deskriptor(36 bits) per-segmen
• Masing-masing segmen mencapai 64K word
• Segmen deskriptor mengindikasikan apakah segment berada dlm memori
ataukah tdk, jika ya maka page table-nya juga dlm memori
• Setiap segmen adalah sebuah virtual address yg dibagi dlm page-page spt cara
sebelumnya
• Alamat dlm MULTICS berisi 2 bag: nomor segment(18) dan alamat dlm segment
• Alamat dlm segmen dibagi menjadi: nomor page(6) dan offset dlm page (10)
April 25, 2011 45
46. SEGMENTASI
Implementasi Segmentasi dg Paging
• Contoh pada MULTICS
• Segmen deskripto(kiri) dan segment yg menunjuk
ke page table (kanan)
April 25, 2011 46
47. SEGMENTASI
Implementasi Segmentasi dg Paging
• Contoh pada Pentium
• Menyediakan tiap program dg virtual memori sampai 16K segmen independen
• Masing-masing segemen mencapai 1 MB dg 32 bits segmen deskriptor
• Virtual memori berisi 2 tabel: LDT dan GDT (Local & Global Descriptor Table)
• Tiap program memiliki LDT sendiri-sendiri, GDT: dishared utk semua program
• 16 K segmen dibagi menjadi 2: 8K utk LDT dan 8 K utk GDT
• Ketika akan mengakses suatu segmen, program akan meload selector
• CS register memegang selector utk Code Segment, DS register memegang
selector utk Data Segment. Selector memiliki 16 bits
• 16 bits selector :
• 13 bits : antry number/segemn descriptor (2 13= 8K)
• 1 bit : GDT/LDT
• 2 bit : proteksi (0-3)
April 25, 2011 47
48. SEGMENTASI
Implementasi Segmentasi dg Paging
• Contoh pada Pentium
• Ketika selector di load ke segment register, maka ia akan berkorespondensi dg
descriptor yg diambil dari LDT/GDT
• Linear addres (32 bits) dibentuk dari segmen dan offset
• Struktur linear address: 10 (Dir) : 10(page) : 12(offset)
April 25, 2011 48
49. SEGMENTASI
Resume Karakteristik Paging dan Segmentasi (Stalling 348)
Hal paging VM dg Segmentasi VM dg
Paging Segmentasi
Main memori dipartisi dlm frame Ya Ya tdk tdk
Program dipecah menjadi page- Ya ya tdk tdk
page oleh kompiler / SO
Program dipecah menjadi tdk tdk ya Ya
segmen-segmen oleh
programmer ke kompiler / SO
fragmentasi Internal internal eksternal Eksternal
Yg dikelola SO utk tiap proses Page table Page table Segment table Segment table
Jenis List Yg dikelola SO Free page Free page Free hole dlm Free hole dlm
memori memori
Perhitungan abs. address Page number, Page number, Segment Segment
offset offset number, offset number, offset
Yg ada dlm memori ketika suatu All pages Hanya page All segment Hanya segment
proses dijalankan yg dibaca sj yg dibaca sj
April 25, 2011 49