Faradewi Kirana
200820100008
Manajemen Sistem Operasi Paralel A
Banker's Algorithm
Banker’s Algorithm atau Algoritma Banker adalah
salah satu metode untuk mencegah deadlock. Algoritma
ini disebut sebagai algoritma banker karena memodelkan
sebuah bank di kota kecil yang berurusan dengan
sekumpulan nasabah yang memohon kredit.
Struktur Data dalam Banker’s
Algorithm
Beberapa struktur data harus dipertahankan untuk
mengimplementasikan algoritma bankir. Struktur data ini mengkodekan
status sistem alokasi sumber daya. Struktur data yang dibutuhkan
sebagai berikut, di mana : n adalah jumlah utas dalam sistem dan m
adalah jumlah jenis sumber daya.
Struktur Data :
1. Available (Tersedia)
Vektor panjang m menunjukkan jumlah sumber
daya yang tersedia dari setiap jenis. Jika Available
(tersedia) [j] = k, kemudian k contoh jenis sumber
daya Rj tersedia.
2. Max (Maks)
Jika n × m matriks mendefinisikan permintaan
maksimum setiap utas.
3. Allocation (Alokasi)
Jika n × m matriks mendefinisikan jumlah
sumber daya dari setiap jenis yang saat ini
dialokasikan untuk setiap utas.
4. Need (Membutuhkan)
Jika n × m matriks menunjukkan kebutuhan
sumber daya yang tersisa dari setiap utas.
Safety Algorithm
Safety Algorithm atau Algoritma Keamanan dapat digambarkan sebagai
berikut :
= 0, 1, ..., n-1.
4. Jika Finish[i] == true untuk semua i, maka sistem dalam keadaan aman.
Resource-Request Algorithm
Resource-Request Algorithm atau Algoritma Permintaan membiarkan Requesti menjadi
vector permintaan untuk utas Ti. Jika Requesti [j] == k, maka utas Ti menginginkan k.
Ketika sebuah permintaan untuk sumber daya dibuat oleh utas Ti, tindakan berikut akan
dilakukan:
1. Jika Request i ≤ Need i , lanjutkan ke langkah 2. Jika tidak, naikkan kondisi kesalahan,
karena utas telah melampaui klaim maksimumnya.
2. Jika Requesti ≤ Avaliable, lanjutkan ke langkah 3. Jika tidak, Ti harus menunggu,
karena sumber daya tidak tersedia.
3. Minta sistem berpura-pura telah mengalokasikan sumber daya yang diminta ke thread
Ti dengan mengubah status sebagai berikut:
Contoh Ilustrasi
Banker's Algorithm
Untuk mengilustrasikan penggunaan Banker's Algorithm, pertimbangkan sistem
dengan 5 utas yaitu T0 melalui T4 dan empat jenis sumber daya yaitu A,B,C dan
D.Berikut ilustrasi snapshot mewakili keadaan sistem saat ini :
Need =berikut
Sehingga hasilnya adalah sebagai Max -:Allocation
Request Available
ABCD
0 4 2 0
≤ ABCD
1 5 2 0
Dapat dikatakan bahwa Requets ≤ Available adalah benar, kemudian kita harus
berpura-pura bahwa permintaan telah dipenuhi dan tiba ditempat baru dengan
mengubah status sebagai berikut :
Work = Available,
jika Work = Work + Allocation maka dapat disimpulkan bahwa
Work = Available + Allocation i
Allocation Work
ABCD ABCD
0 0 1 2 Available 1 1 1 2
1 4 2 0 + ABCD
1 1 0 0
= 2 5 2 0
1 3 5 4 2 4 5 4
0 6 3 2 1 7 3 2
0 0 1 4 1 1 1 4
Selanjutnya dapat dikatakan aman jika Need ≤ Work dan Finish[i] == true untuk
semua i,
Need Work
ABCD ABCD
0 0 0 0 1 1 1 2
0 3 3 0 ≤ 2 5 2 0
1 0 0 2 2 4 5 4
0 0 2 0 1 7 3 2
0 6 4 2 1 1 1 4
Dari hasil diatas maka dapat dikatakan status sistem baru ini aman dan
memenuhi persyaratan keamanan, sehingga kita dapat segera mengabulkan
permintaan utas T1
:)
sih
ka
ma
eri
T