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

n p r o c e s s o s de i x a do c o m o e
x c r c fc io
Scanned by CamScanner
92 s i s t e m a s o pe r a c i o n a i s e p r o u -
c o n c o m n t e . S S T o l c a n i , R s d e O 1i v e i r a eAS11i mi
Y
, 
Z : s e m a p ho r e in i t i a l 0
E . : E2
V (Z ) ; V (Y )
P (Y ) ; P (Z )
A B
7
. 
4 P r o g r a m a s c l ás s i c o s
A l i n g u a ge m V 4 i m p l e m e n t a s e m áf o r o s t a l c o m o e l e s f o r a m 
d e f in i d o s po r D ijk s tr a , se n do
po s s i v e l d e c l a r a r a r r a y s de s e m áf o r o s c o m a t é d u a s d i m e n s
õ e s E s t a s e ção a pr e se n ta
p r o g r a m a s q u e p o de m s e r c o n s i de r a do s e x e m p lo s c l ás s i c o s d a p r o g r a m a ç
ão c o n c o r r e n te T o do s
e l e s e s t ão e s c r i t o s de a c o r d o c o m a s i n t a x e d e V 4
7 4 1 U m a l o c a d o r d e r e c u r s o
O p r o b le m a c o n s i s t e e m i m ple m e n t a r u m c o n t r o la d o r p a r a u m r e c u r s o f o r m a d o p o r N u n
idades
A s e s t r u t u r a s d e d a d o s n e c e s s ár i a s e o s a l go r i t m o s j á f o r a m v i s t o s n a s s e çMe s 4 1 e 6 3
A s e g u i r , o c o n t r o l a d o r é i m p l e m e n t a d o p o r d o i s p r o c e d i m e n t o s , d e n o m i n a do s r e qu e s t 
e
r e l e a s t r
, 
e s c D to s d e a c o r d o c o m a s i n t a x e d e V 4 A m b o s o s p r o c e d i m e n t o s s ão d o t ip o s u br o t i n a
Pa r a r e q u e s t o a r g u m e n t o U é d e s a i da e p a r a r e l e a s e o a r g u m e n t o U é de e n t r a d a
v a r i á v e i s g l o b a is R a m y [5 ] o f i n te g e r ; % s u p õ E s e R i n i c i a l i z a do c o m [5 , 4 3 , 2 , l ]
T in te ge r i n i t i a l 5
c o u n t e r s e m a pho r e i n i t i a i 5
m u 1e x s e m a pho r e i n i t i a l l
p r o c e d u r e r e q u e s 1( U i n t e ge r ) p r o c e d u r e r e te a s e (U i n t e ge r )
P (c o u n t e r ) ; { P (n zu t e x )
P(m u t e x ) ; T = T+ l
U - R IJT ; R [T1: = U
T = T l ; V (n 1B4 l e R)
V (m u l e x ) V (c o u n f e r )
A v a r i áv e l T o c o n ta d o r de u n id a de s d i s po n f v e i s e i n d i c a a po s içao de 
R qu e c o
n t 1n 
l
p r ó x i m a u n ida d e a s e r a lo c a da Es s a v a r i áv e l a s s u m e v a l o r e s e n t r e o e 5 o s e n
1áfo r o c Q
u l 1l t 
r
t r a n c a a s r e q u i s içö e s q u a n do T - o o v a l o r d o s e m áfo r o c o u n t e r (o s e u B B n úm e r o de 
bo l i tas
" ) vai
Scanned by CamScanner
C a p f t u lo 7 Se m á fo r o s 9 3
s e r s e m p r e i g u a l a o v a l o r d c T Se o v a l o r d e u m s e m á f o r o p u d e s s e s e r l id o , a v a r i áv e l T n e m
s e r i a n e c e s s ár i a O s e m & f o r o m u t e x g a r a n t e a c e s s o e x c l u s i v o ù v a r i á v e l T e a o v e t o r R
7
. 
4
. 
2 P r o d u t o r c o n s u m i d o r c o m b 1t l ï e r l i m i t a d o
E s t e p r o b l e m a f o i p r o p o s t o p o r D ij k s t r a [D IJ 65 a ] e p o de s e r e n u n c i a d o c o m o s e g u e U m pa r d e
p r o c e s s o s c o m p a r t i l h a u m b u jde r de N po s i çõ e s O p r i m e i r o p r o c e s s o , d e n o m i n a d o p r o d u t o r
p a s s a a v id a a p r o d u z i r m e n s a g e n s e a c o l o c á la s n o b u jl e r O s e g u n d o p r o c e s s o , d e n o m i n a do
c o n s u m id o r
, p a s s a a v i d a a r e t i r a r m e n s a g e n s do bM e r (n a m e s m a o rd e m e m q u e e l a s f o r a m
c o l o c a d a s ) e a c o n s u m í l a s
A r e l a ç ão p r o d u t o r c o n s u n 1i d o r o c o r r e c o m u m e n t e e m s i s t e m a s c o n c o r r e n t e s e 
0
p r o b l e m a s e r e s u m e e m a d m i n i s t r a r o b · q u e t e m t a m a n h o l i m i t a d o S e o b u ße r e s t á c h e i o , o
p r o d u t o r d e v e s e b l o q u e a r , s e o b u w · e s t á v a z i o , o c o n s u m i d o r d e v e s e b l o q u e a r
A s e g u i r é m o s t r a d a a p r o g r a m a ç ão d e s s e s i s t e m a c o m u m b e · d e 5 p o s iç õ e s e s u p o n d o
q u e a s m e n s a g e n s s e j a m n ú m e r o s i n t e i r o s
V a r i ii v e i s g l o b a i s b u jTe r a r r a y [5 ] o f i n t e g e r
c /1e i o s : s e m a p h o r e i n i t i a l O ; 
/
v a z i o s : s e m a p h o r e i n i t i a l 5
P r o c e s s o p r o d u t o r 
P r o c e s s o c o n s u m i d o r
m s g , in : i n t e g e r ; 
m s g , o u r : i n t e g e r
l o o p 
l o o p
% p r o d u z m e n s a g e m m s g 
P (c h e i o s )
p ( v a z i o s ) ; o u l : = (o u l m o d 5 ) + l
i n : = ( i n m o d 5 ) + l ; m s g : = buj Jr t our ]
b u jde r t i n ] : = m s g ; 
V (v a z io s )
V (c h e i o s ) % c o n s o m e a m e n s a ge m n ts g
e n d l o o p 
e n d l o o p
O s e m á f o r o c h e i o s c o n t a o n ú m e r o 
d e b u o e r s c he io s e o s e m i iBo r o v a z io s c o n t a n k 1m r o
de b u jûe r s v a z i o s C o n f o r m e j á tb i r et r i do , a s v a r
iáv e i s i n t e i r a s q u e n ào s ao i n ic i a l i z a d a s te m
s e u v a lo r i n ic i a l i g u a l a z e r o
O b s e r v e q u e a s o l u ç ão n o s e p r e
o c u p o u e m g i u a n t i r e x c l u s o m ú t u a n o a c e s s o a o
b u ße r I s to p o r q u e o s d o i s p r o c e s s o s t r a b a l h a m c o m 
v a r i v e i s lo t a is in , o u t e n 1s g e , c e r t a m e n te .
i r äo a c e s s a r s e m p r e po s i çö e s d i fe r e n t e s 
d o v e t o r g lo b a l b rd e r
Scanned by CamScanner
94 s i s t e m a s o pe r a c i o n a i s e 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 de O l r a s Cai mi
7
. 
4 3 J a n t a r d o s H1ós o f o s
T a m b m de v id o a D ij k s t r a [D IJ 65a ] , e s t e p r o b l e m a i lu s t r a a s s i t u a çõ e s de de a d lo c k e de
po s te r g a ç o i n de f i n id a q u e po de m o c o r r e r e m s is te m a s n o s q u a
i s p r o c e s s o s a dqu i r e m e l ibe r am
re c u r s o s c o n t i n u a m e n t e
E x i s t e m N f i l ó s o fo s qu e pa s s a m s u a s v id a s pe n s a n do e c o m e n d o C a da u m po s su i s eu
lu g a r n u m a m e s a c i r c u l a r , e m c u jo c e n tr o há u m g r a n de p r a to de s p a g he t t i A f ig u r a 7 I i l u s t r a a
s i t u a ç äo p a r a 5 fi ló s o fo s C o m o a m a s s a é m u i t o e s c o r r e g a d i a , e l a r e qu e r do i s g a r f o s pa r a scT
c o m i d a N a m e s a e x i s t e m N g a r fo s , u m e n t r e c a d a do i s f i ló s o f o s , e o s ú n i c o s g a r fo s qu e u m
f i ló s o fo p o de u s a r s ão o s do i s q u e the c o r r e s p o n de m (o d a s u a e s q u e rda e o d a s u a di r e i ta ) O
p r o b l e m a c o n s i s t e e m s i m u la r o c o m po r t a m e n t o do s f i l ó s o fo s p r o c u r a n do e v i t a r s i t u a çMe s de
d e a d l o c k (b lo q u e i o pe r m a n e n t e ) e de po s t e r g a ç ão i n de f i n i da (b l o q u e i o p o r t e m po i n de fi n ido )
D a d e f i n i ção d o p r o b le m a , te m s e q u e n u n c a d o i s f i lós o f o s a d j a c e n t e s po de r ão c o m e r a o
s m o t e 呷 o e q u e , n o m áx i m o , N /2 f i l ó s o f o s po d e r ão e s t a r c o m e n d o de c a da v e z
lì