Download as pdf or txt
Download as pdf or txt
You are on page 1of 61

KHOA CNG NGH THNG TIN

TRNG I HC BCH KHOA TP H CH MINH

H IU HNH
Giao tip
p gia
g
cc tin trnh

Mt s khi nim c bn*


Tin trnh c lp khng nh hng v khng b nh
hngg bi vic thc thi ca cc tin trnh khc.
Tin trnh hp tc (khng c lp) c th nh hng
v b nh hng bi vic thc thi ca cc tin trnh
khc.
u im ca vic hp tc tin trnh:

Chia s thng tin


Tng tc tnh ton (x l song song)
T h module
Tnh
d l ha
h
Tin li

Mt s khi nim c bn*


Cc tin trnh s dng v cp nhp d liu chia s
nh cc bin, file v c s d liu dng chung.
Thao tc ghi phi c lp tng i mt ngn nga
tnh trng ng , c th dn n tnh khng ton
vn d liu.
liu
Cc min gng dng cung cp s ton vn d liu.
Mt tin trnh i hi min gng phi khng b ch
mi mi: deadlock

ng (race condition)
Race condition: tnh hung m nhiu tin trnh cng
truyy cpp v thao tc d liu chia s mt cch ng
g
thi. D liu cui cng ph thuc vo tin trnh cui
cng.
ngn nga ng , cc tin
trnh ng
hnh phi
c ng b ha.

ng (race condition)

Min gng (critical section)


n tin trnh u tranh vi nhau s dng mt s d
liu no .
Mi tin
trnh c mt on m, gi l min
gng
(critical section (CS)), ti d liu chia s c
truy cp.
cp
Vn : bo m rng khi mt tin trnh ang thc
g g ca n,, khngg c tin trnh no
thi trongg min gng
khc c quyn thc thi trong min gng ca n.

Ng cnh min gng


Khi mt tin trnh thi hnh on m thao tc trn d
liu chia s (hay ti nguyn), chng ta ni rng tin
trnh
h ang

trong min
i gng
ca
n.

Vic thc thi cc min gng phi c tnh duy nht: ti


bt k thi im no,
no ch c duy nht mt tin trnh
c quyn thc thi trong min gng ca n (ngay c
vi nhiu b x l).
V vy mi tin trnh phi yu cu quyn trc khi
vo min gng.

Ng cnh min gng


on m th hin yu cu ny c gi lEntry
( )
Section (ES).
Min gng (CS) c th theo sau l Leave/Exit
Section (LS).
Phn on m cn li l Remainder Section (RS).
Vn ca min gng l thit k mt giao thc m
cc tin trnh c th s dng hnh ng ca chng
s khng ph thuc vo th t m s thi hnh ca
chng c chen vo.

Gii php cho vn min gng

C 3 yu cu m mt gii php ng cn phi tha


mn:
1. Mutual Exclusion: khng c 2 tin
trnh cng
trong min gng mt lc
2 Progress:
2.
P
Mt tin
ti trnh
t h bn
b ngoi
i min
i gng

khng c ngn cn cc tin trnh khc vo


min gng
g g
3. Bounded Waiting: khng c tin trnh no phi
ch v hn vo min gng

Ch cn mt trong ba iu kin trn sai th gii


php
h a
ra l sai.
i
9

Cu trc ca cc tin trnh


Cu trc tng qut ca tin trnh Pi (Pj)
do {
entry section
critical section
leave section
remainder section
} while
hil (1);
(1)
Lu : Cc tin trnh c th chia s cc bin dng
chung ng b ha hot ng ca chng.
chng

10

Phn loi cc gii php cho CS


Giai phap busy-waiting

Alg.
g 1 & 2, Peterson, Dekker, Bakery,
y
TSL, Interrupt

Giai phap sleep and wake-up

Semaphore
Monitor

11

Giai thuat 1
Bien chia se

int turn; /* khi au turn = 0 */


neu turn = i Pi
c phe
h p vao critical
i i l section
i

Process Pi
do {

while (turn != i) ;
()
critical section();
turn = j;
remainder section();
} while
i (1);
(1)

Thoa man
man mutual exclusion (1)
Thoa
Progress (2) & bounded-waiting (3) ?
12

Giai thuat 1
Process P0:
do
while(turn !=0 );
Critical_Section();
turn=1;;
Remainder_Section();

Process P1:
do
while(turn!=1);
Critical_Section();
turn=0;;
Remainder_Section();

