Pengertian Algoritma Banker
Algoritma Banker dikemukakan oleh Edsger W.Dijkstra dan merupakan sebuah strategi untuk menghindari deadlock. Algoritma ini disebut algoritma Banker karena memodelkan bankerdi kota kecil yang berurusan dengan sekumpulan nasabah yang memohon kredit.
Algoritma ini mencegah terjadinya deadlock dengan memutuskan apakah menyetujui atau menunda permintaan sumber daya oleh proses. Ketika sebuah proses meminta sumber daya, maka permintaan tersebut harus diperiksa oleh bankir. Analogi dari algoritma Banker dengan sistem operasi adalah
1. Nasabah merupakan proses-proses yang sedang berjalan.
2. Uang (dana yang dimiliki bank) merupakan sumber daya.
3. Bankirmerupakan sistem operasi.
Dalam algoritma Banker, setiap nasabah memiliki batas kredit dan apabila seorang nasabah telah mencapai batas kredit pinjaman maksimum, maka diasumsikan nasabah tersebut telah menyelesaikan semua permasalahan bisnisnya dan dapat mengembalikan semua pinjamannya kepada bank. Tetapi ada kalanya, seorang nasabah dapat menyelesaikan semua permasalahan bisnisnya dan mengembalikan semua pinjamannya kepada bank sebelum mencapai batas kredit maksimum.
Bankir adalah seorang peminjam yang konservatif. Ketika sebuah proses meminta peminjaman sumber daya, bankir melihat buku bank dengan cermat dan berusaha untuk memutuskan apakah peminjaman tersebut dapat menyebabkan keadaan deadlock(setelah peminjaman tersebut disetujui).
Keputusan bankir dibuat dengan berpura-pura menyetujui peminjaman sumber daya dan kemudian menganalisis keadaan sistem. Setelah peminjaman, akan terdapat sejumlah sumber daya tersisa di dalam sistem. Kita asumsikan masing-masing proses meminta batas maksimum sumber daya. Jika bankir memiliki cukup sumber daya yang tersisa untuk memastikan bahwa semua proses dapat berakhir dengan aman. Ini menunjukkan keadaan berada dalam safe state dan peminjaman disetujui.Tetapi apabila setelah peminjaman, bankir tidak dapat menjamin semua proses dapat berakhir dengan semestinya, maka ini disebut unsafe state. Dalam kasus ini, peminjaman akan ditunda atau diblok hingga peminjaman tidak menyebabkan unsafe state pada sistem.
Pada algoritma Banker ini, kondisi mutual exclusion, hold-and-wait, dan no-preemption diijinkan dan proses-proses melakukan klaim penggunaan sumber daya–sumber daya yang diperlukan. Proses-proses diizinkan mengenggam sumber daya-sumber daya sambil meminta dan menunggu sumber daya-sumber daya lain serta sumber daya-sumber daya itu tidak diijinkan untuk di-preemptproses lain.
Proses-proses dapat meminta satu sumber daya pada satu waktu. Sistem operasi dapat memberikan akses sumber daya atau menolak permintaan. Jika ditolak, proses masih mengenggam sumber daya yang telah dialokasikan untuknya dan menunggu selama waktu tak berhingga sampai permintaannya dapat diberikan.
Sistem hanya memberikan permintaan yang menghasilkan stateselamat. Permintaan proses yang akan menghasilkan state tak selamat secara berulang ditolak sampai permintaan dapat dipenuhi. Tentunya karena sistem selalu memelihara agar dalam safe state, cepat atau lambat (yaitu dalam waktu yang berhingga) semua permintaan dapat dipenuhi dan semua proses dapat berakhir. (Hariyanto.B,1999).