Minggu, 11 Desember 2011

Algoritma Deadlock


Algoritma Banker

  • Algoritma ini di aplikasikan untuk sembarang sistem. 
  • Proses harus “declare” max. kredit resource yang diinginkan.
  • Proses dapat block (pending) sampai resource diberikan.
  • Banker’s algorithm menjamin sistim dalam keadaan safe state.
  • OS menjalankan Algoritma Banker’s,

Saat proses melakukan request resource.

Saat proses terminate atau release resource yang digunakan => memberikan resource ke proses yang pending request.
Metode :

1.Scan tabel baris per baris untuk menemukan job yang akan diselesaikan

2.Tambahkan pada job terakhir dari sumberdaya yang ada dan berikan nomor yang available
Ulangi 1 dan 2 hingga :
Tidak ada lagi job yang diselesesaikan (unsafe) atau

Semua job telah selesai (safe)
Misakan terdapat: n proses dan m resources.

Definisikan:

Available: Vector/array dengan panjang m.

  If available [j] = k, terdapat k instances resouce   jenis Rj   yang dapat digunakan.

Max: matrix n x m.

  If Max [i,j] = k, maka proses Pi dapat request paling banyak k instances resource jenis Rj.

Allocation: matrix n x m.

  If Allocation[i,j] = k maka Pi saat ini sedang menggunakan

  (hold) k instances Rj.

Need: matrix n x m.

If Need[i,j] = k, maka Pi palaing banyak akan membutuhkan

instance Rj untuk selesai.

Need [i,j] = Max[i,j] – Allocation [i,j]. 

Kelemahan Algoritma Banker :
- Proses kebanyakan belum mengetahui jumlah maksimum resource yang   dibutuhkan.
- Jumlah proses tidak tetap.
- Beberapa resource dapat diambil dari sistem sewaktu-waktu.
- Algoritma membuat sistem untuk memenuhi permintaan hingga waktu yang tidak terbatas. 

2.  Algoritma Ostrict

       Untuk mengetahui suatu proses sedang dalam kondisi deadlock dapat di lihat pada lamanya waktu prosesor mengeksekusi suatu proses, jika proses dieksekusi lebih lambat dari biasanya bisa jadi system dalam kondisi deadlock, dan penyebab deadlocknya dapat dilihat dari resource yang yang merequest proses tersebut. pada algoritma ini proses dibiarkan seolah olah tidak akan terjadi deadlock, jadi dibiarkan berjalan begitu saja dan jika terjadi deadlock barulah proses dihentikan ataupun di matikan.
       Hal ini biasa dilakukan pada suatu system UNIX, tetapi dengan membiarkan proses tetap berjalan meskipun berpotensi terjadi deadlock, maka operator memerlukan waktu tertentu untuk menghentikan dan memulai kembali proses yang deadlock yang dapat terlihat dari table proses yang penuh/sibuk.


3. Algoritma safety
  1.            Algoritma safety adalah bentuk algoritma yang memungkinkan system selalu dalam keadaan aman (safety).karena pada algoritma ini pencegahan deadlock dilakukan dengan menanyakan suatu proses apakah proses sudah dalam keadaan finish/selesai atau masih berjalan, dengan membandingkan waktu proses dan lamanya eksekusi proses dapat dilihat apakah system dalam keadaan aman atau deadlock.
              Dengan begitu apabila suatu proses masih dalam keadaan berjalan/work = false, maka proses lain belum boleh dieksekusi dan menunggu sampai proses = finish, maka kemungkinan deadlock akan semakin kecil, dan system selalu dalam keadaan normal/aman.

 


Tidak ada komentar:

Posting Komentar