while (1);

while (1);

V du: P0 co RS rat ln va P1 co RS nho.


Neu turn=0,
Neu
turn=0 P0
cc va
vao
o CS va
va sau o
o th
thcc thi vu
vung
ng RS (turn=1).
(turn=1)
en P1 vao CS va sau o thc thi RS (turn=0) va tm cach vao CS mot lan
na nhng
h
yeu cau b t cho
h i !!! P1 pha
h i ch
h P0 !!!.
!!!
13

Giai thuat 2
Bien chia se

boolean flag[2]; /* khi au flag [0] = flag [1] = false. */


N u flag
Ne
fl [i] = true
t
Pi san sang vao critical
i i l section
i

Process
ocess Pi
do {
flag[i] = true;
while
i (flag[j]) ;
Critical_Section();
flag
ag [i]
[ ] = false;
a se;
Remainder_Section();
} while (1);
14

Giai thuat 3 (Peterson)


Bien chia se: ket hp ca giai thuat 1 va 2.
Process Pi
do {
flag [i]= true;
turn = j;
while ((flag
g [j] and turn == j) ;
Critical_Section();
flag [i] = false;
Remainder_Section();
} while (1);

15

Giai thuat Bakery: N process


Trc khi vao CS, process Pi nhan mot con so. Process nao gi
con so nho nhat th c vao CS
Trng hp Pi va Pj cung nhan c mot ch so:

Neu
Ne
u i < j th Pi
cc vao
vao trc,
trc ngc
ngc la
laii Pj c
c vao
vao
trc.

Khi ra khoi CS, Pi at lai so cua mnh bang 0


C che cap so cho cac process thng tao cac so theo c che tang
dan, v du 1,2,3,3,3,3,4,5...

16

Lenh TSL (Test-and-Set Lock)


Kiem tra va cap nhat mot bien trong mot thao tac n
(atomic)
nShared data:
bool TestandSet(bool &target)
{
bool rv = target;
target = true;
return rv;
}

bool lock = false;


nProcess Pi

while (1)

{
while (TestandSet(lock)) ;
Critical_Section;
lock = false;
Remainder_Section;
}
17

Semaphores
L mt cng c ng b ha c cung cp bi
HH khng i hi busy waiting.
Mt semaphore S l mt bin
nguyn m ngoi lnh
khi to ra, ch c th c truy xut thng qua hai
thao tc c quyn truy xut v nguyn t:
wait(S)
signal(S)

18

Semaphores
Truy cp vi 2 thao tc
( )
wait (S):
while S 0 do no-op;
S--;
signal (S):
S++;
ttrnh
h busy
b
waiting:
iti khi mt
t tin
ti ttrnh
h phi
hi i,
i n s
c t vo hng i block.
Khi mt
tin trnh pphi i
mt
semaphore
p
S,, n s b block
v t vo hng i ca semaphore tng ng.
Thao tc signal ly mt tin trnh t trong hng i v t n
vo
trong
t
danh
d h sch
h cc
tin
ti trnh
t h trng
t
thi sn
sng.

19

Semaphores
nh ngha cu trc:
typedef struct {
int value;
struct p
process *L;;
} semaphore;
Gi s c 2 thao tc c bn:

Block tm cho tin trnh ch.


wakeup(P) khi phc li s thi hnh ca tin trnh b
bl k P.
block

20

Semaphores
wait(S):
S.value--;
if (S.value < 0) {
add this process to S.L;
bl k
block;
}
signal(S):
S.value++;
if (S.value <= 0) {
remove a process P from S.L;
wakeup(P);
}
21

Van e deadlock trong he thong

Tnh huong: mot tap cac process b blocked, moi process gi tai

nguyen va ang ch tai nguyen ma process khac trong tap ang


gi.
g
V du 1
Gia
Gia s
s he tho
thong
ng co
co 2 file tren
tren a.
P1 va P2 moi process ang m mot file va yeu cau m file kia.

V du
du 2
Semaphore A va B, khi tao bang 1
P0
P1
wait (A);
wait(B);
wait (B);
wait(A);

-8.22-

Mo hnh hoa he thong

He thong gom cac loai tai nguyen, k hieu R1, R2,, Rm , bao
gom:
C
CPU
U cycle,
cyc e, kho
ong g
gian
a bo nh
,, tthie
ett b I/O,
/O, file,
e, se
semaphore,
ap o e,

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


Process th
thng
ng s
s du
dung
ng tai
tai nguye
nguyen
n theo th
th t
t sau
Yeu cau (request): process phai ch neu yeu cau khong c ap
ng ngay
S
S du
dung
ng (use): process s
s du
dung
ng ta
taii nguyen
nguyen
Hoan tra (release): process hoan tra tai nguyen

Cac
Ca
c ta
tac
c vu
vu ye
yeu
u cau
cau (request) va
va hoan
hoan tra
tra (release) e
eu
u la
la
system call. V du

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

-8.23-

ieu kien can e xay ra deadlock


Bon ieu kien can (necessary condition) e xay ra
deadlock

1. Mutual exclusion: t nhat mot tai nguyen c gi


theo nonsharable mode
mode.

2. Hold and wait: mot p


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

-8.24-

ieu kien can e xay ra deadlock (tt)


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

4 Circular wait: ton


4.
ton ta
taii mot chu trnh cu
cua
a cac
cac yeu
yeu ca
cau
u
tai nguyen va tai nguyen a c cap phat.

P1

P2

-8.25-

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 tai nguyen trong he thong)
canh E gom
gom 2 loa
loai:
i:
Tap canh
Request edge: canh co hng t Pi en Rj
Assignment edge: canh co hng t Rj en Pi

