Menentukan aman atau tidak amannya alokasi proses ditentukan untuk menghindari terjadinya deadlock. Safe state diartikan dengan banyaknya sumberdaya yang sudah dialokasikan terhadap masing-masing proses. Sedangkan Unsafe state diartikan sebagai banyaknya sumberdaya yang belum dialokasikan kepada masing-masing proses, sehingga masih ada sumberdaya yang digunakan oleh beberapa proses. Contohnya yaitu:
Tentukan
pengalokasian agar tidak terjadi deadlock! dengan sisa Resource yang ada yaitu
10-6=4.
Jawab:
Sisa 10-10=0 (tidak ada sisa sumberdaya yang dapat digunakan).
Dari
pengalokasian diatas, ternyata mendapatkan hasil unsafe, jadi artinya terjadi deadlock apabila proses A
dialokasikan pertama. Dimana proses A tidak pernah selesai
untuk diproses dan proses B&C
menunggu terus menerus.
Maka
dengan itu, kita akan mencari
proses lain, yang akan di proses lebih awal sehingga tidak terjadi deadlock.
Melihat hal di atas, kemudian merubah
susunan pengalokasian proses,
dimana yang dialokasikan pertama adalah proses B. Pada awal siklus akan diperoleh hasil seperti berikut:
Diakhir siklus akan diperoleh hasil seperti berikut:
Sisa 10-5=5 (terdapat
5 sumberdaya yang bisa digunakan/safe state).
Setelah pengalokasian ke proses B, akan dilanjutkan ke pengalokasian ke proses C. Dimana diawal proses akan diperoleh hasil seperti berikut:
Sisa 10-9=1,
Diakhir siklus akan diperoleh hasil seperti berikut
:
Dan yang terakhir, pengalokasian dilakukan ke proses A. Sehingga di awal siklus
didapat hasil seperti berikut :
Diakhir siklus akan diperoleh hasil seperti berikut:
Sisa 10-0=10 (Terdapat 10 sumberdaya yang bisa digunakan dan sekaligus tidak
ada proses yang akan diproses
lagi). Dengan ini tidak terjadi
deadlock.