38
deadlock
tersebut.
Karena
mencegah deadlock
lebih
susah
daripada
menggunakan timeout
atau
mendeteksi
deadlock
lalu
memecahkannya
ketika
deadlock
terjadi,
sistem
umumnya
menghindari metode
deadlock
prevention.
2.4.4.1 Deadlock Prevention
Salah
satu
pendekatan untuk
mencegah
deadlock
adalah
dengan
mengurutkan
transaksi
menggunakan transaction
timestamps..
Dua
algoritma
telah
ditemukan
oleh
Rosenkrantz
(1978).
Algoritma pertama,
Wait-Die,
mengijinkan
hanya
transaksi
yang
lebih
tua
untuk
menunggu
yang
lebih
muda,
jika
tidak
transaksi
dibatalkan dan
restart
dengan
timestamp
yang
sama,
sehingga
lama
kelamaan transaksi
tersebut
akan
menjadi transaksi aktif tertua dan tidak akan
mati. Algoritma kedua,
Wound-Wait,
menggunakan
pendekatan
simetrikal.
Hanya
transaksi
yang
lebih
muda
yang
dapat
menunggu
transaksi yang
lebih
tua.
Jika
transaksi
yang
lebih tua meminta lock yang dipegang oleh transaksi yang
lebih
muda,
transaksi yang lebih muda digagalkan.
Sebuah
variasi
dari
2PL,
yang
disebut
sebagai conservative
2PL,
dapat
juga
digunakan untuk
mencegah deadlock.
Dengan
menggunakan
conservative
2PL,
sebuah
transaksi
mendapatkan semua
lock
yang
dibutuhkan ketika
transaksi
dimulai
atau
transaksi
akan
menunggu
sampai
semua
kunci
yang
dibutuhkan telah
tersedia.
Protokol
ini
memiliki
keuntungan yaitu
waktu pengaksesan kunci
menjadi berkurang karena
|