-8.26-

Resource Allocation Graph (tt)


Ky hieu

P
Process:
Pi
Loai tai nguyen vi 4 thc the:

Pi yeu cau mot thc the cua Rj :

R
j

R
Pi

Pi ang gi mot thc the cua Rj : P


i

R
j
-8.27-

V du ve RAG
R3

R1

P1

P3

P2

R2

R4
-8.28-

V du ve RAG (tt)
R3

R1

P1

P3

P2

D dl k xay
Deadlock
ra!!
R2

R4
-8.29-

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
-8.30-

RAG va deadlock (tt)


RAG khong cha chu trnh (cycle) khong co
deadlock.
RAG ch
h a mot (hay
(h nhie
hi u) chu
h trnh
h
Neu moi loai tai nguyen ch co mot thc the deadlock
Neu moi loai tai nguye
g y n co nhieu thc the co the xay ra
deadlock

-8.31-

Cac phng phap giai quyet deadlock

Dung mot giao thc (protocol) e ngan (preventing)


hoac tranh (avoiding) deadlock, bao am rang he
g deadlock.
thong khong ri vao tnh trang
Cho phep he thong vao trang thai deadlock, nhng
sau o
pha
h t hie
hi n deadlock
d dl k va phu
h c ho
h i h
he tho
th ng.
Bo q
qua moi van e, xem nh deadlock khong bao g
gi
xay ra trong he thong.
Kha nhieu he ieu hanh s dung phng phap nay.
Deadlock khong
khong
c
c phat
phat hien, dan
dan en
en viec gia
giam
m hieu
suat cua he thong. Cuoi cung, he thong co the ngng hoat
ong va phai c khi ong lai.

-8.32-

Ngan deadlock
Ngan deadlock bang cach ngan mot trong 4 ieu
kien gay deadlock
1. Ngan mutual exclusion
oi vi nonsharable resource ((vd: printer):
p
) khong lam c
oi vi sharable resource (vd: read-only file): khong can
thiet

-8.33-

Ngan deadlock (tt)


2. Ngan Hold and Wait
Ca
Cach
ch 1: mo
moii process ye
yeu
u cau
cau toan
toan bo tai
tai nguye
nguyen
n can
can thiet
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.

Khuyet iem cua cac cach tren:


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

-8.34-

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
p
g y c th
Cach 1: He thong lay lai moi tai nguyen ma A ang gi
A ch ba
batt au
au la
laii c
c khi co
co
c
c ca
cac
c ta
taii nguye
nguyen
n a
a b
lay lai cung vi tai nguyen ang yeu cau
Ca
Cach
ch 2: He tho
thong
ng se
se xem ta
taii nguye
nguyen
n ma
ma A ye
yeu
u cau
cau
Neu tai nguyen c gi bi mot process khac ang
i them tai nguyen, tai nguyen nay c he thong lay
laii va
la
va cap
cap phat
phat cho A.
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
nhien
thong ch lay
lay lai
lai ca
cac
c ta
taii nguye
nguyen
n ma
ma process
khac yeu cau
-8.35-

Ngan deadlock (tt)


4. Ngan Circular Wait: tap cac loai tai nguyen trong he thong
c gan mot th t hoan toan.

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.

-8.36-

Ngan deadlock (tt)


4. Ngan Circular Wait (tt)

Cach 1: moi process ch co the yeu cau thc the cua mot loai tai
nguyen theo th t tang dan 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

Cach 2: Khi mot process yeu cau mot thc the cua loai tai nguyen
Rj th no phai tra lai cac tai nguyen Ri vi F(Ri) > F(Rj).

Chng minh bang phan chng:


F(R4) < F(R1)
F(R1) < F(R2)
F(R2) < F(R3)
R
F(R3) < F(R4)
Vay F(R4) < F(R4), mau thuan!4

R
P1

P2
R
2

R
P4

P3
-8.37-

Deadlock avoidance

Deadlock prevention s dung tai nguyen khong hieu qua.


Deadlock avoidance va
van
n am
am bao
bao hieu sua
suatt s
s du
dung
ng tai
tai nguye
nguyen
n
toi a en mc co the.
Yeu
Ye
u cau
cau moi
moi process khai ba
bao
o so
so l
lng
ng tai
tai nguye
nguyen
n toi
toi a can
can
e thc hien cong viec
Giai thuat deadlock-avoidance
Giai
deadlock avoidance se
se kiem
kiem tra tra
trang
ng tha
thaii ca
cap
p phat
phat
tai nguyen (resource-allocation state) e bao am he thong
khong bao gi 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 cu
cua
a cac
cac process
process.

-8.38-

Trang thai safe va unsafe

Mot trang thai cua he thong c goi la an toan (safe)


neu ton tai mot chuoi an toan (safe sequence).

-8.39-

Chuoi an toan

Mot chuoi qua trnh <P1, P2,, Pn> la mot chuoi an


toan neu
Vi moi i = 1,,
1 n, ta
t i nguyen (ma
( Pi con co the
th yeu cau) co
the c thoa bi tai nguyen ang 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
toan
neu khong
khong ton
ton ta
taii mot chuo
chuoii an toa
toan.
n

-8.40-

Chuoi an toan (tt)


V du: He thong co 12 tape drives va 3 qua trnh P0, P1,
P2
Ta
T i th
h i i
iem t0
can toi a

g gi
g
ang

P0

10

P1

P2

Con 3 tape drive san sang.


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

-8.41-

Chuoi an toan (tt)

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


1 tape drive
can toi a

ang gi

P0

10

P1

P2

He thong tr nen khong an toan.

-8.42-

Khi mot process yeu cau mot tai nguyen ang san
sang (available), he thong se kiem tra: neu viec cap
phat nay
phat
nay khong
khong dan
dan en
en tnh tra
trang
ng unsafe th se
se cap
cap
phat ngay.

-8.43-

Trang thai safe/unsafe va deadlock

Neu he thong ang trang thai safe khong deadlock.


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

deadlock

unsafe

safe

-8.44-

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
Mo
Moii process pha
phaii khai ba
bao
o so
so l
lng
ng th
thc
c the
the (instance) toi
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 khoa
khoang
ng thi
thi gian h
hu
u ha
han
n nao
nao o.
o

-8.45-

Giai thuat banker (tt)


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

Available:
a ab e vector
ec o o da
dai m
Available[ j ] = k loai tai nguyen Rj co k instance san sang

Max: ma tran n m

Max[ i,
i j ] = k qua
qua trnh Pi yeu
yeu cau
cau toi
toi a k instance cua
cua loai
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
Need[i, j] = k Pi can them k instance cua Rj
Nhan xet: Need [i, j] = Max[i, j] Allocation [i, j]

Ky hieu Y X Y[i] X[i],


Ky
X[i] v du
du (0,
(0 3,
3 2,
2
1) (1, 7, 3, 2)
-8.46-

Giai thuat kiem tra trang thai an toan


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

2 Tm i tho
2.
thoa
a
(a) Finish [i] = false
(b) Needi Work (hang th i cua Need)
N khong
Neu
kh ton
t ta
t i i nh
h vay, en
bc
b 4.
4

3. Work
:= Work + Allocationi
Finish[i] := true
quay ve bc
b 2.
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)
-8.47-

Giai thuat cap phat tai nguyen


Goi Requesti la request vector cua process Pi.
Requesti [j] = k Pi can k instance cua tai nguyen Rj.
1. Neu Requesti Needi th en bc 2. Neu khong,
bao loi
bao
loi v process a
a v
vtt yeu
yeu cau
cau toi
toi a
a.
2. Neu Requesti Available th qua bc 3. Neu khong,
Pi phai ch v tai nguyen khong con u e cap phat.

-8.48-

Giai thuat cap phat tai nguyen (tt)


3. Gia nh cap phat tai nguyen ap ng yeu cau cua
Pi bang cach cap nhat trang thai he thong nh sau:
Available
A
il bl := A
Available
il bl Request
R
ti
Allocationi := Allocationi + Requesti
Needi
:= Needi Requesti

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 Request
q
i
Needi
:= Needi + Requesti
-8.49-

V du

Co 5 process P0 ,, P4

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


instance).
instance)
S o cap phat trong he thong tai thi iem T0
Allocation

