Đối với một bộ (t
một
, la
1
, la
2
, tb
, lb
1
, lb
2
) là một bế tắc có thể truy cập chúng tôi
điều kiện phải được thỏa mãn: a thread trừu tượng bởi
t
một
tầm l
một
1
và, sau khi có được một khóa ở l
một
1
, tiến tới đạt
l
một
2 trong khi vẫn giữ khóa (và tương tự cho t
b
, l
b
1
, l
b
2
)?
thuật toán của chúng tôi sử dụng thuộc tính reachability (Hình 4)
để gần đúng điều kiện này:
reachableDeadlock (t
một
, la
1
, la
2
, tb
, lb
1
, lb
2
) nếu
t
một → l
một
1 ∧ l
một
1 → l
một
2 ∧ t
b → l
b
1 ∧ l
b
1 → l
b
2
Ví dụ của chúng tôi chạy, nó rất dễ dàng để thấy rằng thread
t1 đạt l1, sau đó l3 và sau đó l2, trong khi t2 đạt
l2 và sau đó l1. Thu
đang được dịch, vui lòng đợi..
