A maior rede de estudos do Brasil

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

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

s do i s ga r f o s d e u m a s ó v e z (e m u ma
ún ic a c h a m a d a d o m o n i t o r ) E s t a s o l u ção é a p r e s e n t a d a a s e gu i r
So l u ç i i o l i v r e d e d e a d l o c k
0 m o n i t o r m a n t m pa r a c a d a fi ló s o fo u m c o n ta do r q u e i n d ic a o n úm e r o de Ba r fo s d ispo ï
1:v eis
pa r a e l e É u t i l i z a do o m e s m o v e to r g L i v r e [5 ] da v e r s o a n t e r i o r
, po r ém ago r a c o m 
ou uo
s i gn i fi c a d o O v e t o r pa s s a a s e r i n te i r o e c a d a e l e m e n to do v e t o r f i c a a s s o c i a do a u m f i lós o
fo (e
n ão a u m g a r fo ) O e le m e n to g L i v r e E] pa s s a a in d ic a r o n úm e r o de g a r fo s d is po n fv e is pa
ra o
f i ló s o fo i T o do s o s e le m e n t o s s ão in ic i a l i z a do s c o m 2
, po i s n o i n ic io c a da f i lós o lb te m 
2 Ba r fo a
à s u a d i s po s ição Qu a n do u m fi ló s o f o pe g a s e u s ga r fo s
, 
o m o n i to r de v e de c r e m e n tar 
dc 1 os
c o n t a do r e s do s d o i s v i z i n ho s s e u s pa r a b lo qu e a r o s p r o c e s s o s , é u t i l i z a do o v e to r 
co ndi t io 
n
o k [5 ] Qu a n do o fi ló s o fo I s e b lo q u e i a , e le f i c a a e s pe r a do s i n a l o k t i ] 
:
A 4 ' ?
Scanned by CamScanner
C a p f tu lo 9 M o n i t o r es 119
V 4p r o g r a m
m o n i t o r g a d o s
g L i v r e : a m y t5 ] o f i n te ge r i n i t 2 ; % g L i v r e E] é o n úm e r o de ga r fo l
% d is po n fv e i s pa r a o f i ló s o f o i
o k a m y [5 ] o f c o n d i t i o n
p r o c e d u re p e g a (i : i n t e ge r )
j i n t e ge r k i n t e ge r % e s t e s s ão o s v iz in h o s
j : = i 1 i f j = 0 t he n j : - 5 ; % d a e s q u e r d a
k : = i+ l i f k · 6 th e n k = l ; % e d a d i r e i t a
i f g L i v r e [ i ] < 2 t he n w a i t (o k t i ] ) : % a lg u m ga r fb e s t á o c u p a d o ?
g L i v r e [ì ] : - g L i v r e [ì] 1
g L i v r e [k ] : = g L i v r e [k ] 1
p r o c e d u r e l ib e r a ( i : i n t e g e r )
j i n t e g e r k i n t e g e r
j : = i l ; i f j = 0 t he n j - 5
k : = i + l ; i f k = 6 t h e n k = l
g L i v r e 【ì ] : = g L i v r e 【ì]+ l ; % l ib e r a g a r f o d a e s q u e rd a
g L i v r e [k ] : = g L i v r e [k ]+ 1 ; % l ibe r a ga r fo d a d i r e i t a
i f g L i v r e 【ì ] = 2 t he n s i g n a l (o k [ì])
i f g L i v r e [k ] = 2 t h e n s ig n a l (o k [k ])
e n d m o n i t o r
p r o c e s s j ì l o s ofo ( i : = 1 t o 5 ) ; / * c a d a f i ló s o fo f a z 10 r e f e içMe s * /
k i n t e g e r i n i t 10
w h u e k O d o
ga r fo s p e g a (\)
n l ; w r i [e ( ' f i l ' ) ; w r i te (i ) ; w r i t e ( ' c o m e c o u a c o m e r ' )
g a M l i b e r a w
n l ; w r i t e ( ' f i l ' ) ; w r i t e ( i ) : w r i [e ( pa r o u de c o m e r ' )
k = k l
e n d p r o g r a m
N e s ta s o l u ç ão , n o m áx i m o d o i s f i ló s o f o s po de r ìio c o m e r a u m e s m o t e m po (e le s
o c u p a r ão 4 d o s 5 g a r f o s d i s p o n í v e i s ) V a rn a s s u po r t l u e t ) s li ló s L} f o s 1 e 3 e s te j a m c o m e n do
T e o Dc a m e n te
, 
 p o s s f v e l i m a g i n a r u m a s e q tl ën c i a d e e x e c u çào e m q u e e s s e s do i s f i lós o f o s s e
a l t e m a m dc m o d o q u e n u n c a f iq u e m do i s g a r f o s d i s p o n : v e i s pa r a o f i l ó s o fo 2 N e s t a s i t u a çao , o
f i ló s o f o 2 f i c a r á e m s i t u a ç ão de po s t e rg a ç o i n de f i n id a (s l a r v a l i o n ) Po r t a n t o e s ta s o l u ç o e v i t a
d e a d l o c k
, 
m a s n ão i m pe de s i t u a çðe s de po s t e r g a çäo i n d e f i n ida
Scanned by CamScanner
120 Si s t e m as O pe r a c io n a i s e PT o 8 r a m a çao Co n c o r r e n t e S S T o s c a n i , R S de O I r a e A S
9 8
. 
5 R e a d e r s & w r i t e r s
0 m o n i t o r a s e g u i r é u m a s o l u ção p a r a o p r o b l e m a do s r e a d e r s e w r i te r s j á r e so l v ido c o ms e m áfo r o s n a s e ção 7 5 5 D i fe r e n t e m e n t e da s s o l u çõ e s c o m s e m áf o r o s
, q u e dão p r i o r idade oupa r a o s r e a d e r s o u p a r a o s w r i t e r s
, 
e s t a s o l u ção n ão dá p r i o r i d a de pa r a n e n hu m t i po de ac e sso Om o n i t o r al t er na a s p Do Dd a de s d a s e g u i n te m a n e i r a (a ) Qu a n d o a c a ba u m a o pe r a ção de escTi oc o n ju n t o de p r o c e s s o s r e a d e r s q l i e e s tão à e s pe r a t e m p r i o r i d a de s o b r e o s w r i t e r s q u e ta mbM
e s tão à e s p e r a n e s s e m o m e n t o (b ) Qu a n d o a c a b a o a c e s s o de s s e c o n j u n to d e r e a l l e r s " p r j m iro
w r i r e r d a f i l a de e s pe r a r e c e b e p r i o r i d a d e s o b r e o s r e a d e r s D e p o i s do a c e s s o de s se w r j j e r
,r e pe te s e o c a s o (a ) E s t a s o lu ção e v i t a o p r o b le m a da po s t e r ga ção i n d e f i n i d a e é m a i s j u s ta
Su põ e s e q u e o s p r o c e s s o s r e a d e r s c ha m e m o p r o c e d i m e n t o s t a r t Re a d a n te s da le i tu r a c
o p r o c e d i m e n t o e n d Re a d a pó s a l e i t u r a ; s i m i l a r m e n t e
, 
o s p r o c e s s o s w r i t e r s c ha m a m s t a r t w r ite
a n t e s d a e s c r i ta e e n d w r i t e a pó s a e s c r i t a
m o n i t o r Re a d e r s A n d w r i t e r s
# r e a d e r s : i n t e g e r i n i t i a l 0
a c l i v e w r i r e r b o o l e a n in i t i a l f a l s e
o k T o R e a d
, 
o k To W r i t e : c o n d i t i o n
p r o c e d u r e s t a r tRe a d o
i f a c t i v e Wr i t e r o r - e m p t y (o k To w r i te ) t he n w a i t (o k T o R e a d )
# r e a d e r s = # r e a d e r s + \
s i g n a l (o kTo Re a d)
p r o c e d u re endReado
# r e a de r s = # r e a d e r s 1
i f # r e a d e r s = O the n s ig n a l (o k To w r i l e )
p r o c e d u r e s i a r r w r i 1e o
i f # r e a d e r s > O o r a c t i v e w r i t e r t he n w a i t (o kTo w r i 1e )
a u i v e w r i t e r = t r u e
p r o c e d u r e t l 1d w r i r t j
a c t i v e W r i t e r e ih l s e
\f 1 e m p ty (o k To只e a d) t h e n s i gn a l (o kTo Re a d)
e l s e s ig n a l (o k To w r b e )
e n d Re a d e r s A n d w r i Be r s
) ;
Scanned by CamScanner
C 1 pf t u l o 9 M o n i t o 1\e l 12 1
N o p r o c e d i m e n t o s t a r t R e a d e r
, 
o p r i m e i r o p r o c e s s o a s a i r d a f i l a o kTo Re a d s i n a l i z a o
s e g u n do , o s e g u n d o s i n a l i z a o t e r c e i r o , e a s s i m po r d i a n te (o ú l t i m o p r o c e r s o a s a i r i M s i n a l i z a r
u m a c o n d i ção c o m f i l a v a z i a ) I s t o o r i g i n a u m a " c a s c a t a " de p r o c e s s o s r e a de r s q u e i r ão r e a l iz a r
s u a s o pe r a çõ e s de le i t u r a Qu a n d o o ú l t i m o de s s e s p r o c e s s o s t e r m i n a r a s u a le i t u r a , o a c e s s o
pa s s a r á p a r a u m w D te r
9 8 6 E s c a l o n a m e n t o d e o p e r a çõ e s e m d i s c o
O e x e m p l o a s e g u i r , a p r e s e n t a do o r i g i n a l m e n t e p o r H o a f e [H O A 74 ] , é u m m o n i t o r q u e c o n t r o l a
o a c e s s o a u m d i s c o de b r a ç o m ó v e l c o m 4 00 c i l i n d r o s
s 3 0 a lgo r i t m o f a z o b r a ço v a r r e r o s
c i l i n d r o s d o d i