Rabu, 16 Januari 2013

PENANGANAN DEADLOCK ALGORITMA BANKER

Algoritma banker merupakan salah satu dari algoritma penanganan deadlock. Banker sendiri diambil dari kata bank + 'er' yang berarti orang-orang bank.Megapa demikian? karena algoritma ini mengacu pada sistem perbankan dalam menangani jalan buntu. Artinya, algoritma ini digunakan bank (sistem operasi) untuk memastikan bahwa pihak bank tidak akan kekurangan sumberdaya (resource), yang tentu saja dalam kasus bank resource adalah uang nasabah. Dalam algoritma Banker, dikenal dua keadaan (state), yaitu keadaan aman (safe state) dan keadaan tidak aman (unsafe state). Keadaan aman adalah keadaan dimana bank masih mempunyai cukup uang (resource) ketika nasabah bank melakukan penarikan uangnya. Keadaan tidak aman (unsafe state) terjadi ketika nasabah bank melakukan penarikan uang yang melebihi resource (uang) yang ada. Penanganannya, yaitu dengan mengijinkan nasabah melakukan penarikan uang jika penarikan tersebut tidak akan membawa bank kepada kondisi yang tidak aman (unsafe state). Jika penarikan uang membawa bank kepada kondisi tidak aman, maka nasabah harus menunggu sampai ada tambahan uang dari nasabah yang lain di dalam kas bank.

Algoritma banker dikembangkan oleh salah satu orang IT ternama dunia, Edsger Dijkstra. Algoritma ini adalah penanganan deadlock dengan metode penghindaran (avoidance) dengan melakukan alokasi resource.
Untuk menguji tingkat keamanan serta kemungkinan untuk terjadi deadlock, algoritma ini melakukan simulasi yang didasarkan pada jumlah terbanyak sumber daya baru kemudian memeriksa kondisi aman terhadap segala kemungkinan keadaan deadlock dari seluruh proses yang sedang berada pada posisi pending, baru kemudian mengalokasikan resource..

Hal penting yang perlu diperhatikan dalam penggunaan algoritma banker adalah tentang apa saja yang harus diketahui ataupun dimiliki sehingga algoritma ini dapat berjalan :
1. Jumlah resource (sumberdaya) dari setiap proses yang mungkin diminta (direquest).–>request
2. Jumlah resource (sumberdaya) dari setiap proses yang sedang dipakai (hold).–>max
3.jumlah sisa resource yang masih dimiliki oleh sistem.–available

Resource hanya boleh/bisa diberikan untuk dipakai pada suatu proses jika:
1. request ≤ max, jumlah permintaan (request) tidak lebih banyak dari jumlah maksimum resource.
2. request ≤ available, jumlah request tidak boleh lebih banyak dari jumlah resource yang tersedia. jika tidak proses harus menunggu hingga resource yang diminta ada.

Tidak ada komentar:

Posting Komentar