Banker’s algorithm
diperoleh dari fakta bahwa algoritma ini dapat digunakan oleh bank untuk
memastikan bank tidak akan mengalami kekurangan resource, dalam hal ini
uang nasabah. Dengan algoritma ini, bank dapat memastikan bahwa ketika nasabah
menarik uang, bank tetap pada kondis safe state. Jika penarikan uang oleh
nasabah tidak membuat bank keluar dari safe state (masuk ke
dalam unsafe state), maka penarikan dan akan diijinkan. Jika tidak,
nasabah harus menunggu hingga ada tambahan uang (deposit dari nasabah lain) di
dalam kas bank.
Banker’s
algorithm adalah algoritma resource allocation dan deadlock
avoidance yang dikembangkan oleh Edsger Dijkstra. Algoritma ini menguji
tingkat keamanan dari kemungkinan deadlock dengan melakukan simulasi
berdasarkan jumlah maksimum resources dan kemudian mengecek kondisi
safe state terhadap semua kemungkinan kondisi deadlock dari semua aktifitas
yang berada dalam posisi pending, sebelum memutuskan pengalokasian resource.
Agar algoritma Banker’s ini dapat berkerja, harus ada tiga hal yang dimiliki/diketahui, yaitu:
- Jumlah resource dari tiap proses yang mungkin di request.
- Jumlah resource dari tiap proses yang sedang di pegang atau di gunakan (hold).
- Jumlah sisa resource yang dimiliki oleh sistem.
Resource hanya dapat diberikan pada suatu proses jika:
- request* ≤ max**, jika tidak set error, karena request melebihi jumlah klaim sebelumnya.
- request ≤ available***, jika tidak proses harus menunggu hingga resource yang diminta ada.
- request adalah jumlah resource yang di request oleh proses.
- max adalah jumlah resource yang sebelumnya sudah di klaim oleh proses.
- available adalah jumlah sisa resource system yang sedang tidak terpakai.
0 komentar:
Posting Komentar