bab 7 memory lanjutan pdf
TRANSCRIPT
MANAJEMEN MEMORI (2)
Pemodelan algoritma penggantian halamanisu-isu desain paging systemisu-isu desain paging system
isu-isu implementasisegmentasi
• 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
Pendahuluan
April 25, 2011 2SistemSistem OperasiOperasi
b. Stack Algorithms
c. The Distance String
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
Pemodelan Algoritma
April 25, 2011 3SistemSistem OperasiOperasi
frame=4 daripada jumlah frame=3, untuk virtual page=5.
• Virtual page : 0,1,2,3,4
Gambar Belady’s Anomali* Tan 229
Pemodelan Algoritma
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
April 25, 2011 4SistemSistem OperasiOperasi
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
diacu,), tdk terjaid P
Stack Algorithm
• Banyak penelitian berkaitan dg Belady anomali
• Dpt dijelaskan dg konsep : stack algorithm
• Properti dari algoritma ini:
Ket: Kumpulan page dlm M dg bag. atas=m entry dan ref. string=r juga termuat
Pemodelan Algoritma
( ) ( )rmMrmM ,1, +⊆
April 25, 2011 5SistemSistem OperasiOperasi
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
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
Pemodelan Algoritma
April 25, 2011 6SistemSistem OperasiOperasi
• 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)
Gambar Memory aaray M dg 8 vir. Page, 4 frame, algo =LRU* Tan 229
Pemodelan Algoritma
April 25, 2011 7SistemSistem OperasiOperasi
Bagaimana bila menggunakan algo. FIFO ?
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.
Pemodelan Algoritma
April 25, 2011 8SistemSistem OperasiOperasi
• 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*
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
• C : banyaknya event distance=k,
Pemodelan Algoritma
April 25, 2011 9SistemSistem OperasiOperasi
• Ck : banyaknya event distance=k,
• C∞ : banyaknya event distance = ∞
• n : jumlah virtual page
• Berikut formula memprediksi page fault
∑+=
∞ +=n
mkkm CCF
1
Memprediksi rata-rata/tingkat Page Fault
• Berikut adalah contoh perhitungan berdasarkan gambar ppt hal 7
Pemodelan Algoritma
April 25, 2011 10SistemSistem OperasiOperasi
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
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 11SistemSistem OperasiOperasi
• 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 -�
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
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 12SistemSistem OperasiOperasi
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
Gambar Kebijakan alokasi Lokal vs Global
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 13SistemSistem OperasiOperasi
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
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 14SistemSistem OperasiOperasi
• 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
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:
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 15SistemSistem OperasiOperasi
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
Ukuran Halaman (Page Size)
• Secara matematik, total overhead antara page table dan internal fragmentation
loss ini dapat dirumuskan sbb:
• Dimana
ISU-ISU DESAIN PAGING SYSTEM
2p
pseoverhead +=
Ukuran page tableBesar bila ukuran p kecil
Internal fragmentationBesar bila ukuran p besar
April 25, 2011 16SistemSistem OperasiOperasi
• Dimana
• s : rata-rata ukuran proses
• e : rata-rata entry yg diperlukan setiap page
• p : rata-rata ukuran page
• Dg menurunkan thd p (mencari nilai optimum p), diperoleh
• Nilai p optimum :
Besar bila ukuran p besar
Ukuran p optimum ???
021
2 =+−p
se
sep 2=
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
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 17SistemSistem OperasiOperasi
• Misal digunakan nilai p lain
• p= 2 KB
• Overhead = 5 KB
• p = 8 KB
• Overhead = 5 KB
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. Kenapabisa begitu ?
• Memori akan diisi oleh page-page yangsering digunakan
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 18SistemSistem OperasiOperasi
sering digunakan– Bila ukuran page hampir sama dengan
setengah ukuran proses, maka page faultrate yang terjadi cenderung besar.Apa penyebabnya ?
• Manfaat lokality berkurang karena semakin banyak data yangdiambil dari memori tetapi tidak segera digunakan
– Bila ukuran page hampir sama dengan ukuran proses, makapage fault rate yang terjadi juga kecil. Kenapa bisa begitu ?
• Hampir seluruh page yang dibutuhkan sudah ada di memori
Pengaruh Alokasi Frame terhadap Page Fault Rate
• Apa analisis anda terhadap grafik ini ?– Bila jumlah frame yang dialokasikan
ke suatu proses semakin sedikit, maka pagefault rate-nya akan naik drastis. Kenapa bisabegitu ?
• Jumlah page yang berada di memori sedikit
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 19SistemSistem OperasiOperasi
• 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, makapage fault rate-nya menjadi nol. Kenapa bisabegitu ?
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-
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 20SistemSistem OperasiOperasi
• 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.
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,
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 21SistemSistem OperasiOperasi
• 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.
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
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 22SistemSistem OperasiOperasi
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.
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
ISU-ISU DESAIN PAGING SYSTEM
April 25, 2011 23SistemSistem OperasiOperasi
• 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.
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:
April 25, 2011 24
• Beberapa topik utama:
• Keterlibatan SO dlm paging
• Detail Page Fault Handling
• Backup instruksi
• Backing Store
• Pemisahan antara Policy dan Mekanisme
ISU IMPLEMENTASIKeterlibatan SO dlm paging
• Ada 4x SO harus bekerja terkait dg paging, yaitu saat
• Kreasi proses
• Eksekusi proses
• Terjadi page fault
April 25, 2011 25
• Terjadi page fault
• Terminasi proses
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
April 25, 2011 26
• 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)
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
April 25, 2011 27
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.
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
April 25, 2011 28
memori hanya akan dilepas bila proses terakhir yg menggunakannya
telah berakhir. .
Penanganan Page FaultBerikut 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,
April 25, 2011 29
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.
Penanganan Page FaultBerikut 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
April 25, 2011 30
• 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
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
April 25, 2011 31
• 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
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 )
April 25, 2011 32
• Salah satu solusinya: page yg berisi buffer i/o akan dikunci (disebut juga pinning )
dlm memori shgg tidak bisa dihapus.
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
April 25, 2011 33
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.
Backing StoreAlgo 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
April 25, 2011 34
page
• Gambar 2 alternatig backing store (Tan 247)
Backing StoreAlgo 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
April 25, 2011 35
page
• Gambar 2 alternatig backing store (Tan 247)
Backing StoreGambar 2 alternatif backing store (Tan 247)
April 25, 2011 36
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
April 25, 2011 37
• 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.
SEGMENTASIGambar 2 alternatif penyimpanan page tabel: 1 dimensi dan banyak dimensi*
April 25, 2011 38
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
April 25, 2011 39
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
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
April 25, 2011 40
Dptkah prosedur dan data diproteksi scr berbeda dan terpisah ?
tidak Ya
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
SEGMENTASIImplementasi 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
April 25, 2011 41
• 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
SEGMENTASIImplementasi 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
SEGMENTASIImplementasi Segmentasi Murni/Sederhana
• Gambar konfigurasi dg segmentasi
April 25, 2011 43
SEGMENTASIImplementasi Segmentasi dg Paging
• Implementasi segmentasi dg paging : membagi program dlm segmen-segmen �
membagi tiap-tiap segemen dlm page-page (kombinasi keuntungan paging&segttn)
• Gambar segmentasi dg paging
April 25, 2011 44
SEGMENTASIImplementasi 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
•
April 25, 2011 45
• 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)
SEGMENTASIImplementasi Segmentasi dg Paging
• Contoh pada MULTICS
• Segmen deskripto(kiri) dan segment yg menunjuk
ke page table (kanan)
April 25, 2011 46
SEGMENTASIImplementasi 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)
•
April 25, 2011 47
• 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)
SEGMENTASIImplementasi 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
•
April 25, 2011 48
• Struktur linear address: 10 (Dir) : 10(page) : 12(offset)
SEGMENTASIResume Karakteristik Paging dan Segmentasi (Stallin g 348)
Hal paging VM dgPaging
Segmentasi VM dg Segmentasi
Main memori dipartisi dlm frame Ya Ya tdk tdk
Program dipecah menjadi page-page oleh kompiler / SO
Ya ya tdk tdk
April 25, 2011 49
Program dipecah menjadi segmen-segmen olehprogrammer ke kompiler / SO
tdk tdk ya Ya
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 memori
Free hole dlm memori
Perhitungan abs. address Page number,offset
Page number, offset
Segment number, offset
Segment number, offset
Yg ada dlm memori ketika suatu proses dijalankan
All pages Hanya page yg dibaca sj
All segment Hanya segment yg dibaca sj