Bach khoa toan th? m? Wikipedia
Deadlock
(Khoa ch?t) la tr?ng thai x?y ra trong moi tr??ng đa nhi?m (muti-threading) khi hai ho?c nhi?u ti?n trinh đi vao vong l?p ch? tai nguyen mai mai.
Thread 1
|
Thread 2
|
Mu?n l?y tai nguyen A va B
|
Mu?n l?y tai nguyen A va B
|
Chi?m tai nguyen A, ch? Thread 2 b?t đ?u ch?y cho t?i khi Thread 2 đ?i tai nguyen A gi?i phong
|
|
|
Chi?m tai nguyen B
|
|
đ?i tai nguyen A gi?i phong
|
đ?i tai nguyen B gi?i phong
|
|
Deadlock
|
đi?u ki?n x?y ra deadlock
[
s?a
|
s?a ma ngu?n
]
Co b?n đi?u ki?n c?n thi?t đ? deadlock co th? x?y ra.
- đi?u ki?n lo?i tr? t??ng h? (
Mutual exclusion
): M?t tai nguyen khong th? s? d?ng b?i nhi?u h?n m?t ti?n trinh t?i m?t th?i đi?m
- đi?u ki?n gi? va ch? (
Hold and wait
): M?t qua trinh đang gi? it nh?t m?t tai nguyen va đ?i them tai nguyen do qua trinh khac đang gi?
- đi?u ki?n khong ?u tien (
No preemption
): Cac tai nguyen khong th? b? đoi l?i, chung ch? co th? đ??c gi?i phong b?i chinh ti?n trinh chi?m gi? chung
- đi?u ki?n chu trinh ch? (
Circular wait
): Cac ti?n trinh gi? tai nguyen va ch? cac tai nguyen b? gi? b?i ti?n trinh khac, t?o thanh m?t chu trinh. Vi d?: Ti?n trinh 1, chi?m A1, ch? A2. Ti?n trinh 2 chi?m A2, ch? A3,... Ti?n trinh N chi?m An, ch? A1
Cac cach đ?i pho v?i deadlock
[
s?a
|
s?a ma ngu?n
]
- Ng?n ch?n deadlock: ng?n ch?n it nh?t 1 trong 4 đi?u ki?n đ? x?y ra deadlock neu tren. Ch?ng h?n: cho phep chia s? tai nguyen, cho phep tr?ng d?ng,...
- Phong tranh deadlock: d? đoan tr??c deadlock co x?y ra hay khong tr??c khi ti?n hanh phan ph?i tai nguyen cho ti?n trinh. Vi d?: gi?i thu?t nha b?ng (Banker's algorithm).
- Phat hi?n va kh?c ph?c deadlock: n?u khong th? phong tranh hay ng?n ch?n deadlock, c? đ? deadlock x?y ra va ta s? phat hi?n va đi kh?c ph?c chung. Phu?ng phap nay phu h?p v?i h? th?ng it x?y ra deadlock va h?u qu? c?a deadlock la it nghiem tr?ng.
- "
Deadlock Detection in Distributed Object Systems
" by Nima Kaveh and Wolfgang Emmerich
- "
Confirmation of Deadlock Potentials Detected by Runtime Analysis
" by Saddek Bensalem, Jean-Claude Fernandez, Klaus Havelund and Laurent Mounier
- Coffman, E.G., M.J. Elphick, and A. Shoshani, System Deadlocks, ACM Computing Surveys, 3, 2, 67-78 (1971)
.
- Eliminating Receive Livelock in an Interrupt-driven Kernel
by Jeffrey C. Mogul, K. K. Ramakrishnan
- Havender, J. W.,
"Avoiding deadlock in multitasking systems"
L?u tr?
2012-02-24 t?i
Wayback Machine
,
IBM Systems Journal
, Volume 7, Number 2, Page 74 (1968)