Senin, 12 Desember 2011

Algoritma Banker , Algoritma Safty dan Algoritma Ostrich


    Algoritma Banker 

Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang
mempunyai beberapa anggota pada setiap tipe sumber daya. Setiap proses sebelum
dieksekusi harus menentukan jumlah sumber daya maksimum yang dibutuhkan. Jika
suatu proses meminta sumber daya kemungkinan proses harus menunggu. Jika suatu
proses mendapatkan semua sumber daya maka proses harus mengembalikan semua
sumber daya dalam jangka waktu tertentu.
Kelemahan Algoritma Banker :
  • Proses kebanyakan belum mengetahui jumlah maksimum resource yang dibutuhkan.
  • Beberapa resource dapat diambil dari sistem sewaktu-waktu.
  • Algoritma membuat sistem untuk memenuhi permintaan hingga waktu yang tidak terbatas.
  • Jumlah proses tidak tentu
    Algoritma Safety

Algoritma ini untuk menentukan apakah sistem berada dalam state selamat atau
tidak.
1. Work dan Finish adalah vector dengan panjang m dan n. Inisialisasi : Work =
Available dan Finish[i] = false untuk i = 1,3, …, n.
2. Cari i yang memenuhi kondisi berikut :
(a) Finish [i] = false
(b) Needi Work
Jika tidak terdapat i ke langkah 4.
3. Work = Work + Allocationi
Finish[i] = true
Kembali ke langkah 2.
4. Jika Finish [i] == true untuk semua i, maka sistem dalam state selamat.

        Algoritma Ostrich

algoritma ostrich adalah strategi mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang terjadi - "menempel kepala di pasir dan berpura-pura bahwa tidak ada masalah". Dengan mengasumsikan bahwa lebih efektif untuk memungkinkan masalah itu terjadi dibandingkan upaya pencegahannya.

Langkah-Langkah terjadinya Algoritma Ostrich

• Jangan lakukan apa pun, cukup restart sistem
(ostrich: benamkan kepala ke pasir, dan pura2 tidak ada
masalah sama sekali)
• Dilakukan jika:
– Deadlock jarang terjadi
– algoritma deadlock lainnya biayanya lebih tinggi
• Diterapkan oleh Windows dan UNIX
• Trade off
– kenyamanan (convenience) vs keakuratan
(correctness)