Вы находитесь на странице: 1из 45

Chng 6 : Tac

Monghen(Deadlock)
hnh he thong

nh ngha

ieu kien can cua deadlock

Resource Allocation Graph (RAG)

Phng phap giai quyet deadlock

Deadlock prevention

Deadlock avoidance

Deadlock detection

Deadlock recovery

Phng phap ket hp e giai quyet Deadlock

Khoa KTMT

Van e deadlock trong he


Tnhthong
huong: mot tap cac process b blocked, moi process
gi tai nguyen va ang ch tai nguyen ma process
khac trong tap ang gi.

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

Mo hnh hoa he thong

He thong gom cac loai tai nguyen, k hieu R1, R2,, Rm ,


bao gom:
CPU cycle, khong gian bo nh, thiet b I/O, file, semaphore,

Moi loai tai nguyen Ri co Wi thc the (instance).

Gia s tai nguyen tai s dung theo ky (Serially Reusable


Resources)
Yeu cau (request): process phai ch neu yeu cau khong
c ap ng ngay
S dung (use): process s dung tai nguyen
Hoan tra (release): process hoan tra tai nguyen

Cac tac vu yeu cau (request) va hoan tra (release) eu


la system call. V du

request/release device
open/close file
allocate/free memory
wait/signal

Khoa KTMT

nh ngha

Mot tien trnh goi la deadlocked neu no


ang i mot s kien ma se khong bao gi
say ra.
Thong thng, co nhieu hn mot tien trnh b lien
quan trong mot deadlock.

Mot tien trnh goi la tr hoan vo han nh


(indefinitely postponed) neu no b tr hoan mot
khoang thi gian dai lap i lap lai trong khi
he thong ap ng cho nhng tien trnh
khac .
i.e. Mot tien trnh san sang e x ly nhng no
khong bao gi nhan c CPU.

Khoa KTMT

ieu kien can e xay ra


deadlock

Bon ieu kien can (necessary condition) e


xay ra deadlock
1.

Loai tr ho tng (Mutual exclusion): t nhat


mot tai nguyen c gi theo nonsharable
mode (v du: printer; v du sharable resource: readonly files).

2.

Gi va ch cap them tai nguyen (Hold and


wait): mot process ang gi t nhat mot tai
nguyen va i them tai nguyen do qua trnh
khac ang gi.

Khoa KTMT

ieu kien can e xay ra


deadlock (tt)

3.

Khong trng dung (No preemption): (= no


resource preemption) tai nguyen khong the b
lay lai, ma ch co the c tra lai t
process ang gi tai nguyen o khi no muon.

4.

Chu trnh i (Circular wait): ton tai mot tap


{P0,,Pn} cac qua trnh ang i sao cho
P0 i mot tai nguyen ma P1 ang gi
P1 i mot tai nguyen ma P2 ang gi

Pn i mot tai nguyen ma P0 ang gi

Khoa KTMT

Resource Allocation Graph (tt)


Ky hieu

Process:

Pi

Loai tai nguyen vi 4 thc the:

Rj

Pi yeu cau mot thc the cua RPj i:

Pi ang gi mot thc the cua RjP:i

Khoa KTMT

Rj

Rj

o th cap phat tai nguyen


Resource Allocation Graph

Resource allocation graph (RAG) la o th co


hng, vi tap nh V va tap canh E
Tap nh V gom 2 loai:
P = {P1, P2,, Pn } (Tat ca process trong he thong)
R = {R1, R2,, Rm } (Tat ca cac loai tai nguyen trong
he thong)

Tap canh E gom 2 loai:


Canh yeu cau (Request edge): Pi Rj
Canh cap phat (Assignment edge): Rj Pi

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

Deadlock xay ra!


R2
Khoa KTMT

R4

RAG va deadlock

V du mot RAG cha chu trnh nhng khong xay


ra deadlock: P4 co the tra lai instance cua R2.

P1

R1

P2

R2

P3

P4
Khoa KTMT

RAG va deadlock (tt)

RAG khong cha chu trnh (cycle) khong co


deadlock
RAG cha mot (hay nhieu) chu trnh
Neu moi loai tai nguyen ch co mot thc the
deadlock
Neu moi loai tai nguyen co nhieu thc the co
the xay ra deadlock

Khoa KTMT

Cac phng phap giai quyet


