1
1
Nguyên hệđiuhành
NguynHi Châu
Khoa Công nghthông tin
Trường Đạihc Công ngh
2
Bếtc (Deadlock)
3
Định nghĩa
zBếtclàtìnhhung xuthinkhihaihay
nhiu “hành động” phichmthoc nhiu
hành động khác để kết thúc, nhưng không
bao githchinđược
zMáy tính: Bếtclàtìnhhung xuthinkhi
hai tiếntrìnhphichờđinhaugii phóng tài
nguyên hocnhiutiếntrìnhchsdng
các tài nguyên theo mt “vòng tròn” (circular
chain)
4
Hai con dê qua cu: Bếtc
5
Bếtc giao thông ti ngã tư
6
Bếtctrongmáytính
zTiếntrìnhA:
{
Khóa file F1;
...
Mfile F2;
Đóng F1(mkhóa F1);
}
zTiếntrìnhB
{
Khóa file F2;
...
Mfile F1;
Đóng F1(mkhóa F1);
}
2
7
Qui trình sdng tài nguyên
zMttiếntrìnhthường sdng tài nguyên
theo các bướctuntsau:
zXin phép sdng (request)
zSdng tài nguyên (use)
zGii phóng tài nguyên sau khi sdng (release)
8
Điukincnđể bếtc
zBếtc xut hin nếu 4 điu kin sau xut
hin đồng thi (điu kin cn):
zC1: Loitrln nhau (mutual exclusion)
zC2: Gi ch(hold and wait)
zC3: Không đặcquyn (preemption)
zC4: Chvòng (circular wait)
9
C1: Loi trln nhau
zMt tài nguyên bchiếm bi mt tiến trình, và
không tiến trình nào khác có thsdng tài
nguyên này
10
C2: Gi ch
zMt tiến trình giít nht mt tài nguyên và
chmt stài nguyên khác ri để sdng.
Các tài nguyên này đang bmt tiến trình
khác chiếm gi
11
C3: Không có đặc quyn
zTài nguyên bchiếm gich thri khi tiến
trình “tnguyn” gii phóng tài nguyên sau
khi đã sdng xong.
12
C3: Chvòng
zMt tp tiến trình {P0, P1, ..., Pn} có xut hin
điu kin “chvòng” nếu P0chmt tài
nguyên do P1chiếm gi, P1chmt tài
nguyên khác do P2chiếm gi, ..., Pn-1chtài
nguyên do Pnchiếm gi Pnchtài nguyên
do P0chiếm gi
3
13
Đồ thcp phát tài nguyên
zThutng: Resource allocation graph
zĐể mô tmt cách chính xác bếtc, chúng
ta sdng đồ thcó hướng gi là đồ thcp
phát tài nguyên” G=(V, E) vi V tp đỉnh, E
tp cung
zE được chia thành hai tp con P={P0, P1, ...,
Pn} là tp các tiến trình trong hthng và R=
{R0, R1, ..., Rm} là tp các loi tài nguyên
trong hthng tha mãn PR=E PR=
14
Đồ thcp phát tài nguyên
zCung có hướng ttiến trình Piđến tài
nguyên Rj, ký hiu là Pi
Rj ý nghĩa: Tiến
trình Piyêu cu mt thhinca Ri. Ta gi
Pi
Rj cung yêu cu(request edge)
zCung có hướng ttài nguyên Rj đến tiến
trình Piký hiu là Rj
Pi ý nghĩa: Mt th
hin ca tài nguyên Rj đã được cp phát cho
tiến trình Pi. Ta gi Rj
Pi cung cp phát
(asignment edge)
15
Đồ thcp phát tài nguyên
zKý hiu hình v:
zPi hình tròn
zRj các hình chnht vi mi chm bên trong là
s lượng các thhin ca tài nguyên
zMinh ha đồ thcp phát tài nguyên:
P1P2P3
R1R2
R3R416
Đồ thcp phát tài nguyên
zNếu không có chu trình trong đồ thcp phát
tài nguyên: Không có bếtc. Nếu có chu
trình: thxy ra bếtc.
zNếu trong mt chu trình trong đồ thcp phát
tài nguyên, mi loi tài nguyên chđúng
mt thhin: Bếtc đã xy ra (Điu kin cn
đủ)
zNếu trong mt chu trình trong đồ thcp phát
tài nguyên mt stài nguyên có nhiu hơn
mt thhin: Có thxy ra bếtc (Điu kin
cn nhưng không đủ)
17
dchu trình dn đến bếtc
zGisP3yêu cu mt thhin ca R3
zKhi đócó2 chu trình xut hin:
zP1R1P2R2P3R3P1, và
zP2R2P3R3P2
zKhi đócác tiến trình P1, P2, P3bbếtc
P1P2P3
R1R2
R3R4
18
dchu trình không dn đến
bếtc
zChu trình: P1R1P3R2P1
zBếtc không xy ra P4 thgii phóng
mt thhin tài nguyên R2 P3s được
cp phát mt thhin ca R2
R1
R2
P1
P2
P3
P4
4
19
Các phương pháp
xlý bếtc
20
Các phương pháp xlý bếtc
zMt cách tng quát, có 3 phương pháp:
zSdng mt giao thc để hthng không bao
gi rơi vào trng thái bếtc: Deadlock prevention
(ngăn chn bếtc) hoc Deadlock avoidance
(tránh bếtc)
z thcho phép hthng bbếtc, phát hin bế
tc và khc phc nó
zBqua bếtc, xem như bếtc không bao gi
xut hin trong hthng (Gii pháp này dùng
trong nhiu hthng, ví dUnix, Windows!!)
21
Ngăn chn bếtc
(Deadlock prevention)
22
Gii thiu
zNgăn chn bếtc (deadlock prevention) là
phương pháp xlý bếtc, không cho nó xy
ra bng cách làm cho ít nht mt điu kin
cn ca bếtc là C1, C2, C3 hoc C4 không
được tha mãn (không xy ra)
zNgăn chn bếtc theo phương pháp này có
tính cht tĩnh (statically)
23
Ngăn chn “loi trln nhau”
zC1 (Loi trln nhau): là điu kin bt buc
cho các tài nguyên không sdng chung
được Khó làm cho C1 không xy ra c
hthng luôn có các tài nguyên không ths
dng chung được
24
Ngăn chn “gi ch
zC2 (Gi ch): Có thlàm cho C2 không
xy ra bng cách đảm bo:
zMt tiến trình luôn yêu cu cphát tài nguyên ch
khi nó không chiếm gibt kmt tài nguyên
nào, hoc
zMt tiến trình chthc hin khi nó được cp phát
toàn bcác tài nguyên cn thiết
5
25
Ngăn chn “không có đặc quyn”
zĐể ngăn chn không cho điu kin này xy
ra, có thsdng giao thc sau:
zNếu tiến trình P (đang chiếm tài nguyên R1, ...,
Rn-1) yêu cu cp phát tài nguyên Rn nhưng
không được cp phát ngay ( nghĩa là Pphi
ch) thì tt ccác tài nguyên R1, ..., Rn-1 phi
được “thu hi”
zNói cách khác, R1, ..., Rn-1 phi được “gii phóng”
mt cách áp đặt, tc là các tài nguyên này phi
được đưa vào danh sách các tài nguyên mà P
đang chcp phát. 26
Ngăn chn “không có đặc
quyn”: mã lnh
Tiến trình Pyêu cu cp phát tài nguyên R1, ..., Rn-1
if (R1, ..., Rn-1ri)
then cp phát tài nguyên cho P
else if ({Ri...Rj} được cp phát cho Q Q đang
trong trng thái chmt si nguyên Skhác)
then thu hi {Ri...Rj} và cp phát cho P
else đưa P vào trng thái chtài nguyên R1, ..., Rn-1
27
Ngăn chn “chvòng”
zMt gii pháp ngăn chn chvòng là đánh
sthtcác tài nguyên và bt buc các tiến
trình yêu cu cp phát tài nguyên theo sth
t tăng dn
zGis các tài nguyên {R1, ..., Rn}. Ta gán
cho mi tài nguyên mt s nguyên dương
duy nht qua mt ánh x1-1
f : RN, vi N tp các stnhiên
d: f(cng) = 1, f(băng t) = 5, f(máy in) = 11
28
Ngăn chn “chvòng”
zGiao thc ngăn chn chvòng:
zKhi tiến trình P không chiếm gitài nguyên nào,
thyêu cu cp phát nhiu thhin ca
mttài nguyên Ribt k
zSau đóPch thyêu cu các thhin ca tài
nguyên Rjnếu và chnếu f(Rj) > f(Ri). Mt cách
khác, nếu P mun yêu cu cp phát tài nguyên
Rj, nó đã gii phóng tt ccác tài nguyên Ritha
mãn f(Ri)f(Rj)
zNếu Pcn được cp phát nhiu loi tài nguyên, P
phi ln lượt yêu cu các thhin ca tng tài
nguyên đó
29
Chng minh gii pháp ngăn
chn chvòng
zSdng chng minh phn chng
zGisgii pháp ngăn chn gây ra chvòng
{P0, P1, ..., Pn} trong đóPichtài nguyên Ri
bchiếm gibi P(i+1) mod n
z Pi+1 đang chiếm giRi yêu cu Ri+1, do
đóf(Ri)<f(R(i+1) mod n) i, có nghĩa là ta có:
zf(R0)<f(R1)<f(R2)<..<f(Rn)<f(R0)
zMâu thun! Gii pháp được chng minh
30
Ưu nhược đim ca ngăn chn
gii pháp bếtc
zƯu đim: ngăn chn bếtc (deadlock
prevention) là phương pháp tránh được bế
tc bng cách làm cho điu kin cn không
được tha mãn
zNhược đim:
zGim kh năng tn dng tài nguyên và gim
thông lượng ca hthng
zKhông mm do