Tiga Algoritma Untuk Memecahkan Masalah Deadlock pada Sistem Operasi

Posted by Syaiful Mubarak on 02.20

Ketika kita membuka suatu proses/program aplikasi di dalam Sistem Operasi, sering terjadi Hang atau seakan-akan tidak terjadi aktivitas suatu proses/aplikasi yang di jalankan. Masalah ini terjadi karena padatnya trafic permintaan dari masing-masing proses tersebut,  dan masalah ini di namakan dengan "Deadlock". Pada kesempatan kali ini, penulis akan menjelaskan solusi untuk memacahkan masalah Deadlock ini dengan 3 teori Algorithma, diantaranya sbb:

1.  Algoritma Banker
Setiap proses harus mengklaim berapa jumlah maksimum resource yang akan digunakan dan jika resource tidak tersedia maka permintaan akan ditunda. Sehingga setiap proses yang telah selesai harus mengembalikan resource yang dipakai.
Gambarannya sebagai berikut :
Proses
Alokasi
Maks
Tersedia
P1
2
5
2
P2
4
8
P3
2
3




P1
2
5
4
P2
4
8
P3
-
-




P1
-
-
6
P2
4
8
P3
-
-

2.  Algoritma Ostrich
Secara umum pada Sistem Operasi Widows dan UNIX Algoritma Ostrich ini sifatnya mengabaikan masalah yang mungkin terjadi atas dasar bahwa masalah itu mungkin sangat jarang untuk terjadi. Biasanya untuk mengatasi deadlock ini, jangan melakukan hal apapun dan cukup merestart sistem.

3.  Algoritma Safety
Algoritma safety adalah bentuk algoritma yang memungkinkan system selalu dalam keadaan aman (safety).karena pada algoritma ini pencegahan deadlock dilakukan dengan menanyakan suatu proses apakah proses sudah dalam keadaan finish/selesai atau masih berjalan, dengan membandingkan waktu proses dan lamanya eksekusi proses dapat dilihat apakah system dalam keadaan aman atau deadlock.
Dengan begitu apabila suatu proses masih dalam keadaan berjalan/work = false, maka proses lain belum boleh dieksekusi dan menunggu sampai proses = finish, maka kemungkinan deadlock akan semakin kecil, dan system selalu dalam keadaan normal/aman.