deadlock (1)
Ba phng phap
1) Bao am rang he thong khong ri
vao tnh trang deadlock bang cach ngan
(preventing) hoac tranh (avoiding) deadlock.
Khac biet
Ngan deadlock: khong cho phep (t nhat) mot
trong 4 ieu kien can cho deadlock
Tranh deadlock: cac qua trnh can cung cap
thong tin ve tai nguyen no can e he thong
cap phat tai nguyen mot cach thch hp

Khoa KTMT

Cac phng phap giai quyet


deadlock
(2)
Cho phep he thong vao trang thai

2)
deadlock, nhng sau o phat hien deadlock
va phuc hoi he thong.

3) Bo qua moi van e, xem nh deadlock


khong bao gi xay ra trong he thong.
Kha nhieu he ieu hanh s dung phng
phap nay.
Deadlock khong c phat hien, dan en
viec giam hieu suat cua he thong. Cuoi
cung, he thong co the ngng hoat ong
va phai c khi ong lai.

Khoa KTMT

1. Ngan deadlock (deadlock


prevention)

Ngan deadlock bang cach ngan mot trong 4


ieu kien can cua deadlock

1.

Ngan mutual exclusion

oi vi nonsharable resource (vd: printer): khong lam


c
oi vi sharable resource (vd: read-only file): khong
can thiet

Khoa KTMT

Ngan deadlock (tt)


2.

Ngan Hold and Wait

Cach 1: moi process yeu cau toan bo tai nguyen can


thiet mot lan. Neu co u tai nguyen th he thong se
cap phat, neu khong u tai nguyen th process phai b
blocked.

Cach 2: khi yeu cau tai nguyen, process khong c gi


bat ky tai nguyen nao. Neu ang co th phai tra lai
trc khi yeu cau.

V du e so sanh hai cach tren: mot qua trnh copy d lieu


t tape drive sang disk file, sap xep disk file, roi in ket qua
ra printer.

Khuyet iem cua cac cach tren:


Hieu suat s dung tai nguyen (resource utilization) thap
Qua trnh co the b starvation

Khoa KTMT

Ngan deadlock (tt)


3.

Ngan No Preemption: neu process A co gi tai nguyen va


ang yeu cau tai nguyen khac nhng tai nguyen nay
cha cap phat ngay c th

Cach 1: He thong lay lai moi tai nguyen ma A ang


gi
A ch bat au lai c khi co c cac tai nguyen
a b lay lai cung vi tai nguyen ang yeu cau

Cach 2: He thong se xem tai nguyen ma A yeu cau


Neu tai nguyen c gi bi mot process khac
ang i them tai nguyen, tai nguyen nay c he
thong lay lai va cap phat cho A.
Neu tai nguyen c gi bi process khong i tai
nguyen, A phai i va tai nguyen cua A b lay lai.
Tuy nhien he thong ch lay lai cac tai nguyen ma
process khac yeu cau

Khoa KTMT

Ngan deadlock (tt)


4.

Ngan Circular Wait: gan mot th t cho tat ca cac tai


nguyen trong he thong.

Tap hp loai tai nguyen: R={R1, R2,,Rm }


Ham anh xa: F: R->N

V du: F(tape drive) = 1, F(disk drive) = 5, F(printer) = 12


F la ham nh ngha th t tren tap cac loai tai
nguyen.

Khoa KTMT

Ngan deadlock (tt)


4.

Ngan Circular Wait (tt)

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)

F(R2) < F(R3)

F(R3) < F(R4)

Vay F(R4) < F(R4), mau thuan!

Khoa KTMT

P2

R4

R2

R3
P4

P3

2. Tranh tac nghen


Deadlock avoidance

Deadlock prevention s dung tai nguyen khong hieu


qua.

Deadlock avoidance van am bao hieu suat s dung


tai nguyen toi a en mc co the.

Yeu cau moi process khai bao so lng tai nguyen toi
a can e thc hien cong viec

Giai thuat deadlock-avoidance se kiem tra trang thai


cap phat tai nguyen (resource-allocation state) e bao
am he thong khong ri vao deadlock.
Trang thai cap phat tai nguyen c nh ngha da
tren so tai nguyen con lai, so tai nguyen a c
cap phat va yeu cau toi a cua cac process.

Khoa KTMT

Trang thai safe va unsafe

Mot trang thai cua he thong c goi la an


toan (safe) neu ton tai mot chuoi (th t) an
toan (safe sequence).
Mot chuoi qua trnh <P1, P2,, Pn > la mot
chuoi an toan neu
Vi moi i = 1,,n, yeu cau toi a ve tai nguyen cua
Pi co the c thoa bi
tai nguyen ma he thong ang co san sang
(available)
cung vi tai nguyen ma tat ca Pj , j < i, ang gi.

