Algoritma banker dipelopori oleh Edsger W.Djikstra, untuk metode ini
adalah salah satu untuk menghindari akan terjadinya deadlock pada
komputer. Pada metode algoritma ini bisa disebut juga algoritma
penjadwalan tapi lebih kita kenal dengan sebutan algoritma banker.
Algoritma Banker itu sendiri dapat kita gambarkan sebagai seorang bankir
yang mempunyai urusan kepada kelompok orang yang meminta pinjam tetapi
pada untuk yang meminjamkannya tahu akan batas maksimum peminjaman dana
tersebut.
Secara umumnya algortima banker tersebut dibagi menjadi 4
struktur data, untuk variabel (n) adalah jumlah pada sistem dan (m)
sendiri ialah jumlah sumber daya yang ada :
- Allocation : Matriks (n) X (m) mendefinisikan sumber daya setiap tipe yang dialokasi oleh setiap proses. Jika allocation [i,j]=k, maka proses P1 dialokasikan k instansi dari sumber daya Rj.
- Available : Sebuah vektor (m) menandakan sumber daya yg ada untuk setiap tipe, jika available [j]= k, dimana k instansi dari tipe Rj yang ada.
- Need : Matriks (n) X (m) menandakan sisa sumber
daya yang dibutuhkan setiap proses. Jika need [i,j]= k, maka proses Pi
membutuhkan k instansi dari sumber daya Rj untuk menyelesaikan
tugasnya. Need[i,j]= Max[i,j] – Allocation[i,j].
- Max : Matriks (n) X (m) menandakan maksimal permintaan tiap proses. Jika Max [i,j]= k, maka proses Pi meminta paling banyak k instansi dari sumber daya tipe Rj.
Untuk membentuk penyajian algoritma ini secara sederhananya, misalkan
X dan Y adalah vektor dengan panjang n. Sehingga X ≤ Y jika dan hanya
jika X[i] ≤ Y[i] untuk semua l = 1,2..,n. contohnya : jika X=(1,7,3,2)
dan Y(0,3,2,1) maka Y≤X. Y≤X dan Y≠X
Disamping itu semua Algoritma ini :
– Proses harus “declare” max. kredit resource yang diinginkan
– Proses dapat block (pending) sampai resource diberikan
– Menjamin sistem dalam keadaan safe state
– OS menjalankan algoritma banker
* Saat proses melakukan request resource
* Saat proses terminate atau release resource yang digunakan => memberikan resource ke proses yang pending
request.
Ada sedikit contoh gambar Algoritma Banker
Kelemahan dari algoritma ini adalah:
- Proses kebanyakan belum mengetahui jumlah maksimum resource yang dibutuhkannya
- Beberapa resource itu sendiri dapat diambil dari sistem sewaktu-waktunya
- Algoritma membuat sistem hingga waktu yang tidak terbatas
- Jumlah proses tidak tetap
Sumber