bab 7 memory lanjutan pdf

49
MANAJEMEN MEMORI (2) Pemodelan algoritma penggantian halaman isu-isu desain paging system isu-isu desain paging system isu-isu implementasi segmentasi

Upload: dandi-aulia

Post on 25-Jul-2015

515 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Bab 7 memory lanjutan  pdf

MANAJEMEN MEMORI (2)

Pemodelan algoritma penggantian halamanisu-isu desain paging systemisu-isu desain paging system

isu-isu implementasisegmentasi

Page 2: Bab 7 memory lanjutan  pdf

• 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

Page 3: Bab 7 memory lanjutan  pdf

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

Page 4: Bab 7 memory lanjutan  pdf

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

Page 5: Bab 7 memory lanjutan  pdf

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

Page 6: Bab 7 memory lanjutan  pdf

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)

Page 7: Bab 7 memory lanjutan  pdf

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 ?

Page 8: Bab 7 memory lanjutan  pdf

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*

Page 9: Bab 7 memory lanjutan  pdf

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

Page 10: Bab 7 memory lanjutan  pdf

Memprediksi rata-rata/tingkat Page Fault

• Berikut adalah contoh perhitungan berdasarkan gambar ppt hal 7

Pemodelan Algoritma

April 25, 2011 10SistemSistem OperasiOperasi

Page 11: Bab 7 memory lanjutan  pdf

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 -�

Page 12: Bab 7 memory lanjutan  pdf

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

Page 13: Bab 7 memory lanjutan  pdf

Gambar Kebijakan alokasi Lokal vs Global

ISU-ISU DESAIN PAGING SYSTEM

April 25, 2011 13SistemSistem OperasiOperasi

Page 14: Bab 7 memory lanjutan  pdf

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

Page 15: Bab 7 memory lanjutan  pdf

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

Page 16: Bab 7 memory lanjutan  pdf

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=

Page 17: Bab 7 memory lanjutan  pdf

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

Page 18: Bab 7 memory lanjutan  pdf

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

Page 19: Bab 7 memory lanjutan  pdf

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 ?

Page 20: Bab 7 memory lanjutan  pdf

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.

Page 21: Bab 7 memory lanjutan  pdf

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.

Page 22: Bab 7 memory lanjutan  pdf

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.

Page 23: Bab 7 memory lanjutan  pdf

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.

Page 24: Bab 7 memory lanjutan  pdf

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

Page 25: Bab 7 memory lanjutan  pdf

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

Page 26: Bab 7 memory lanjutan  pdf

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)

Page 27: Bab 7 memory lanjutan  pdf

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.

Page 28: Bab 7 memory lanjutan  pdf

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. .

Page 29: Bab 7 memory lanjutan  pdf

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.

Page 30: Bab 7 memory lanjutan  pdf

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

Page 31: Bab 7 memory lanjutan  pdf

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

Page 32: Bab 7 memory lanjutan  pdf

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.

Page 33: Bab 7 memory lanjutan  pdf

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.

Page 34: Bab 7 memory lanjutan  pdf

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)

Page 35: Bab 7 memory lanjutan  pdf

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)

Page 36: Bab 7 memory lanjutan  pdf

Backing StoreGambar 2 alternatif backing store (Tan 247)

April 25, 2011 36

Page 37: Bab 7 memory lanjutan  pdf

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.

Page 38: Bab 7 memory lanjutan  pdf

SEGMENTASIGambar 2 alternatif penyimpanan page tabel: 1 dimensi dan banyak dimensi*

April 25, 2011 38

Page 39: Bab 7 memory lanjutan  pdf

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

Page 40: Bab 7 memory lanjutan  pdf

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

Page 41: Bab 7 memory lanjutan  pdf

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

Page 42: Bab 7 memory lanjutan  pdf

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

Page 43: Bab 7 memory lanjutan  pdf

SEGMENTASIImplementasi Segmentasi Murni/Sederhana

• Gambar konfigurasi dg segmentasi

April 25, 2011 43

Page 44: Bab 7 memory lanjutan  pdf

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

Page 45: Bab 7 memory lanjutan  pdf

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)

Page 46: Bab 7 memory lanjutan  pdf

SEGMENTASIImplementasi Segmentasi dg Paging

• Contoh pada MULTICS

• Segmen deskripto(kiri) dan segment yg menunjuk

ke page table (kanan)

April 25, 2011 46

Page 47: Bab 7 memory lanjutan  pdf

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)

Page 48: Bab 7 memory lanjutan  pdf

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)

Page 49: Bab 7 memory lanjutan  pdf

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