Mot trang thai cua he thong c goi la


khong an toan (unsafe) neu khong ton tai mot
chuoi an toan.

Khoa KTMT

Chuoi an toan (tt)


V du: He thong co 12 tape drives va 3 qua trnh
P0 , P 1 , P 2

Tai thi iemMaximum


t0
needs

Current
needs

P0

10

P1

P2

Con 3 tape drive san sang.


Chuoi <P1, P0, P2> la chuoi an toan he thong la
an toan

Khoa KTMT

Chuoi an toan (tt)

Gia s tai thi iem t1, P2 yeu cau va c


cap phat 1 tape drive
con 2 tape drive san sang
can toi a ang gi

P0

10

P1

P2

He thong con an toan khong?

Khoa KTMT

Trang thai safe/unsafe va


deadlock
Neu
he thong ang trang thai safe khong deadlock.
Neu he thong ang trang thai unsafe co the dan
en deadlock.
Tranh deadlock bang cach bao am he thong khong
i en trang thai unsafe.

deadlock

unsafe

safe

Khoa KTMT

Giai thuat o th cap phat tai


nguyen

Khai niem canh thnh cau

R1

R1

P1

P2

R2

Khoa KTMT

P2

P1

R2

Giai thuat banker

Ap dung cho he thong cap phat tai nguyen


trong o moi loai tai nguyen co the co
nhieu instance.

Bat chc nghiep vu ngan hang (banking)

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

Giai thuat banker (tt)


n: so process, m: so loai tai nguyen
Cac cau truc d lieu

Available: vector o dai m


Available[

j ] = k loai tai nguyen Rj co k instance san

sang

Max: ma tran n m
Max[

i, j ] = k qua trnh Pi yeu cau toi a k instance cua

loai
tai

nguyen Rj

Allocation: ma tran n m
Allocation[i,

j] = k Pi a c cap phat k instance cua Rj

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

Giai thuat banker (tt)


1.Giai thuat an toan
Tm mot chuoi an toan
1. Goi Work va Finish la hai vector o dai la m va n. Khi tao
Work
:= Available
Finish[ i ] := false, i = 1,, n

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

Giai thuat banker (tt)


2. Giai thuat yeu cau (cap phat)
tai nguyen
Goi Request
i la request vector cua process P i .
Requesti [ j ] = k Pi can k instance cua tai nguyen
Rj .
1. Neu Requesti Needi th en bc 2. Neu khong,
bao loi v process a vt yeu cau toi a.
2. Neu Requesti Available th qua bc 3. Neu
khong, Pi phai ch v tai nguyen khong con
u e cap phat.
3. Gia nh cap phat tai nguyen ap ng yeu
cau cua Pi bang cach cap nhat trang thai he
thong nh sau:
Available := Available Requesti
Allocationi := Allocationi + Requesti
Needi
:= Needi Requesti

Khoa KTMT

Giai thuat banker (tt)


2.Giai thuat yeu cau tai nguyen
Ap dung giai thuat kiem tra trang thai an toan len
trang thai tren
Neu trang thai la safe th tai nguyen c cap thc
s cho Pi .
Neu trang thai la unsafe th Pi phai i, va
phuc hoi trang thai:
Available := Available + Requesti
Allocationi := Allocationi Requesti
Needi
:= Needi + Requesti

Khoa KTMT

Giai thuat kiem tra trang thai


an toan V du

Co 5 process P0 ,, P4

Co 3 loai tai nguyen: A (co 10 instance), B (5 instance)


va C (7 instance).

S o cap phat trong he thong tai thi iem T0


Allocation

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

GT (kiem tra trang thai)an


toan Vd (tt)
Chuoi an toan <P1, P3, P4, P2, P0>
Allocation

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

GT cap phat tai nguyen


V du

Yeu cau (1, 0, 2) cua P 1 co thoa c khong?

Kiem tra ieu kien Request1 Available:


(1, 0, 2) (3, 3, 2) la ung
Gia nh thoa yeu cau, kiem tra trang thai mi co phai la safe hay khong.

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

3. Phat hien deadlock (Deadlock


detection)

Chap nhan xay ra deadlock trong he thong,


kiem tra trang thai he thong bang giai
thuat phat hien deadlock.

Neu co deadlock th tien hanh phuc hoi he


thong