Max

Available

Need

A B C

A B C

P0

P1

P2

P3

P4

-8.50-

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

Need

Available

ABC

ABC

A B C

P0

010

743

3 3 2

P1

200

122

P2

302

600

P3

211

011

7 4 3

P4

002

431

7 4 5

5 3 2

10 4 7

10 5 7
-8.51-

GT. cap phat tai nguyen V du

Yeu cau (1, 0, 2) cua P1 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.
Allocation

Need

Available

P0

P1

P2

P3

P4

Trang thai mi la safe (chuo


(
i an toan la <P1, P3, P4, P0, P2>),
), vay
co the cap phat tai nguyen cho P1.
-8.52-

Phat hien deadlock

Chap nhan xay ra deadlock trong he thong, kiem tra


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

Neu co deadlock th tien hanh phuc hoi he thong

Cac giai thuat phat hien deadlock thng s dung


mo hnh RAG.
mo

He thong cap phat tai nguyen c khao sat trong


moii trng
t h
hp sau
1. Moi loai tai nguyen ch co mot thc the (instance)
2. Moi loai tai nguyen co the co nhieu thc the

-8.53-

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 nguye
g y n va g
ghep cac canh tng
g ng
g.
Co canh t Pi en Pj Pi ang ch tai nguyen t Pj
P5
P5
R1

