Deadlock
dapat di katakan juga suatu stack (hambatan) , yaitu proses yang ada menunggu suatu kejadian yang
hanya dapat dilakukan oleh proses lain dalam himpunan tersebut keadaan dimana dua Tidak ada yang dapat
melanjutkan proses masing-masing sampai program yang lain. memberikan sumber
dayanya, tetapi tidak ada yang mengalah. Deadlock yang mungkin dapat terjadi
pada suatu proses disebabkan proses itu menunggu suatu kejadian tertentu yang
tidak akan pernah terjadi. Dua atau lebih proses dikatakan berada dalam kondisi
deadlock.
- Terdapat delapan buah jalan utama.
- Andaikan tidak terdapat lampu rambu lalu lintas pada jalan tersebut.
- Maka mobil mobil akan bertumpuk di pusat jalan tersebut .
- Jika salah satu mobil pada posisi belakang barisan tidak mau mengalah untuk mundur Maka terjadilah suatu DEAD LOCK.
Penghindaran Deadlock
Penghindaran terhadap deadlock adalah cara penanganan yang selanjutnya. Inti dari penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau meminta lagi. Maksudnya jangan pernah memulai suatu proses apabila nantinya akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila sebelum terjadi sudah kita hindari.
Langkah lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada kondisi safe state. Safe state adalah suatu kondisi dimana semua proses mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia. Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir melepas kembali sumber daya tersebut. Terdapat dua jenis algoritma penghindaran yaitu resource-allocation graph untuk single instances resources serta banker's algorithm untuk multiple instances resources.
Dalam banker's algorithm, terdapat beberapa struktur data yang digunakan, yaitu:
Available . Jumlah sumber daya yang tersedia.
Max . Jumlah sumber daya maksimum yang diminta oleh tiap proses.
Allocation . Jumlah sumber daya yang sedang dimiliki oleh tiap proses.
Need . Sisa sumber daya yang masih dibutuhkan oleh proses, didapat dari max- allocation.
Kemudian terdapat safety algorithm untuk menentukan apakah sistem berada pada safe state atau tidak.
