Jawab
1. Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang
lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling
menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock
adalah masalah yang biasa terjadi ketika banyak proses yang membagi sebuah resource yang
hanya boleh dirubah oleh satu proses saja dalam satu waktu.
3. Sistem Operasi Unix, karena Unix menanggulangi deadlock dengan cara tidak mendeteksi
deadlock dan membiarkannya secara otomatis mematikan program sehingga seakan-akan
tidak terjadi apapun. Jadi jika terjadi deadlock, maka tabel akan penuh, sehingga proses yang
menjalankan proses melalui operator harus menunggu pada waktu tertantu dan mencoba
lagi.
a. Algoritma Banker
Algoritma resource allocation graph tidak dapat diaplikasikan pada sistem yang
mempunyai beberapa anggota pada setiap tipe sumber daya. Setiap proses sebelum dieksekusi
harus menentukan jumlah sumber daya maksimum yang dibutuhkan. Jika suatu proses
meminta sumber daya kemungkinan proses harus menunggu. Jika suatu proses mendapatkan
semua sumber daya maka proses harus mengembalikan semua sumber daya dalam jangka
waktu tertentu.
Struktur data yang digunakan untuk mengimplementasikan algoritma Banker akan
menentukan state dari sumber daya yang dialokasikan oleh sistem. Misalnya n = jumlah
proses dan m = jumlah tipe resource. Struktur data yang diperlukan :
Available : Vektor panjang m. Jika Available[j] = k, terdapat k anggota tipe sumber daya
Rj yang tersedia.
Max : matrik n x m. Jika Max[i, j] = k, maka proses Pi meminta paling banyak k anggota
tipe resource Rj.
Allocation : matrik n x m. Jika Allocation[i, j] = k maka Pi sedang dialokasikan k
anggota tipe resource Rj.
Need : matrik n x m. Jika Need[i, j] = k, maka Pi membutuhkan k anggota tipe resource
Rj untuk menyelesaikan task. Need[i, j] = Max[i, j] – Allocation[i, j].
Beberapa notasi yang perlu diketahui adalah misalnya X dan Y adalah vektor dengan
panjang n. X ≤ Y jika dan hanya jika X[i] ≤ Y[i] untuksemua i = 1, 2, .., n. Sebagai contoh
jika X = (1, 7, 3, 2) dan Y = (0, 3, 2, 1) maka Y ≤ X.
b. Algoritma Ostrict
Algoritma Ostrich adalah strategi mengabaikan masalah yg mungkin terjadi atas
dasar bahwa masalah itu mungkin sangat jarang terjadi "menempelkan kepala di pasir dan
berpura-pura bahwa tidak ada masalah" dengan mengasumsikan bahwa lebih efektif untuk
memungkinkan masalah itu terjadi di bandingkan upaya pencegahan nya. Algoritma ini dapat
digunakan dalam menangani deadlock pemograman concurrent jika deadlock di yakini sangat
jarang terjdi.