SlideShare a Scribd company logo
1 of 49
Download to read offline
MANAJEMEN MEMORI (2)
   Pemodelan algoritma penggantian halaman
                isu-isu desain paging system
                         isu-isu implementasi
                                   segmentasi
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
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
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
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
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
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
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
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
Pemodelan Algoritma
   Memprediksi rata-rata/tingkat Page Fault
   •   Berikut adalah contoh perhitungan berdasarkan gambar ppt hal 7




April 25, 2011                       Sistem Operasi                     10
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
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
ISU-ISU DESAIN PAGING
                         SYSTEM
   Gambar Kebijakan alokasi Lokal vs Global




April 25, 2011               Sistem Operasi   13
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Backing Store
   Gambar 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
       •   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
SEGMENTASI
 Gambar 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
 •   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
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
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
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
SEGMENTASI
 Implementasi Segmentasi Murni/Sederhana
 •   Gambar konfigurasi dg segmentasi




April 25, 2011                             43
SEGMENTASI
 Implementasi 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
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
SEGMENTASI
 Implementasi Segmentasi dg Paging
 •   Contoh pada MULTICS
 •   Segmen deskripto(kiri) dan segment yg menunjuk
     ke page table (kanan)




April 25, 2011                                        46
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
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
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

More Related Content

Similar to Bab 7 memory lanjutan pdf

Paging sistem pada code program xi x.ppt
Paging sistem pada code program xi x.pptPaging sistem pada code program xi x.ppt
Paging sistem pada code program xi x.pptNafilaRifki
 
Implementasi virtual memori
Implementasi virtual memoriImplementasi virtual memori
Implementasi virtual memoriAmriAhmadRiadi
 
Manajemen memory (10) fix
Manajemen memory (10) fixManajemen memory (10) fix
Manajemen memory (10) fixdikkieretyan
 
Implementasi virtual memory di windows 10 sistem operasi 4 reg a
Implementasi virtual memory di windows 10 sistem operasi 4 reg aImplementasi virtual memory di windows 10 sistem operasi 4 reg a
Implementasi virtual memory di windows 10 sistem operasi 4 reg aFarras Muhammad
 
Penjelasan strukturdata
Penjelasan strukturdataPenjelasan strukturdata
Penjelasan strukturdatadonasiilmu
 
Memori virtual
Memori virtualMemori virtual
Memori virtualzainalarif
 
Kelompok 1 - Virtual Memory pada Windows 8
Kelompok 1 - Virtual Memory pada Windows 8Kelompok 1 - Virtual Memory pada Windows 8
Kelompok 1 - Virtual Memory pada Windows 8Ferza Reyaldi
 
Operating System--Memory
Operating System--MemoryOperating System--Memory
Operating System--MemoryEverhythm Past
 
Helen Alida Abilio - Manajemen Memori
Helen Alida Abilio - Manajemen MemoriHelen Alida Abilio - Manajemen Memori
Helen Alida Abilio - Manajemen Memoribelajarkomputer
 
Slide4 manajemen memori _Bu Indra
Slide4 manajemen memori _Bu IndraSlide4 manajemen memori _Bu Indra
Slide4 manajemen memori _Bu IndraHz Tena
 

Similar to Bab 7 memory lanjutan pdf (20)

Virtual memory
Virtual memoryVirtual memory
Virtual memory
 
Paging sistem pada code program xi x.ppt
Paging sistem pada code program xi x.pptPaging sistem pada code program xi x.ppt
Paging sistem pada code program xi x.ppt
 
Pertemuan3
Pertemuan3Pertemuan3
Pertemuan3
 
Implementasi virtual memori
Implementasi virtual memoriImplementasi virtual memori
Implementasi virtual memori
 
Manajemen memory (10) fix
Manajemen memory (10) fixManajemen memory (10) fix
Manajemen memory (10) fix
 
Os ppt.9
Os ppt.9Os ppt.9
Os ppt.9
 
Pert.8 memori virtual
Pert.8 memori virtualPert.8 memori virtual
Pert.8 memori virtual
 
Implementasi virtual memory di windows 10 sistem operasi 4 reg a
Implementasi virtual memory di windows 10 sistem operasi 4 reg aImplementasi virtual memory di windows 10 sistem operasi 4 reg a
Implementasi virtual memory di windows 10 sistem operasi 4 reg a
 
Pertemuan ke 9
Pertemuan ke 9Pertemuan ke 9
Pertemuan ke 9
 
Implementasi Virtual Memory
Implementasi Virtual MemoryImplementasi Virtual Memory
Implementasi Virtual Memory
 
Penjelasan strukturdata
Penjelasan strukturdataPenjelasan strukturdata
Penjelasan strukturdata
 
Memori virtual
Memori virtualMemori virtual
Memori virtual
 
Kelompok 1 - Virtual Memory pada Windows 8
Kelompok 1 - Virtual Memory pada Windows 8Kelompok 1 - Virtual Memory pada Windows 8
Kelompok 1 - Virtual Memory pada Windows 8
 
Pertemuan 12 rev 310108_ok
Pertemuan 12 rev 310108_okPertemuan 12 rev 310108_ok
Pertemuan 12 rev 310108_ok
 
Operating System--Memory
Operating System--MemoryOperating System--Memory
Operating System--Memory
 
Helen Alida Abilio - Manajemen Memori
Helen Alida Abilio - Manajemen MemoriHelen Alida Abilio - Manajemen Memori
Helen Alida Abilio - Manajemen Memori
 
Front side bus
Front side busFront side bus
Front side bus
 
Struktur data
Struktur dataStruktur data
Struktur data
 
08. memory 2
08. memory 208. memory 2
08. memory 2
 
Slide4 manajemen memori _Bu Indra
Slide4 manajemen memori _Bu IndraSlide4 manajemen memori _Bu Indra
Slide4 manajemen memori _Bu Indra
 

Bab 7 memory lanjutan pdf

  • 1. MANAJEMEN MEMORI (2) Pemodelan algoritma penggantian halaman isu-isu desain paging system isu-isu implementasi segmentasi
  • 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
  • 43. SEGMENTASI Implementasi Segmentasi Murni/Sederhana • Gambar konfigurasi dg segmentasi April 25, 2011 43
  • 44. SEGMENTASI Implementasi 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
  • 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