Contoh deadlock pada rel kereta api:
Gambar 2.18 Deadlock pada rel kereta api.
Kedua  kereta  tidak  dapat  berjalan  karena  keduanya  saling  menunggu  kereta  lain  agar dapat lewat sehingga terjadi deadlock.
2.4.1 Model Sistem
Untuk memodelkan kondisi deadlock, maka bayangkan sebuah sistem dengan: 1.
Sekumpulan proses, P = {P
1
, P
2
, ..., P
n
} 2.
Sekumpulan tipe sumber daya yang berbeda, R = {R
1
, R
2
, ..., R
m
} 3.
Sumber daya R
i
memiliki n bagian instans yang identik dan masing-masing digunakan.
Pada  model  operasi  normal,  sebuah  proses  menggunakan  sumber  daya  dengan  urutan sebagai berikut:
1. Mengajukan permohonan request: Bila permohonan tidak dapat dikabulkan dengan segera misal karena sumber daya sedang digunakan proses lain, maka proses itu harus
menunggu sampai sumber daya yang dimintanya tersedia. 2. Menggunakan sumber daya use: Proses dapat menggunakan sumber daya, misal:
printer untuk mencetak, disk drive untuk melakukan operasi IO, dan sebagainya.
Universitas Sumatera Utara
3. Melepaskan sumber daya relase: Setelah proses menyelesaikan penggunaan sumber daya, maka sumber daya harus dilepaskan sehingga dapat digunakan oleh proses lain.
2.4.2 Sumber daya
Deadlock  bisa  terjadi  pada  saat  proses  akan  mengakses  obyek  secara  tidak  semestinya.  Obyek tersebut dinamakan sumber daya. Sumber daya ada dua jenis, yaitu:
1. Preemptable  dapat  diambil.  Sumber  daya  dikatakan preemptable  jika  sumber  daya
tersebut dapat diambil dilepas dari proses yang sedang memakainya tanpa memberi efek  apapun  pada  proses  tersebut.  Salah  satu  contoh  preemptable  adalah  memori.
Sebagai  contoh,  andaikan  suatu  sistem  terdiri  atas  512K  user  memori,  satu  printer, dan  2  proses  masing-masing  berukuran  512K  dan  ingin  mencetak  sesuatu.  Proses  A
meminta  printer  dan  mendapatkannya.  Kemudian  proses  A  tersebut  segera menghitung  suatu  nilai  yang  akan  dicetak.  Sebelum  ia  selesai  menghitung  nilai
tersebut, waktu yang diberikan ke proses tersebut telah habis sehingga proses A harus di swapped-out ditukar keluar
Sekarang  proses  B  mulai  berjalan  dan  mencoba  untuk  mendapatkan  printer,  namun gagal karena printer telah dibawa oleh proses A. Hal ini sangat potensial untuk terjadi
deadlock,  sebab  proses  A  membawa  printer  dan  proses  B  menempati  memori. Untungnya, karena memori bersifat preemptable dapat diambil dari proses B dengan
cara swapped-out ditukar keluar proses B dan swapped-in ditukar masuk proses A ke  memori,  maka  proses  A  dapat  segera  diselesaikan,  sehingga  tidak  akan  terjadi
deadlock. 2.
Nonpreemtable tidak dapat diambil. Pada sumber daya  jenis  ini, sumber daya tidak dapat  diambil  dari  proses  yang  sedang  membawanya  karena  akan  menimbulkan
kegagalan  komputasi.  Printer  adalah  salah  satu  contohnya.  Jika  suatu  proses  sedang menggunakan  printer  untuk  mencetak  sesuatu,  maka  printer  tersebut  tidak  dapat
diambil  untuk  mencetak  sesuatu  dari  proses  lain.  Sumber  daya  jenis  ini  biasanya berpotensi terjadinya deadlock.
Universitas Sumatera Utara
2.4.3 Penyebab dan penanggulangan Deadlock