Академический Документы
Профессиональный Документы
Культура Документы
Monghen(Deadlock)
hnh he thong
nh ngha
Deadlock prevention
Deadlock avoidance
Deadlock detection
Deadlock recovery
Khoa KTMT
V du 1
Gia s he thong co 2 file tren a.
P1 va P2 moi process ang m mot file va yeu cau m file
kia.
V du 2
Semaphore A va B, khi tao bang 1
P0
P1
wait(A);
wait(B);
wait(B);
wait(A);
Khoa KTMT
request/release device
open/close file
allocate/free memory
wait/signal
Khoa KTMT
nh ngha
Khoa KTMT
2.
Khoa KTMT
3.
4.
Khoa KTMT
Process:
Pi
Rj
Khoa KTMT
Rj
Rj
Khoa KTMT
V du ve RAG
R3
R1
P1
R2
Khoa KTMT
P3
P2
R4
V du ve RAG (tt)
R3
R1
P1
P3
P2
R4
RAG va deadlock
P1
R1
P2
R2
P3
P4
Khoa KTMT
Khoa KTMT
Khoa KTMT
2)
deadlock, nhng sau o phat hien deadlock
va phuc hoi he thong.
Khoa KTMT
1.
Khoa KTMT
Khoa KTMT
Khoa KTMT
Khoa KTMT
Moi process ch co the yeu cau thc the cua mot loai tai
nguyen theo th t tang dan (nh ngha bi ham F) cua loai
tai nguyen. V du
Chuoi yeu cau thc the hp le: tape drive disk drive
printer
Chuoi yeu cau thc the khong hp le: disk drive tape drive
Khi mot process yeu cau mot thc the cua loai tai nguyen R j
th no phai tra lai cac tai nguyen R i vi F(Ri) > F(Rj).
R1
P1 deadlock
Chng minh gia s ton tai mot chu trnh
F(R4) < F(R1)
F(R1) < F(R2)
Khoa KTMT
P2
R4
R2
R3
P4
P3
Yeu cau moi process khai bao so lng tai nguyen toi
a can e thc hien cong viec
Khoa KTMT
Khoa KTMT
Current
needs
P0
10
P1
P2
Khoa KTMT
P0
10
P1
P2
Khoa KTMT
deadlock
unsafe
safe
Khoa KTMT
R1
R1
P1
P2
R2
Khoa KTMT
P2
P1
R2
ieu kien
Moi process phai khai bao so lng thc the
(instance) toi a cua moi loai tai nguyen ma no
can
Khi process yeu cau tai nguyen th co the phai i
mac du tai nguyen c yeu cau ang co san
Khi process a co c ay u tai nguyen th phai
hoan tra trong mot khoang thi gian hu han nao
o.
Khoa KTMT
sang
Max: ma tran n m
Max[
loai
tai
nguyen Rj
Allocation: ma tran n m
Allocation[i,
Need: ma tran n m
j] = k Pi can them k instance cua Rj
Ky
hieu Y X Y[i] X[i], v du (0, 3, 2, 1) (1, 7, 3, 2)
Nhan xet: Need[i, j] = Max[i, j] Allocation[i, j]
Need[i,
Khoa KTMT
2. Tm i thoa
(a) Finish[ i ] = false
(b) Needi
Work (hang th i cua Need)
Neu khong ton tai i nh vay, en bc 4.
3. Work
:= Work + Allocationi
Finish[ i ] := true
quay ve bc 2.
4. Neu Finish[ i ] = true, i = 1,, n, th he thong ang trang
thai safe
Thi gian chay cua giai thuat la O(mn2)
Khoa KTMT
Khoa KTMT
Khoa KTMT
Co 5 process P0 ,, P4
Max
Available
Need
A B C
A B C
P0
7 4 3
P1
1 2 2
P2
6 0 0
P3
0 1 1
P4
4 3 1
Khoa KTMT
Need
Work
ABC
ABC
A B C
P0
010
743
3 3 2
P1
200
122
5 3 2
P2
302
600
P3
211
011
P4
002
431
7 4 3
7 4 5
10 4 7
Khoa KTMT
10 5 7
Trang thai mi la safe (chuoi an toan la <P1, P3, P4, P0, P2>), vay co the cap phat tai nguyen cho P1.
Allocation
P4 (3, 3,
0) ?
P0 (0, 2,
0) ?
P3 (0, 2, 1)?
Khoa KTMT
Need
Available
P0
P1
P2
P3
P4
Khoa KTMT
R3
P5
R4
P1
P2
P3
R2
P4
R5
P1
P2
P3
P4
Mot giai thuat kiem tra co ton tai chu trnh trong wait-for
graph hay khong se c goi nh ky. Giai thuat phat
hien chu trnh co thi gian chay la O(n 2), vi n la so
nh cua graph.
Khoa KTMT
Cac cau truc d lieu dung trong giai thuat phat hien
deadlock
Available: vector o dai m
so instance san sang cua moi loai tai nguyen
Allocation: ma tran n m
so instance cua moi loai tai nguyen a cap phat cho moi
process
Request: ma tran n m
yeu cau hien tai cua moi process.
Request [i, j ] = k Pi ang yeu cau them k instance cua Rj
Khoa KTMT
th Finish[ i ] := true
2. Tm i thoa man:
Finish[ i ] := false va
Requesti
Work
O(mn2)
3. Work
:= Work + Allocation i
Finish[ i ] := true
quay ve bc 2.
4. Neu Finish[ i ] = false, vi mot i = 1,, n, th he thong
ang trang thai deadlock. Hn the na, Finish[ i ] = false
th Pi b deadlocked.
Khoa KTMT
Allocation
Request
Available
A B C
P0
P1
P2
P3
P4
Khoa KTMT
P2
sau:
Request
A B C
P0
0 0 0
P1
2 0 2
P2
0 0 1
P3
1 0 0
P4
0 0 2
Khoa KTMT
Khoa KTMT
Khoa KTMT
Khoa KTMT
Khoa KTMT
Bai tap
P1
R2
Khoa KTMT
P3
P2
Deadlock ?
R4
Bai tap
Bai 03:
A) Tm Need
B) He thong co an toan khong
C)Neu P1 yeu cau (0,4,2,0) th co the cap
phat cho no ngay khong?
Khoa KTMT