ch8.pdf

)*& %&
' (
)*& %& & +!, &
-.+
)*& %& /
$ 0
)*& %& /
1
)*& %& #
)*& %& /
)*& %& & +!, & &
-.+
!"
#
$
(
/ 5
6 * )*& %& )7 8 +
/ 0 / '2!34 5
$ 9 : .
&' + , + + ;
/ 0
.) '2!34 % 3 + $
/ 0+ , + '
&
1 ' 7. + > & B . A +! 3 . :' !3
P0
P1
wait (A);
wait(B)
wait (B);
wait(A)
.
+A6 @
.
+%
5 +! 2 / 1 ' )
(
. *
... F% ! / @ !,
+ &
R1, R2, . . ., Rm
+ & F': 8
& / J 32
/
0 :' !3
8 + @E %
)
.!
!*C 9 5 0 / )3*D
5 @
6/ & & @ !
F G+ )*& %& 6
. !
6 &% % H &/ ) % 3
. + !1. ICD J 3 8
'& 0 B 2
)
# ( K! /
L F / 0
* 9&
/
)*& %& '7 *
';ID
. + W i F Ri 9
/
7 ! ) 2+ & 9
/ / 0
:
) !,+
N
/ +
)*& %& & +!, &
-.+
)*& %& /
$ 0
)*& %& /
1
)*& %& #
)*& %& /
)*& %& & +!, & &
-.+
1
(
7
/O
+ H@ 3
+ D & )*& %& @
G+ &
:)
+ :(Mutual Exclusion) ' 1. ); 3
.
N 9 5 / !
+ 9 5 D 8'
/ 0 :(Hold and Wait) @ 3& : . + $
$
/ 0+ , + '
$ 9&
) : F+ + ,
. $& )
/ 0 + @ 0 / Q0
;
:(No Preemption)
0P 2
@ 3 R ! ' S. T+!U '& . ) ' 6 + , + + @E '
.)
/ + &D / 0
/ 05
@ /
)
!1. {P0, P1, …, Pn}
'2!34 :(Circular Wait) !> 8 + :
' !6 '& +
P1 F + + D P1 + , + ' )
; : P0 '
)
; : Pn . F ... F + + D P2 + , + ' )
; :
. + + D P0 + , + '
7 )*& %& K!D.
. *
'4 + «@ 3& : . +
&O
>*
$» O
(
) !,+
$
P1
JV
.
&
:' !3 + H & 9 K!
^ > + Rj / ' !3 5
Pi
: + + , + + Rj / ' !3 5
Pi
:
+ ) 1J
Pi
Rj :9
Rj
F« !> 8 + : » O
:/ 0
*
/ 0 '3 '2!34 P = {P1, P2, …, Pn}
* 9& K ! '3 '2!34 R = {R1, R2, …, Rm}
,
@ 3 K!D. 'H 6
R
%
F)
)
'2!34 . V Z![+ '2!34 T+!U '& 9& \ ( Y 6
.!
# ; E+ ) 1
J
9& K! . / 0 :Z + K! .
9 ]
+ H
/
) !,+
Pi : 9 ]
,
Rj
Pi
Rj
! "#$" %
(
&'( )
2
(
) *
+
&'( )
... +
'> 8 9&
\ ( Y 6 6
.+
... + '> 8 9&
)*& %& 5 F + ' !3 5 R> '> 8 +
) % 3 F + ' !3 % H '> 8 +
#,
)*& %& '7 *
)*& %&
' (
#,
)*& %& /
$ 0
)*& %& /
1
)*& %& #
)*& %& /
)*& %& & +!, & &
-.+
(
#,
)
)*& %&
\(
/ 1 * '& ) + % +
. ! 9 + )*& %& !
- Q"
+ )*& %& K!D. ' )
P
'& /
. Y S &+
)*& %& / @
1 '& % & & F
6_ !
6+ 9 K! / 6
.)
G+
6+ 9 K! / 6
. &
G+ )*& %&
-
+!, & )*& %& '7 * & @ !
' !6 ' '&
)7 8 +
%& /
1 . F)*& %&
F)*& %& K!D. P 2 % 3L
.)*&
...
3 G+ * + )*& %& 6 _ ' % 3L
&
/ 0 '& 9& \ ( / D '
.
& /+ + )*& %& K!D. @
1' % + .
)*& %& /
&'
!1.
P 2 % 3L O.
1 . )*& %& /
&
)CU
$ 0
. 6
-
. ! )*& %& )7 8 + . !
@E Q" .
:
)*& %& *
\ ( Y 6 6
G+ T+ '& )*& %&
B
6 '& D @ 6
.
UNIX +
: Y U
* / + *& +
8 +/ N
3 G+ )*& %&
N +! 8 +
)*& %& '7 *
)*& %&
' (
)*& %& & +!, &
-.+
!
. /
)*& %& /
1
)*& %& #
)*& %& /
)*& %& & +!, & &
-.+
3
!
`> + ' 6+ H O.
/
. /
& F)*& %& /
(
$ 0
)
@ 3& : . +
+9 5
' 1. ); 3 .1
(
!, R> . 0 5
) & + A6 a
'& & D 9 6
.
: Y U ' 1. ); 3 O / @E +! + @ !
9& / + *& ) @!H F)* `> & D O %
)7 8 +
.
7 + O % !1. ( $0 H
)
)
!
. /
&
.
(
!
^>
+!U +
&
/ 0 O % `>
. &'
+ , +
$ 9 _ '
!, / +! 9& '3
& . + 9 ) !,+
& +. /
'3
&
) !,+ 4 T+!U '& !, 1
&+
.
19
^ > Q" .
/E + + , + 9&
. + !1.
ICD J 3 8 . ) % 0 -.+ % + 9&
+.
. /
(
0 P 2 .3
T+!U +
/1
2 * '& @ !
O % `>
&
.
/E + / 0 + , + 9& !, .
0 P. 7
A0 @ 9 ] , .
9
^>
/ 0 ' +!U +
/E + ^ > / 0 + , + 9& P 3 !
2 * F!
.
. !
. / 0 ^ > +! 9& )* 7 '&
/E 9&
. / +! 9
!& / 0 ' !
' 6 / D. / 0 1
. $& + , + + D
/E 9& P 3
)
!
$ .2
&
&
0
+
&
. /
!> 8 + : .4
+ !1! 9& '3 .+
g 5 @!
O % `>
&
+ !, / +! 9& ) !, / 0 / Q" .
J 32 *
. ) !,+
g 5 + R>
! 0 12
)*& %& '7 *
)*& %&
' (
)*& %& & +!, &
-.+
)*& %& /
$ 0
! 0 12
)*& %& #
)*& %& /
)*& %& & +!, & &
-.+
h 5 /
N &
* ) +% +
. ! )*& %& K!D. / 9
/ 0 + + + &+
D
K!D. / h 0 R
`> & «)*& %& /
$ 0» ) +
. P. T+ : & «)*& %& /
1 » ) + . )*& %&
. +
3 )*& %& K!D. @ P 2 @
+ &
K. / D / 0
!1! -.+ %
N .%
+
@ 2 + K! / / +! 9&
; V 8 . K! & 1
.
4
(
(
9& \ ( )7 8 !0 T+!U '& )*& %& /
iN
!> 8 + :
6_
1
% 3L
(
/ 0/ % g
+!U + ) % )7 8 + *
. &'
!1.
& ' +!U + ) % g 5 <P1, P2, …, Pn> g
9& / '2!34 /
^> !
Pi '
;& FPi
.( j < i) & Pj + , + 9& . !1!
+!$7
+ & +
.
3
\ ( . !1! 9& / 9& \ ( )7 8
9 K!
& / 0 ^ > V 8 % j3
.)
F
+ !1! 9 5 ] , ^ >
/ 0 D.
/ 0 '& 9
+! ] , E '
$& 3
& *
k , +
$ % )7 8 + + *
.
Pj P
5 '
Pi F *
'3 Pi /
.
U + + , + +/
. ! 1 F $& + , + + E !
Pi F
.
/E + + ,
'
1 T+!U % 3 '& . ! 1 !
Pi+1 F)
3 @ 0
!
+
... ) % )7 8 5 +
.+
... ) %
.
%
! 0 12
&
31 #.
*
6
*
6
G+ )*& %& ) % 3
% 3L )*& %& /
)7 8 5 + . 6 _
1
*
.!
: +!$7
(claim
)*& %& *
)7 8 5 +
+! 9& 6
+! 9& '
E 9&
D.
+ 9& Q"
@ 0 Pi D.
. &
9
1
^ > + Rj 9 Pi / 0 ) % 3 D.
.
'S!& Z![+ % & % H R, T+!U '& edge)
^ > J '& ' !, J F
) !,+ + 9 / 0 D.
.!
' !, J '& \ ( J F
/E + 9 / 0 D.
.!
. ! ' !, * / D / & / +! 9&
' !, J 5 F
"
(
5
*4" 31 #.
&'
' !3 % H 9 K!
.
3
!1 )7 8 %
P 2 + !, /
/ '
78/
.
+!$7 %
.
% .
(
.
) !,+ + Rj 9 / ' !3
Finish [i] = False;
Needi
:' %
' !6 '& + i Q
0
Work = Work + Allocationi;
P 3 + -+
.) % )7 8 5 +
*
Pi
.2
:T0 + 9&
P0
P1
P2
P3
P4
Rj
+ /
.
/
+! 9&
Available
ABC
010
200
302
211
002
753
322
902
222
433
332
Rj
9 / ' !3
;
available [j] = k
k
) % 3 V 8 Pi / 0
max [i][j] = k
;
k F Pi
/ 0
;
allocation [i][j] = k
9 / $ ' !3 k '& Pi / 0
:
;
need [i][j] = k
Pi
# ;
6 #,
31 #.
/ 0 / + & @ ! 2 '& + Requesti + &
. + / Rj 9 / ' !3 k '& Pi / 0 ; Requesti [j] == k
. I, P 2 ' 6. F. & 2 P 6 '& Requesti Needi 6 .1
3& :
& Pi ' 6. F. & 3 P 6 '& Requesti Available 6 .2
. ! /E
\ ( )7 8 .
] , + Pi / +! 9& % B .3
:% /.+ '& /
Allocationi = Allocationi + Requesti;
Needi = Needi – Requesti;
.
.%
& /& + *
(
' ] , Pi '& 9&
D )7 8 F 3& :
& Pi
:
P0
P1
P2
P3
Need
ABC
743
122
600
011
P4
431
< P1, P3, P4, P2, P0>
!& %
!& %
* )7 8 6
* )7 8 6
*4" 31 #. ! 7 ;
)
P0
Max
ABC
B
Available = Available – Requesti
*4" 31 #. ! 7 ;
Allocation
ABC
k
5! /
T+!U '& + 9&
.. & 2 P 6 '&
$ E i: Finish [i] == True 6 .4
/ 0l0
.(' !3
\ ( )7 8
m
.
.3
7) C . (' !3 5) B F(' !3 10) A 9 ' . P4
;
Need [i,j] = Max[i,j] – Allocation [i,j]
0i% H 6
Finish [i] = True;
/ 0
. + + , + + Rj 9 / ' !3
Work;
.. & 4 P 6 '&
.
int need [n][m];
& n . m J!S '& + & . Finish . Work % B .1
:% ' 7.
+ > T+!U % '& + + &
Finish = {False};
n
int allocation [n][m];
– 7 $ 31 #.
Work = Available;
;
int max [n][m];
; V 8h0/
31 6 8
K!
. * !1!
+!$7
& / 0
.
! +! 4 ) % 3 F
+ ;
^>
/ 0 D.
. 3& :
+ + '3
&F 6
+ / +! 9& P 3
/ 0 D.
.
6/ & . C @ /
9 6
& 9&
1, 6
int available [m];
0
& 9& \ ( Y 6
+! 9&
*4" 31 #. 5
' C + Need Q
g @!H ) % )7 8 5 +
.) % g 5 .
% +)
>
*
O
6
< =
)*& %& '7 *
)*& %&
' (
)*& %& & +!, &
-.+
)*& %& /
$ 0
)*& %& /
1
< =
)*& %& /
)*& %& & +!, & &
-.+
Q" . ! )*& %& )7 8 + . !
/1
.!
.
# )*& %& !
k )*& %& #
k )*& %&
Y 6 / @!
F
& !1!
.
* '&
P
P
9 K! / ' 7 8 +
N (wait-for graph) + :
. 65 / 0
.) Pj : Pi ; Pi Pj
.!
!C *1 '> 8 %
&+: Y 6
+. T+!U '&
.( / 0 ; n) ) O(n2) +!$7 %
/ 6 j0
#2
(
>1"
:
< = 31 #.
! "#$" * ?
: +!$7
/ 0
n
;
+ ,
. 9& K!
;
m
int available [m];
int allocation [n][m];
int Request [n][m];
: +!$7
+ + &% .
9&
#2
\ ( Y 6
(
Work = Available;
if (Allocationi 0) Finishi = False;
else Finishi = True;
+: Y 6
(
)
:
< = 31 #.
! "#$" * ?
< = 31 #.
+!$7 '
:' %
Finish [i] = False;
Requesti
0
' !6 '& + i Q
.2
0i% H 6
Finish [i] = True;
.3
.. & 2 P 6 '&
* $ E i: Finish [i] == False 6 .4
. + + D )*& %& +
Pi .
) )*& %& )7 8 +
.) O(m x n2)
+!$7 %
/ 6 j0
=!
"#$"
6) C . (' !3 2) B F(' !3 7) A 9 ' . P4 P0 / 0 l 0
:T0 + 9& \ ( )7 8 .(' !3
Work;
.. & 4 P 6 '&
Work = Work + Allocationi;
& n . m J!S '& + & . Finish . Work % B .1
:% ' 7.
+ > T+!U % '&
P0
P1
P2
P3
P4
Allocation
ABC
010
200
303
211
002
: +
Request
ABC
000
202
000
100
002
<P0, P2, P3, P1, P4>
Available
ABC
000
g
% 6 : + &
i: Finish [i] == True
7
< = 31 #.
=!
"#$"
(
.
) !,+
C
< = ! 5 @16
)
/ $ ' !3 5
P2
$ *& / + ! '&
Request
ABC
000
201
001
100
P0
P1
P2
P3
k
.!
002
P4
: * )7 8
. & P0 / +! 9&
. + + D )*& %& +
P4
3 D & !$( 0 !
*
P1
/ 0 . + !1. )*& %&
+!$7
!,
$ !$H .
/ U!
:+
G+ )*& %& * + + T
H q!3;
k !
g>2 & / 0 ; 'H
g>2
&
/ 0/
D 8 )*& %& '> 8
+
q&
+ ; % 6 : + @. & . !(7 @ / +
+!$7 6
9& Y 6 + '> 8
/ ; & ) % 3 F!
!,
\(
! . ! '1 ! )*& %& +
+ 6 / 0.
.)
)*& %& 4 / 4 r2 & / 0 P
! 3
)*& %& '7 *
)*& %&
' (
)*& %& & +!, &
-.+
)*& %& /
$ 0
)*& %& /
1
)*& %& #
! 3
)*& %& & +!, & &
-.+
(
...) 6 : +
/
+!
+ ; @!
3
E '&
&
& D / 0
Y
/
& / 0 / +! 9& .
)*& %& '3 9 + & '
. / 0 @ !&
!
.) 6 : + + ; 5
(
&
/ 0 ) !7.
/ 0@ /
0+
3
&
Y
9&
/ 0 ;
.!
'
;
& D ' 3 / 0 5 : ICD I,
+ / 0
/
+. / 0
; '&
@ 0 & + )*& %& @ !
.
E+ , +
6+
6+
+ / 0 '&
@ 0
, 0'
/ 0 '3 '&
/ 0/
'&
@ 0
@ 0
&
& D / 0 ( +
.
3
$ >2 % )7 8 5 '& * F & D / 0 '&
@ 0 / Q0
.
K.
4 )7 8 @E / + & D / 0 1 .
! 3
)
/ 0 @ / / !1! % 3( . F
+
@ 0
9&
$ >2
; @!
)*& %& '7 *
)*& %&
' (
)*& %& & +!, &
-.+
)*& %& /
$ 0
)*& %& /
1
)*& %& #
)*& %& /
#,
7: =
-
8
#,
g
N
%
)
7: =
& + )*& %& #
g
9 @E
& Q" .
/ 9&
-
1 F $ 0 @!
.+ / 9
&.
.
& Z + 9& @ !
+ %
&
Z / 5
+ )*& %& & +!, &
.
N !1! -.+
$
.
&'
.
s 0
@ 0 Tq ! % '&
15 F13 F12 F9 F7 F5 F4 F3 F2
.
J +
+
'& 1@
+
V 8 + !,
s 0
, P
3 /
3
3 @
3 @
)
)
/ =
/=
s 0 J + + /.+ ' / 3 ,
s 0 J + + /.+ ' / h & ,
9