You are on page 1of 4

C 4 bng t v 3 tin trnh P1, P2, P3 yu cu cp pht nhiu nht theo th t l: 2, 4, 2.

Hin ti P1, P2, P3


c cp pht theo th t l: 1, 2, 0.
a)chng minh trng thi ny an ton
Ta c:
Available = 4 - 3 =1
Need = Max- Allocation
P[i] Allocation Max Need Available
P1 1 2 1 1
P2 2 4 2
P3 0 2 2
Xt ti thi im Ti
Work >= Need[i] P[i] Allocation[i]
1 1 P1 1
2 2 P2 2
4 2 P3 0
Vy tn ti chui an ton < p1, p2, p3 > .Suy ra trng thi h thng thi im Ti l an ton.
b) Xc nh c nn p ng hay khng yu cu xin thm 1 na ca p2.
Gi s p2 by gi nu yu cu mi l 1
Yu cu ny phi tha cc iu kin sau:
1. Request1 <= Need1 v 1 <= 1
2. Request1 <= Available v 1 <= 1
Nh vy cp nhng nu p ng, h s chuyn sang trng thi khng an ton do khng tn ti chui an ton.

thut ton Banker chng minh khng tn ti trng thi an ton thay v phi tnh ra ht tt c
cc trng hp th mnh c ny :
ta c i theo mt hng bt k, min n cn tn ti tin trnh k tip cho ti khi n khng cn
tin trnh no c th thm vo chui na.
Gi s ta c chui < P1,P0,P3> ri cn li 2 tin trnh P4 v P2 khng ti nguyn i
vo. Lc ny ta c th suy ra khng tn ti chui an ton.
V nu gi s tn ti mt chui an ton chng hn l
th ta bt u xt t tin trnh Pa xem Pa c th thm vo sau P3 trong chui trn hay khng,
v Pa l tin trnh u tin ca chui an ton nn n khng cn s trao tr ti nguyn ca tin
trnh no trc n. Nu Pa khng thm vo c th do Pa tn ti sau P3 ri c th l P1
hay P0, v nh vy nu Pa thm vo ri th ta c th thm Pb v Pb cn Pa thc hin xong
th n mi c th thc hin. C nh vy th suy ra sau P3 lun tn ti mt tin trnh c th
thm vo --> Nu tn ti mt chui an ton th ta lun tm ra chui an ton khc cho d c i
t tin trnh no trc v chn la nh th no. Ngc li th --- > khng tn ti chui an
ton.
1. Mt h thng c 5 tin trnh vi tnh trng ti nguyn nh sau:

2. Process Allocation
3.

Max

Available
C

4. P0 0

5. P1 1

6. P2 1

7. P3 0

8. P4 0

B
0

9. Dung thuat giai Nha bang e:


10. a. Chng minh trng thi ny an ton.

(1 im)

11. b. Xc nh c nn p ng yu cu (0, 4, 3, 0) ca P1 ?

(1 im)

12. Gii:
13. a. Xt ti thi im T0 m 5 tin trnh c cp pht nh bi ta c:

14.

Need[i] = Max[i] Allocation[i]

15. Process Need


16.

17. P0 0

18. P1 0

19. P2 1

20. P3 0

21. P4 0

22.
23.

Tm chui an ton:

24.

Work >=

Need[i]

P[i] Allocation[i]

25. A B C D

A B C D

26. 1

0 0 0 0

P0 0 0 1 2

27. 1

1 0 0 2

P2 1 3 5 4

28. 2

0 0 2 0

P3 0 6 3 2

29. 2

14 11 8

0 4 4 2

P4

30. 2

15 12 12

0 7 5 0

P1 1 0 0 0

A B C D

0 1 1 4

31. Vy ti thi im T0 tn ti chui an ton {P0, P2, P3, P4, P1}. Suy ra, h thng ti thi i
m T0 trng thi an ton.
32.

33. Available v ti nguyn C trong h thng ch cn 2 m yu cu 3. Do vy, khng th cp ph


t thm (0, 4, 3, 0) cho P1 c. Need1, nhng khng tho iu kin: Request1 b. Ta t
hy, yu cu thm (0, 4, 3, 0) ca P1 tho iu kin Request1
Xem gip mnh 2 bi tp v gii thut tm chui an ton v gii thut cp pht ti nguyn..
Bi 1: Cho 5 tin trnh v cc thng s sau: (y l bi thy mnh cha).
Process Allocation Max Available
ABC ABC ABC
P0 010 753 332
P1 200 322
P2 302 902
P3 211 222
P4 002 433
1. Hy ch ra trng thi an ton.
Gii:
xt an ton ca h ta tnh ma trn Need theo cng thc:

