A maior rede de estudos do Brasil

Grátis
12 pág.
Sistemas Operacionais e Programação Concorrente - Capítulo 7

Pré-visualização | Página 3 de 5

ló so to 3
f i ló so fo 
*
' ' "
ga r th 5
Fig u r a 7 1 A m e s a d o s 5 f i ló s o f o s
N a s o l u ção a s e g u i r , i r e m o s n o s c o n c e n t r a r n o c a s o de 5 f i lós o f o s o s ga r fo s 
53o
r e p r e s e n ta d o s po r u m v e to r de s e m ál o r o s e é a do t a da a s e gu i n te r e g r a : t o do s o s 5 t
ì l1\su to s
pe g a m p r i m e i r o o s e u ga r f o da e squ e r da , de po i s o d a d i r e i t a
, 
c o m e x c e ç o de u m de le s , q
ue é do
c o n t r a p o de s e r de m o n s t r a do f a c i l m e n te qu e e s t a s o lu ç o é l i v r e de de a d lo c ks 
45 Fo i e sc o lhi
do o
f i ló s o fo 1 pa r a s e r o do c o n t r a
A s e g u i r a p r e s e n t a do u m p r o g r a m a v 4 c o m p le to , n o l o r m a to a c e i to pe lo c
o mlpi lado
r
N o pr o g r a m a , c a d a f i ló s o fo f a z 1o r e f e içöe s e m o r r e D a qu i pa r a a f r e n t e s e r á a do t a
da a sc gu
in t c
c o n v e n çäo se m p r e q u e u m p r o g r a m a V 4 e s t i v e r c o m p le t o e 1e i n ic ia r á c o m 1 1v 4p r o g r a
m
"
Bl o qu e - t e ¢x n e 1 te c a l o e qu e to d o 1 o 1 p ro c e l l o s pa 1 aa m a a dqu i r i r o 1 r e c u r so s n u m a m e s m a 
: sto 
d
Scanned by CamScanner
-
7 Se m á fo r o s 95
V 4 p r o g r a m
g a ü b a m y [5 ] o f s e m a p ho r e i n i t l ; % a r r a y g l o ba l
p r o c e du r e g e l F o r ks E i n t e ge r )
j i n t e g e r
{ j : = i 1 ; % j é o ga r f o d a e s qu e r da
i f j O t he n Pg a ] b HM p g a M5 D
e l s e p g a J b Æ pga] bUD
p r o c e d u r e p u 1F o r k s ( i : i n t e g e r )
j i n t e g e r
{ j : = i 1 ; % j é o g a r f o d a e s qu e rd a
i f j = O t h e n { v (g a r fo t l ] ) ; V (g a r f o t5 ] ) }
e l s e W g a r f o uM Wgar f oi D
p r o c e s s Jì l o s o fo ( i : - 1 t o 5 )
k i n t e g e r i n i t 10
w hu e k O d o
ger For ks( i ì
n l ; w r i t e ( ' f i l o s o fo ' ) ; w r i t e ( i ) ; w r i t e ( ' c o m e c o u a c o m e r ' )
put Forks( i ì
n l w r i t e ( ' f i l o s o f o ' ) ; w r i t e ( i ) ; w r i t e ( ' pa r o u de c o m e r ' )
k = k l
e n dp r o g r a m
7
. 
4
. 
4 p r o b l e m a d o b a r b e i r o d o r m i n h o c o
T a m bém p r o po s t o p o r D ij k s t r a [D IJ 65 a ] , e s t e p r o b le m a i l u s t r a u m a o r g a n iz a ç o t i po c l i en t
s e r v id o r
, 
o n d e d i v e r s o s p r o c e s s o s c l ie n t e s u t i l i z a m o s s e r v iço s de u m p r o c e s s o s e r v
ido r O s
c l i e n te s po ó m d e s i s t i r d o s e r v iço e m f u n ç o d a
"
e s c a s s e z de r e c u r s o s "
O p r o b le m a c o n s i s t e e m s i m u l a r o f u n c
io n a m e n t o de u m a ba r bc a r i a c o m a s s e g u i n t e s
c a r æ te r f s t i c a s A b a r be a r i a te m u m a s a l a de e s pe r a c o m N c a de i r a s c u m a c a de
i r a de ba r bc a r Se
n äo te m c l i e n te s à e s pe r a , o b a r be i r o s e n t a n u m a c a de i r a c do r m e Qu a n do c he g a u m c l ie n te , e lc
a c o r da o b a r be i r o Se c he g a o u t r o c l i e n te e n q u a n t o o ba r be i r o e s tá t r abal hand e 1e o u o c u pa u m a
c a de i r a e e s pe r a (s e te m a l 吕 u m a c ad e i r a d i s po n f v e l ) o u v a i e m bo r a (s e t o d a s a s c a de i r a s e s tao
o c u p a d a i )
Scanned by CamScanner
96 Si s t e m a s o pe r a c i o n a i p r o 8r a m a ç* o C o n c o r r e n te S S T o s c a n i R S d e O I ra y s im i
A s o lu ção a s e gu i r u s a 3 s e m áf o r o s : c l i e n l t s , ß l a e m u l e x O s e m áf o r o c l i e n t e s t r a n c a o
b a r be i r o
, 
s e n d o s u a s " bo l i t a s " p r o du z id a s pe lo s c l ie n te s q u e c he g a m O v a l o r de s s e se m áfo r o
in d ic a o n ú m e r o d e c l ie n t e s à e s pe r a (e x c l u i n do o c l ie n t e n a c a de i r a do ba r be i r o , q u e n ão e s tá à
e s p e r a ) O s e m áfo r o ß la t r a n c a o s c l ie n te s e i m p le m e n t a a f i l a d e e s pe r a O s e m l if o r o m u te x
g a r a n te e x c l u s ão m ú t u a T a m bém é u s a da u m a v a r i áv e l i n t e i r a , c o u n t , q u e c o n t a o n úm r o de
c l i e n t e s à e s pe r a O v a l o r de s t a v a r i áv e l é s e m p r e ig u a l a o
"
n ú m e r o d e b o l i t a s " do w m áfo r o
c u e ñ s
U m c l i e n t e qu e c he g a n a b a 1b e a r i a v e r i f i c a o n ú m e r o de c l ie n t e s à e s pe r a Se e sse
n ú m e r o é m e n o r q u e o n ú m e r o d e c a d e i r a s , o c l i e n t e e s pe r a , c a s o c o n t r ár i o , e le v a i e m bo r a A
s o l u ç ão é a p r e s e n t a d a a s e g u i r , c o n s ide r a n d o o n ú m e r o de c a d e i r a s n a s a l a d e e s pe r a i gu a l a 3
V a r i . i v e is g l o b a i s c t i e n t e s
, ß ta : s e m a pho r e i n i t O
m u l e x s e m a p ho r e i n i t l
c o u n t : i n t e ge r i n i t i a l 0
P r o c e s s o b a r b e i r o P r o c e s s o c l i e n t e
lo o p P (m u t e x )
P (c t ie n re s ) ; / * d o r m e se fo r o c a s o * / i f c o u n t < 3
P (m u l e x ) ; t he n { c o u n t : = c o u n t + l
c o u n 1 : = c o u n t 1 ; V (c l i e n t e s ) ; / * a c o r d a o ba r be i r o # /
V (ñ ta ) ; / · p e g a p r ó x i m o c l i e n t e * / V (m u t e x )
V (m u 1e x ) ; p w l a ) ; / * e s pe r a o ba r be ir o * /
/ * c o r t a o c a be lo * ' í » c o r t a o c a be lo * /
e n d l o o p
e l s e V (m u t e x )
I n i c i a l m e n t e
, 
o ba r be i r o e x e c u t a a o pe r a ção p (c l i e n t e s )
, 
o n de f ic a b lo qu e a do (do r m in do )
a 【 a c he g a da de a lg u m c l ie n te Qu a n do c he g a u m c l ie n te
, 
e le c o m e ça a dq u i r i n do a e x c
lu são
m ii t u a O u t r o c l ie n t e q u e c he ga r im e d i a t a m e n te a pó s , i r á s e blo q u e a r a té q u e o p r i m e in 1 l ibe
re a
e x c l u s ão m ú t u a D e n t r o d a r e g i o c r i t i c a
, 
o c l ie n te v e r i f i c a s e o n ú m e r o de pe s s o a s il esp
e ra é
m e n o r OU ig u a l a o n úm e r o d e c a de i r a s Se ni o é
, 
e le l ibe r a n Bu 1e x e v a i e m b o r a se n i c o
r tar u
c a be lo
Se k m a lg u m a c ade i r a d i s po n ív e l
, 
O c l ie n te in c r e m e n t a a v a r iáv e l « o u l Bl e e x
ec u ta 
a
o pe r ação V n o se m áfo r o c 1l e m e s s e o ba r be i r o e s tá d o r m i n do
, 
e le a c o n la do ; c a s o contririo1 
é
a d c io n a da u m a " bo l i t a " n o s e m áfo r o c l ie n t e s A s e g u i r
, 
o c l ie n te l ibe r a a e x c lu s üo m ot u
a e e
n ua
n a f i la de e s pe r a O b a 1b e i r o a dqu i r e a e x c lu s o m út u a
, 
de c r e m e n t a o n úm e r o de c l ie n te s , 
Pe 吕 a
o
p r i m e i r o da f i l a de e s pe r a e v a i f a z e r o c o r t e
Scanned by CamScanner
C a p f t u lo 7 Se m ai fo r o s 97
Qu a n do t e r m i n a o c o r t e de c a b e lo
, 
o c l i e n t e de i x a a b a r be a Da e o b a r be i r o r e pe te o s e u
l o o p o n d e t e n t a pe s a r u m p r ó x i m o c l ie n t e Se t e m c l i e n t e
, 
o ba r be i r o f a z o u t r o c o r te Se n lio te m
o b a r be i r o d o n n ie
7 4
. 
5 P r o b l e m a d o s l e i t o r e s