R3

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
y khong se c g
goi nh
ky
y. Giai thuat p
phat hien chu trnh
hay
co thi gian chay la O(n 2), vi n la so nh cua graph.
-8.54-

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

-8.55-

Giai thuat phat hien deadlock


1. Goi Work va Finish la vector kch thc m va n. Khi tao:
Work := Available
i=1
1, 2,,
2 n,
n neu
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.

3. Work

:= Work + Allocationi
Finish[i] := true
quay ve bc 2.

thi gian chay


cua giai thuat

O(mn2)

4. Neu Finish[i] = false, vi mot i = 1,, n, th he thong ang


trang tha
h i d
deadlock.
dl k H
Hn the
h na, Finish[i]
Fi i h[i] = false
f l th
h Pi b
deadlocked.
-8.56-

V du

He thong co 5 qua trnh P0 ,, P4


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.
-8.57-

V du (tt)

P2 yeu cau them mot instance cua C. Ma tran Request nh sau:


Req est
Request

ABC
P0
P1
P2
P3
P4

000
202
001
100
002

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 .

-8.58-

Deadlock Recovery

Khi deadlock xay ra, e phuc hoi


bao ngi van hanh (operator)
h c
hoa
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

-8.59-

Deadlock Recovery: Cham dt qua trnh

Phuc hoi he thong b deadlock bang cach cham dt


qua trnh
Ch
Cham dt ta
t t ca process b deadlocked
d dl k d
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 y
yeu to nao e cham dt p
process?

o u tien cua process


Thi gian a thc thi cua process va thi gian con lai
Loaii tai
Loa
tai nguye
nguyen
n ma
ma process a
a s
s du
dung
ng
Tai nguyen ma process can them e hoan tat cong viec
So lng processes can c cham dt
Process la interactive process hay batch process
-8.60-

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
hu,
h thi
thi gian
i CPU
a tieu
ti ton,...)
t
)
s
Rollback: rollback process b lay lai tai nguyen tr ve trang
thai safe
thai
safe, ba
batt au
au process t
t tra
trang
ng tha
thaii o
o. He tho
thong
ng ca
can
n lu
gi mot so thong tin ve trang thai cac process ang thc thi.
Starvation: phai
phai ba
bao
o am
am khong
khong co
co process se
se luon
luon luon
luon b
lay lai tai nguyen moi khi deadlock xay ra.

-8.61-

You might also like