Need = Max Allocation


Prrocess Need
ABC
P0 743
P1 122
P2 600
P3 011
P4 431
Theo thut ton kim tra tnh an ton ca h ta c:
Work := Available = (3,3,2)
Finish[i]=False vi i= 0,1,2,3,4.
Xt :
Need[0] >= Work => finish[0]=false
Need[2] >= Work => finish[0]=false
Need[4] >= Work => finish[0]=false
{C phi v :
Need[0]=(7,4,3) > Work=(3,3,2)
Need[2]=(6,0,0) > Work=(3,3,2)
Need[4]=(4,3,1) > Work=(3,3,2)}
Need[1] < = Work => Finish[1] = True v Work=Work + Allocation[1] = (3,3,2) + (2,0,0) =
(5,3,2).
Need[3] < = Work => Finish[3] = True v Work=Work + Allocation[3] = (5,3,2) + (2,1,1) =
(7,4,3).
Need[0] < = Work => Finish[0] = True v Work=Work + Allocation[0] = (7,4,3) + (0,1,0) =
(7,5,3).
Need[2] < = Work => Finish[2] = True v Work=Work + Allocation[2] = (7,5,3) + (3,0,2) =
(10,5,5).
Need[4] < = Work => Finish[4] = True v Work=Work + Allocation[4] = (10,5,5) + (0,0,2) =
(10,5,7).
{C phi v :
Need[1],Need[3] < Work Ta xt ln lt t trn xung.
Need[1]=(1,2,2) < Work = (3,3,2)
Need[3]=(0,1,1) < Work = (3,3,2)
Sau quay li xt cc Need[0],Need[2],Need[4] ln lt t trn xung di.
Need[0]=(7,4,3) < Work = (3,3,2)
Need[2]=(6,0,0) < Work = (3,3,2)
Need[4]=(4,3,1) < Work = (3,3,2)}
Nh vy finish[i] = true vi I = 1,3,0,2,4 dn n dy tin trnh P1, P3, P0, P2, P4 l dy an ton
=> h thng trng thi an ton.

Bi 2 : Cho 5 tin trnh v cc thng s sau: ( Bi ny em t lm)


Process Allocation Max Available
ABC ABC ABC
P0 252 753 253
P1 221 323
P2 511 932
P3 121 223
P4 412 522
Hy ch ra trng thi an ton.
Gii:
xt an ton ca h ta tnh ma trn Need theo cng thc:
Need = Max Allocation
Prrocess Need
ABC
P0 501
P1 102
P2 421
P3 102

P4 110
Theo thut ton kim tra tnh an ton ca h ta c:
Work := Available = (2,5,3)
Finish[i]=False vi i= 0,1,2,3,4.
Xt :
Need[0] >= Work => finish[0]=false
Need[2] >= Work => finish[0]=false
{C phi v :
Need[0]=(5,0,1) > Work=(2,5,3)
Need[2]=(4,2,1) > Work=(2,5,3)}
Need[1] < = Work => Finish[1] = True v Work=Work + Allocation[1] = (2,5,3) + (2,2,1) =
(4,7,4).
Need[3] < = Work => Finish[3] = True v Work=Work + Allocation[3] = (4,7,4) + (1,2,1) =
(5,9,5).
Need[4] < = Work => Finish[4] = True v Work=Work + Allocation[4] = (5,9,5) + (4,1,2) =
(9,10,7).
Need[0] < = Work => Finish[0] = True v Work=Work + Allocation[0] = (9,10,7) + (2,5,2) =
(11,15,9).
Need[2] < = Work => Finish[2] = True v Work=Work + Allocation[2] = (11,15,9) + (5,1,1) =
(16,16,10).
{C phi v :
Need[1],Need[3],Need[4] < Work Ta xt ln lt t trn xung.
Need[1]=(1,0,2) < Work = (2,5,3)
Need[3]=(1,0,2) < Work = (2,5,3)
Need[4]=(1,1,0)< Work = (2,5,3)
Sau quay li xt cc Need[0],Need[2] ln lt t trn xung di.
Need[0]=(5,0,1) < Work = (2,5,3)
Need[2]=(4,2,1) < Work = (2,5,3)}
Nh vy finish[i] = true vi I = 1,3,4,0,2 dn n dy tin trnh P1, P3, P4, P0, P2 l dy an ton
=> h thng trng thi an ton.
Bi tp ny mnh ly bi trn mng v h cho p n trng thi an ton l : P1, P2, P0, P3, P4
vy em lm sai u ????
Cch gii bi tp ca mnh nh vy v thut ton v cch hiu nh vy c sai ko ????
Mnh mong cc bc xem gip em vi .

You might also like