1
4. Deadlock
Mô hình h th ng
Resource Allocation Graph (RAG)
Phương pháp gi i quy t deadlock ế
Deadlock prevention
Deadlock avoidance
Deadlock detection
Deadlock recovery
2
V n đ deadlock trong h th ng
Tình hu ng: m t t p các process b blocked, m i process gi tài
nguyên và đang ch tài nguyên mà process khác trong t p đang
gi .
Ví d
Gi s h th ng có m t printer và m t DVD drive. Quá trình P1 đang gi
DVD drive, quá trình P2 đang gi printer.
Bây gi P1 yêu c u printer và ph i đi, và P2 yêu c u DVD drive và ph i
đi.
3
Mô hình hóa h th ng
H th ng g m các lo i tài nguyên, kí hi u R1, R2,…, Rm
Tài nguyên: CPU cycle, không gian b nh , thi t b I/O, file,… ế
M i lo i tài nguyên Ri có Wi th c th (instance).
Process s d ng tài nguyên theo th t
Yêu c u (request): process ph i ch n u yêu c u không ế đưc đáp ng ngay
S d ng (use): process s d ng tài nguyên
Hoàn tr (release): process hoàn tr tài nguyên
Các tác v yêu c u và hoàn tr đưc g i qua system call. Ví d
request/release device
open/close file
allocate/free memory
4
Đi u ki n c n đ x y ra deadlock (1/2)
B n đi u ki n c n (necessary condition) đ x y ra deadlock
1. Mutual exclusion: m t tài nguyên có th đưc c p phát cho
nhi u l m là 1 quá trình (t c là không chia s đưc)
2. Hold and wait: m t quá trình đang gi m t tài nguyên đưc
phép yêu c u thêm tài nguyên khác.
5
Đi u ki n c n đ x y ra deadlock (2/2)
3. No preemption: (= no resource preemption) không l y l i tài
nguyên đã c p phát cho quá trình, ngo i tr khi quá trình t
hoàn tr nó.
4. Circular wait: t n t i m t t p {P 1,…,Pn} các quá trình đang đi
sao cho
P1 đi m t tài nguyên mà P 1 đang gi
P2 đi m t tài nguyên mà P 2 đang gi
Pn đi m t tài nguyên mà P 0 đang gi
Đ ý: tài nguyên có th g m nhi u instance