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 4 de 5

e e s c r i t o r e s
O p r o b l e m a d o s r e a d e r s a n d w r i t e r s [C O U 7 1] i l u s t r a o u t r a s i tu a ção c o m u m e m s i s te m a s de
p r o c e s s o s c o n c o r r e n t e s E s t e p r o b l e m a s u r g e q u a n d o p r o c e s s o s e x e c u t a m o pe r a çõe s de l e i t u r a e
d e a t u a l i z a ç ão s o b r e u m a r q u i v o g l o b a l (o u s o b r e u m a e s t r u t u r a d e d a d o s g l o b a l ) A
s i n c r o n i z a ção d e v e s e r t a l q u e v ár i o s r e a d e r s (i s t o é , p r o c e s s o s l e i t o r e s , q u e n ão a l t e r a m a
i n f o r m a ç ão ) p o s s a m u t i l i z a r o a r q u i v o s i m u l t a n e a m e n t e E n t r e t a n t o , qu a l q u e r p r o c e s s o w r i t e r
de v e t e r a c e s s o e x c l u s i v o a o a r q u i v o
Pr i o D d a d e p a r a o s l e i t o r e s
A p D m e i r a s o l u ç åo g a r a n t e p r i o r i d a de pa r a o s p r o c e s s o s r e a d e r s S o u t i l i z a d a s d u a s v a r i áv e i s
s e m áf o r a s
, 
m u l e x e w
, p a r a e x c lu s ão m ú t u a , e u m a v a r i áv e l in te i r a n r , p a r a c o n t a r o n ú m e r o 
d e
p r o c e s s o s l e i t o r e s a t i v o s A s e g u i r s ão m o s t r a d o s o s c ó d i g o s q u e u m p r o c e s s o d e v e e x e c u
t a r
a n t e s e d e po i s d e u m a o p e r a ç ão R E A D o u W R I T E
V a r i á v e is g l o b a i s n 1u t e x , w : s e m a p h o r e i n i t i a l l
n r : i n t e g e r i n i t i a l 0
P r o c e s s o l e i t o r
P (m u 1e x ) ; P r o c e s s o e s c r i t o r
n r = n H l
i f n r = l t he n P (w )
V (m u t e x ) ; P (w )
R E A D 
W R IT E
P (m u 1e x ) ; 
V ( w )
n r = n r l
i f n r = O t he n V (w )
V (m u t e x )
N o te q u e o p r i m e i r o r e a de r b
lo q u e i a o p r o g r e s s o do s w r i te r s q u
e c he s a 1n a pós e le .
a t r a v s d o s e m á f o r o w E n q u a n t o h o u v e r r e a de r a
t i v o
, 
o s w Dte r s I 飞 c a r ko b lo q u e a do s
P r i o r i d a d e p a r a o a e 1 c r i t o r e i
A s o l u ç o s e g u i n te g a r a n t e p r i o Dd a de p
a r a o s w r i te r s S o u t i l iz a da s a s s e 吕 u i n te s v a r i
áv e i s
a d ic io n a i s : u m a v a r i áv e l i n te i r a n w , p a r a c o n t a r 
o n úm e r o de p r o c e s s o s w r i te r s à e s pe r a (n w = a l
s ig n i f i c a q u e u m p r o c e 1s o e s tá e 1
c r e v c n do e n e n hu m e s tü e s pe r a n do ) , e d u a s v a r iáv e i s
Scanned by CamScanner
98 s i s t e m a i o pe - e pr o s r a m a çl o C o n c o r r e n t e S S T o 1 c a n i R S d e O l i v e i ra s s
. 
c a r /* i1n i
s e m * f o r a s
, 
m e r O e n te n d i m e n to de s t a s o l u ç&o f a c i l i t a do q u a n d o s e o bs e r v a qu e a r o lu çao
a n t e Do r 1 q u i 1e pe t id a I s t o , e s t a s o lu ç o a ppr i a s o lu ç ao a n te r i o r a u - t a da c o m u m no v o
c ó d im o q u a i , n a v e n da de , u s a a m e s m a lóg i c a d a s o l u ç o a n t e r i o r E x p l i c a n d o m e lho r
, 
an h er a
o p r i m e i r o 1\e a d e r q u e b l o q u e a v a o s w r i t e r s , a g o r a é o p r i m e i r o w r i t e r q u e b lo qu e i a o s r e a der s (o
s e r r 1i f o r o m de s e m pe n ha o pa pe l de m u t e x e o s e m áfo r o r de s e m pe n ha o p a pe l de w ) par a
d e i x a r i s t o b e m c l a r o
, 
o c ód i go a d i c i o n a d o é m o s t r a do e m n e g r i t o
V a v e i s g l o b a is m u r e x , w : s e m a p ho r e i n i t i a l 1
n r : i n te ge r i n i t i a l 0
n w i n t e g e r ¡n i t i a l 0
n Æ l r s e m a p h o r e i n i t i a l 1
P r o c e s s o l e i t o r P r o c e s s o e s c r i t o r
P (r )
P (m u l e x ) ; P (m x )
n r = n r + l ; n w = n w + 1
i r n r = I t h e n P ( w ) ; i f n w = l t h e n P (r )
V (m u l e x ) ; V (m x )
V (r )
P (w )
R E A D W R IT E
P (m u l t x ) ; V (w )
n r = n r 1 ; P (n 1x )
i í n r = O [ he n V ( w ) ; 
n w = n w 1
V (m u 1r x ) ; i f n w = O t h e n V (r )
V (J?t x )
A r i go r , e s t a s o l u çäo n ão g a r a n te p r i o r i d a de a b s o l u t a p a r a o s w r i t e r s po r e x e np
la
c o n s ide r e a s i t u a ção e m q u e s e te n h a I O r e a de r s n a f i l a d o s e m áf o r o r c o m n w = 1 Im ag in e du e
lo g o a pó s o w r i ce r a c a ba r s u a e sc r i t a e de c r e m e n t a r n w p a r a o
, 
s u r j a u m n o v o w r i te r Este
p r o c e s s o i r á e s pe r a r q u e o s I o r e a de r s r e a l i z e m s e u s a c e s s o s p a r a g a r a n t i r pDo r iJ a de 
abut a
p a r a o s w r i te r s
, 
ba s t a u s a r u m s e m áf o r o a d ic io n a l
, 
m z i n i c i a l i z a d o c o m 1
, 
e c o la a r a s o pe r
a \ N s
P (m z ) e V (m z )
, 
r e s pe c t i v a m e n te
, 
a n te s d e p ( r ) e de po i s d e v ( r )
, 
n o t ód ig u u o s N a de
r s Dest i
m a n e i r a
. 
a f i l a do s e m áf o r o r pa s s a r á a te r n o m áx i m o u m p r o c e s s o m a de r
7
. 
5 E X E R C FC l O S
E x e r c f c i o 7
, 
1 C o n s ide r e a e x c l u s ito m k t u a de d u a s r e g iö e s c r í t i c a s s e n do i m p le m e n ta
da po r u
m
1e m áf o r o i n ic i a l iz ad o c o m I E x p l iq u e p o r q u e , s e a s o pe r a çöe s p e v n o fo s se m 
a tön 1ic as , 
1
e x c l u s üo m ú t u a po de r i a 1e r v io la da
Scanned by CamScanner
C a p f tu l o 7 Se m l i fo r o s 
99
E x e r c fc i o 7 2 A s e ç ao 7 I m o s t r o u a i m p l e m e n t a çao d e s e m áfo r o s n o ke r n e l d o SO e a 1 e çao 7 2
m o s t r o u a i m p le m e n t a ção a t r a v s d a s o p e r a çðe s m u t e x be g in /e n d e b l o c * l w a ke u p A m b a s a s
i m p le m e n t a çö e s r e f l e t e m a s e m ân t ic a a p r e s e n t a da n o i n fc io d e s te c a p ít u lo , o n d e o v a lo r de u m
s e m á f o r o n u n c a n e g a t i v o R e f a ça a s i m p le m e n t a çö e s u t i l i z a n d o a s e m ân t i c a e q u i v a l e n t e
a p r e s e n t a d a a s e g u i r C o n v e n ç a s e q u e a s e g u i n t e p r o p r i e d a d e é s e m p r e s a t i s fe i t a " n o c a s o de S
s e r n e g a t i v o , o v a l o r a b s o l u t o de S é o n ú m e r o d e p r o c e s s o s b l o q u e a d o s n a s u a f i l a de e s pe r a -
 P
 (S)
 : S u b t rai 1 de
 S
Se S < O e n t ão o p r o c e s s o é b l o q u e a d o e c o l o c a d o n a f i la de e s pe r a d e S
1 V (S ) : I n c r e m e n t a S d e 1
Se S < O e n t ão r e m o v e u m p r o c e s s o p d a f i l a d e e s p e r a e d e s b lo q u e i a p
E x e r c í c i o 7 3 U m s e m á jb r o b i n á r i o é u m s e m áf o r o c u j o v a l o r p o d e s e r 0 o u 1 M o s t r e c o m o
u m s e m á f o r o g e r a l p o d e s e r i m p l e m e n t a d o a p a r t i r d e s e m áf o r o s b i n ár i o s
E x e r c í c i o 7 4 C o n s i d e r e a i n s t r u ção T S(X , L ) q u e e x e c u t a o s e g u i n t e c ó d i g o d e fo r m a
i n d i v i s í v e l
i f X t h e n g o t o L e l s e X : = t r u e
m o s t r e c o m o i m p l e m e n t a r a s o p e r a çõ e s P e V s o b r e u m s e m áf o r o b i n ár i o u s a n d o a i n s t r u ção T S
E x e r c íc i o 7 5 N a