Cac giai thuat phat hien deadlock thng


s dung mo hnh RAG.

He thong cap phat tai nguyen c khao


sat trong moi trng hp sau
1. Moi loai tai nguyen ch co mot thc the (instance)
2. Moi loai tai nguyen co the co nhieu thc the

Khoa KTMT

Moi loai tai nguyen ch co


mot thc the
S dung wait-for graph
Wait-for graph c dan xuat t RAG bang cach bo cac node
bieu dien tai nguyen va ghep cac canh tng ng.
Co canh t Pi en Pj Pi ang ch tai nguyen t Pj
P5
R1

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

Moi loai tai nguyen co


nhieu thc the
Phng phap dung wait-for graph khong ap dung c cho
trng hp moi loai tai nguyen co nhieu instance.

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

Giai thuat phat hien


1. Goi deadlock
Work va Finish la vector kch thc m va n. Khi tao:
Work := Available
i = 1, 2,, n, neu Allocationi 0 th Finish[ i ] := false
con khong

th Finish[ i ] := true

2. Tm i thoa man:
Finish[ i ] := false va
Requesti

Work

Neu khong ton tai i nh the, en bc 4.

thi gian chay


cua giai thuat

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

Giai thuat phat hien


deadlock V du
He thong co 5 qua trnh P ,, P

3 loai tai nguyen: A (7 instance), B (2 instance), C (6 instance).

Allocation

Request

Available

A B C

P0

P1

P2

P3

P4

Chay giai thuat, tm c chuoi <P0, P2, P3, P1, P4> vi


Finish[ i ] = true, i = 1,, n, vay he thong khong b
deadlocked.

Khoa KTMT

Giai thuat phat hien


deadlock V du (tt)
yeu cau them mot instance cua C. Ma tran Request nh

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

Trang thai cua he thong la g?


Co the thu hoi tai nguyen ang s hu bi process P0
nhng van khong u ap ng yeu cau cua cac process
khac.
Vay ton tai deadlock, bao gom cac process P1, P2, P3, va P4 .

Khoa KTMT

Phuc hoi deadlock (Deadlock


Recovery)

Khi deadlock xay ra, e phuc hoi

bao ngi van hanh (operator)


hoac
he thong t ong phuc hoi bang cach be gay chu
trnh deadlock:
cham dt mot hay nhieu qua trnh
lay lai tai nguyen t mot hay nhieu qua trnh

Khoa KTMT

Deadlock Recovery: Cham dt


qua
trnh
Phuc hoi he thong b deadlock bang cach cham
dt qua trnh

Cham dt tat ca process b deadlocked, hoac


Cham dt lan lt tng process cho en khi khong con
deadlock
S dung giai thuat phat hien deadlock e xac nh
con deadlock hay khong

Da tren yeu to nao e chon process can c


cham dt?

o u tien cua process


Thi gian a thc thi cua process va thi gian con lai
Loai tai nguyen ma process a s dung
Tai nguyen ma process can them e hoan tat cong
viec
So lng process can c cham dt
Process la interactive process hay batch process

Khoa KTMT

Deadlock recovery: Lay lai tai


nguyen

Lay lai tai nguyen t mot process, cap phat cho


process khac cho en khi khong con deadlock na.

Cac van e trong chien lc thu hoi tai nguyen:


Chon nan nhan e toi thieu chi ph (co the da tren
so tai nguyen s hu, thi gian CPU a tieu ton,...)
Tr lai trang thai trc deadlock (Rollback): rollback process
b lay lai tai nguyen tr ve trang thai safe, tiep tuc
process t trang thai o. He thong can lu gi mot so
thong tin ve trang thai cac process ang thc thi.
oi tai nguyen (Starvation): e tranh starvation, phai
bao am khong co process se luon luon b lay lai tai
nguyen moi khi deadlock xay ra.

Khoa KTMT

Phng phap ket hp e giai


quyet Deadlock

Ket hp 3 phng phap c ban

Ngan chan (Prevention)


Tranh (Avoidance)
Phat hien (Detection)
Cho phep s dung cach giai quyet toi u cho moi
lp tai nguyen trong he thong.

Phan chia tai nguyen thanh cac lp theo


th bac.
S dung ky thuat thch hp nhat cho viec quan ly
deadlock trong moi lp nay.

Khoa KTMT

Bai tap

Bai 01: Liet ke 3 trng hp xay ra deadlock


trong i songR1
R3
Bai 02:

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

Вам также может понравиться