Header Ads

Desain Issues pada Sistem Paging

Desain Issues pada Sistem Paging. Yup! Materi selanjutnya yaitu membahas tentang permasalahan - permasalahan desain / design pada sistem paging. Sebelum kita beranjak ke topik utama kita. Sebaiknya kita mengenal terlebih dahulu istilah yang akan sering dipakai pada materi pokok. Yang pertama, kita harus mengenal dulu apa itu LOKALITAS?

Terdapat 2 jenis jenis lokalitas:
  1. Lokalitas berdasarkan waktu (temporal locality), proses cenderung terkonsentrasi acuannya ke satu intercal waktu eksekusi yang dekat. Observasi berikut mendukung prinsip, antara lain : Looping, Subrutin, stack dan variable-variabel yang digunakan untuk iterasi dan penjumlahan total.
  2. Lokalitas berdasarkan ruang (spatial locality), proses cenderung terkonsentrasi acuannya ke satu kelompok data yang berdekatan. Observasi berikut mendukung prinsip ini, antara lain: traversal pada array, eksekusi kode yang sekuen, kecenderungan pemrogram menempatan variable yang terkait saling berdekatan.
Prinsip lokalitas diperoleh dari observasi bukan dari kajian teoritis. Menunjukkan kecenderungan prilaku lingkungan system bukan tepat eksak.

Konsekuensi prinsip lokalitas adalah program dapat berjalan secara efisien saat satu subset page berkecenderungan tinggi saling mengacu terdapat di memory.

Selanjutnya, masalah utama dalam sistem paging adalah:
  1. Working Set Model
  2. Local versus Global Allocation
  3. Page Faults Frequency
  4. Page Size
  5. Implementation Issues
Mari kita ulas satu per-satu permasalahan desain pada sistem paging di atas.

1. Working Set Model

Working set model merupakan model lokalitas dari eksekusi proses. Model ini menggunakan parameter (delta) untuk definisi working set window. Kumpulan dari halaman dengan halaman yang dituju yang paling sering muncul disebut working set.

Berdasarkan hal ini terdapat dua teknik untuk memuatkan page, yaitu:
  1. Prepaging, teknik memuatkan page-page lebih dulu sebelum proses berjalan.
  2. Demand paging, teknik yang segera memuatkan page begitu page dibutuhkan.
Keakuratan Working set tergantung pada pemilihan :
  • Jika terlalu kecil tidak akan mewakilkan seluruh lokalitas.
  • Jika terlalu besar menyebabkan overlap.
  • Jika tidak terbatas working set adalah kumpulan halaman sepanjang eksekusi program.
  • Jika total permintaan > total bingkai, maka akan terjadi thrashing. Jika ini terjadi maka proses yang sedang berjalan akan diblok.
    * Thrashing: peristiwa page fault yang sangat berlebihan.
Salah satu cara menghindari thrashing adalah dengan menyediakan sebanyak mungkin bingkai sesuai dengan kebutuhan proses. Untuk mengetahui berapa bingkai yang dibutuhkan adalah dengan strategi working set. Strategi ini dimulai dengan melihat berapa banyak bingkai yang digunakan oleh suatu proses. Working set model mengatakan bahwa sistem hanya akan berjalan secara efisien jika proses diberikan bingkai yang cukup, jika bingkai tidak cukup untuk menampung semua proses maka suatu proses akan ditunda, dan memberikan halamannya untuk proses yang lain.

2. Local versus Global Allocation

Terdapat dua pendekatan untuk mengganti page, yaitu:
  1. Penggantian local adalah page yang dipilih untuk diganti hanya pada partisi dimana proses diletakkan.
  2. Penggantian global adalah page yang dipilih untuk diganti adalah tempat kosong dengan tidak mempedulikan partisi proses. Dengan penggantian global, page fault suatu proses dapat dilayani dengan memindahkan page yang dimiliki proses lain.
3. Page Faults Frequency

Frekuensi terjadinya page fault dapat dikendalikan dengan algoritma PFF (page fault frequency algorithm). Dengan PFF harus didefinisikan ambang batas dan ambang bawah frekuensi page fault. Bila proses melampaui ambang batas frekuensi page fault maka dialokasikan lebih banyak page memory fisik untuk prose situ. Apabila proses telah mancapai amabang bawah frekuensi page fault maka alokasi page dihentikan.

4. Page Size

Ukuran page ditentukan oleh perancang system operasi.. ukuran page harus ditentukan agar system berperilaku optimal.  Beberapa pertimbangan, antara lain:
  • Ukuran page lebih kecil berarti jumlah page dan page frame lebih banyak sehingga memerlukan table page lebih besar.
  • Ukuran page besar, berarti sejumlah informasi yang tidak diacu juga dimasukkan ke memory utama sehingga terjadi fragmentasi internal yang tinggi.
  • Transfer masukan / keluaran relative sangat mengkonsumsi waktu sehingga perlu meminimumkan  Transfer masukan / keluaran saat program berjalan.
  • Program cenderung mengikuti prinsip lokalitas yang cenderung berukuran kecil.
5. Implamentation Issues

Perancang sistem paging berurusan pada beragam implementasi sistem paging, antara lain;
  1. Backup instruksi yang terakhir dijalankan sebelum terjadi page fault.

    Bila terjadi page fault berarti sebagian instruksi telah dijalankan. Pengkopian program counter dan informasi register-register pemroses harus dilakukan. Setelah penggantian page selesai maka instruksi yang menyebabkan page fault dapat dijalankan kembali dengan konteksnya. Masalah yang harus diatasi adalah untuk mengulangi instruksi,sistem harus menentukan byte pertama instruksi.

  2. Buffer perangkat masukan/keluaran (penguncian page di memori).

    Penggantian page akan menimbulkan masalah mengacaukan proses yang melakukan operasi masukan/keluaran jika:
    • Buffer perangkat masukan/keluaran ikut tergusur.
    • Adanya Buffer satu perangkat masukan/keluaran menjadi rangkap.

  3. Page yang dipakai bersama.

    Bila beberapa pemakai menggunakan program yang sama maka terjadi perangkapan page (page yang sama terdapat dibanyak dibagian memori). Lebih efisien bila menggunakan page secara bersama,menghindari keharusan mompunyai copyan-copyan page yang sama disaat yang sama.

  4. Backing store.

    Masalah lain adalah menyangkut dimana diletakkan page yang keluar dari memosi utama. Terdapat beragam algoritma untuk mengatasi hal ini yaitu:
    • Menggunakan ruang penggantian khusus.
    • Dialokasikan berdasarkan kebutuhan.

  5. Paging daemons.

    Paging bekerja bagus saat terdapat banyak page frame bebas yang dapat diklaim begitu page fault terjadi. Jika setiap page frame penuh dan telah dimodifikasi, sebelum page baru dimasukan, page lama harus ditulis lebih dulu ke disk. Untuk menjamin suplai page frame yang banyak,sistem paging biasanya mempunyai proses background yang disebut page daemons.

  6. Penanganan page fault (page fault handling)

    Implementasi sistem paging harus mengatasi rincian-rincian aksi yang harus dilakukan saat terjadi page fault.

Bagaimana? Sudah sangat jelas tidak penjelesan di atas? Kalau ada yang kalian tambahin ya silahkan berikan rujukan atau komentar di bawah ini.

Berikut Blog Rujukan dari materi ini :
Reiyza itu teman sekelas saya ;) Thanks sudah sharing materi :P Sulit sekali mencari materi soalnya! :)

Happy Sharing,
Diberdayakan oleh Blogger.