KTMT C56 T3

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

Chng 5: cc gii php ng b.

Bi 1. Xt gii php ng b sau:


while (TRUE) {
int j = 1-i;
flag[i]= TRUE; turn = j;
while (turn == j && flag[j]==TRUE);
critical-section ();
flag[j] = FALSE;
Noncritical-section ();
}
Gii: C tha mn 3 iu kin.
y l 1 gii php m bo vic c quyn truy xut v khi c
hai tin trnh Pi v Pj cng hng n vic vo min gng
(flag[i]=TRUE v flag[j]=TRUE) th ch c 1 process c vo
min gng ty theo gi tr tr v ca turn. Nu process pj ang
x l Noncritical-section th trc flag[j] c gn cho gi
tr FALSE do vy n khng ngn cn Pi quay li critical-section.

Bi 2: S dng semaphore vit li chng trnh sau theo m


hnh x l ng hnh:
(1)A = x1 + x2; // 1 starts before 2 and 3
(2)B = A*x3; // 2 starts before after 1 and before 4
(3)C= A + x4;// 3 starts after 1 and before 4 , 5
(4)D= B + C; // 4 starts after 2 ,3 and before 5
(5)E = D*x5 + C; 5 starts alter 3,4
Gii:

ng vi mi s c xem nh mt process hoc thread.

Ta s to ra cc semaphore gm: s12, s13, s24, s24,s34, s35,


s45. Initial value ca tt c cc semaphore u l 0. Gii thch
vic t tn nh sau: process no thc thi trc s c s i din
ng trc, process thc thi sau s c s i din ng sau, v
d process 1 thc thi trc process 2 v process 3 nn s c s12,
s13.
//Process 1:
A = x1 + x2;
signal (s12);
signal (s13);
//Process 2:
Wait(s12);
B = A*x3;
signal (s24);
//Process 3:
Wait(s13);
C= A + x4;
signal (s34);
signal(s35);
//Process 4:
Wait(s24);
Wait(s34);
D= B + C;
signal(s45);

//Process 5:
Wait (s35);
Wait (s45);
E = D*x5 + C
Chng 6: Deadlock
Bi 1: Lit k 3 trng hp xy ra deadlock trong cuc sng?
VD1:
- Mt nhn vin trc tng i vi mt chic in thoi duy nht. Nu trong mt thi
im,c ti 6 cuc gi ti cng mt lc,th iu tt nghn l iu xy ra.
--> Gii php: p dng mt trong nhng iu kin cn ca Deadlock:Loi tr tng
h,chng ta s chia nhiu ng line in thoi.
VD2:
Khi samsung tung ra sn phm in thoi Galaxy S3 vo khong thng 6/2012 th
mt s lng ln cc tn Galaxy tm n cc trung tm samsung ch mua
cho c sn phm m c ny,lm cho cc ca hng cht kn c ng. Ti thi im
sp ra mt S3 do mt s ngi mun mua trc nn chen ln gy mt n nh lm
cho ca hng ngng bn sn phm ra-> khng ai mua c.
Gii php: p dng mt trong nhng iu kin cn ca Deadlock l tng ngi
mt xp hng mua xong s n lt ngi khc.
VD 3: Hin tng deadlock trn mt cy cu

Hai(hoc nhiu hn) t i u nhau trn mt cy cu hp ch rng cho mt chic.


Gii php: Nu deadlock xut hin, n c th c gii quyt nu mt hay mt s t li li
nhng ng ri tin ra sau.
Bi 2:
Nhn vo th th ta thy cc process hot ng nh sau:
P3 (gi 1 thc th t ti nguyn R3) sau khi nhn 1 thc th t ti nguyn R4 s thc thi u
tin sau nhng li thc th t ti nguyn R3 cho P2 thc thi (gi 1 thc th t ti nguyn
R1) sau P2 s nhng li thc th t ti nguyn R1 cho P1 thc thi.
Mt khc: ta thy y l mt th c cha chu trnh. Nu mi loi ti nguyn c 1 thc th th
s xy ra deadlock. V theo th ca bi ti nguyn R2 c 2 thc th v ti nguyn R4 c 4
thc th. Nn khng xy ra deadlock.
Bi 3:

a) Tm bng Need = Max - Allocation

Allocation

Max

Available

Need

P0

P1

P2

P3

P4

b)
Allocation

Need

Work

P0

P1

P2

P3

P4

14

11 8

14

12 12

14 12 12

V y tn ti 1 chui an ton: < P0P2P3P4 P1>


So snh avalable vi cc need
H thng an ton
c)
Allocation

Need

Work

P0

P1

P2

P3

P4

10

10

10

12

14 12

12

V y chui tn ti chui an ton l: P0P2P3P4 P1


c th cp pht cho P1 ngay
Quy tc-so snh p1 vi avalable
:- p1 mi cp nht = p1+ p1 (yu cu)
-avalable cp nht=avalable-p1(yu cu)
-so snh avalable cp nht vi need ca tng p cp nht

You might also like