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