A maior rede de estudos do Brasil

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

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

n i c i a l i z a d a p o r
o c a s i ão d a p D m e i r a l e i t u r a P a r a s i m p l i f+c a r a a p r e s e n t a ção , Sha r e d X é u m a v a r i áv e l s i m p l e s ,
d o t i p o i n t e ge r
t a s k r w 2 i s
p r o c e d l 1r e r e a d e r (x a t u a l : o u t i n t e g e r )
e n t r y w r i l e r (n e w J i n i n t e g e r )
e n d
t a s k b o d y r w 2 i s
s ha r e d x i nt eger
# r e a d e r s : i n t e g e r i n i t i a l 0
e n t r y s t a r t r ead
e n t r y e n d r ead
p r o c e d u r e r e a d e r (x a t u a l : o u t i n t e g e r ) i s
b e g i n
st ar t _r ead
x a t u a = Sh a r e d J
end_r ead
e n d
b e g i n
a c c e p t w r i 1e r (n e w J i n i n te g e r ) d o Sha r e d x - n e w J e n d
l o o p
s e l e c t
a c c e p t s t a r ¢ r e a d d o # Te a de r s
- # r eader s+\ end
o r
a c c e p t e n d r e a d do # r e a de r s
= # r e a d e r s \ e n d
o r
w h e n # r e a d e r s - 0 = > a c c e p t w r i1e r (n ¬ w J i n i n t e ge r ) do
Sh a r e d X = n e w J
e n d
e n d s e l e c t
e n d l o o p
e n d r w 2
Scanned by CamScanner
15 8 S i s t e m a s O pe r a c io n a i s e P r o gr a m a çao Co n c o r r e n te S S T o s c a n i , R S d e O l i v e i r a e A S mi
o p r o c e d i m e n t o r e a de r c ha m a a s o pe r a çö e s s t a r t r e a d e e n d r e a d , a s q u a i s s ão de f in idas
c o m o e n t r i e s (s ão e 1Bl r îe s p a r a u s o l o c a l q u e n ão p o de m s e r c h a m a d a s d e fo r a d a t a s k r w J )
E s t a s o p e r a çMe s p r e c i s a m s e r do t i p o e n t r y p o r qu e e l a s a tu a l i z a m a v a r i áv e l # r e a d e r s
V e r s ã o 3
É u m a m o d i f i c a ção d a v e r s ão a n te D o r
, qu e dá p r i o r i d a de p a r a o s w r i t e r s A d i fe r e n ça e s tá n a
c o d i f i c a ção d o l o o p i n f i n i t o , de n t r o d o c ód ig o d a t a s k , q u e p a s s a a s e r o s e g u i n t e
1 o o p
s e l e c t
w h e n w r i t e r ' c o u n t = O = > a c c e p t s t a r t r e a d do
# r e a d e r s - # r e a de r s + lL 
,
e n d
o r
a c c e p t E n d r e a d d o # r e a de r s = # r e a d e r s 1 e n d
o r
w h e n # r e a d e r s - 0 = > a c c e p t w r i l e r (n e w x i n i n t e g e r ) d o
Sha r e d x - n e w J
e n d
l o o p
s e l e c t
a c c e p t s t a r t r e a d d o
# r e a d e r s = # r e a d e r s+\
e n d
; i/
'
e l s e e x i t
<\ ; , 1 e n d s e l e c t
l i , : ' e n d l o o p
e n d s e l e c t
e n d l o o p
N o l o o p , q u e é e x e c u t a do i n de fi n ida m e n te
, 
a p r i m e i r a g u a r da te s t a s e o v a lo r 
de
w r i t e ' c o u n t (i s to é , o n ú m e r o de p r o c e s s o s b l o qu e a do s à e s pe r a de r e n de z v o u s n a e n t ry w r it e) 
é
z e r o C a s o a f i r m a t i v o
, 
u m s t a r t r e a d é a c e i to En qu a n to n ao e x i s t i r p r o c e s s o w Dte r à e
s pe r a ,
m a i s p r o c e s s o s r e a d e r s p o de m in i c i a r s u a s l e i t u r a s O s e Bu n do a c c ep t (s e m gu a r da ) de te r ï ï
ún a
q u e a c h a m a d a e n d j e a t t s ej a s e m p r e a c e i t a Qu a n d o # r ader s é r e du z i do a z e r o e e x i s te a lgu m
w r i t e r à e s p e r a n a e n t By w r i t e r , e n tao o r e n de z v o u s c o m o p r i m e i r o p r o c e s s o da f i l a é e x e
c u tado 
0 l a ço q u e v e m a s e g u i r l ib e r a t o d o s o s r e a de r s à e s p e r a n e s te m o m e n to
E x i s t e o s e g u i n t e p r o b l e m a d e p r o g r a m a ç o n o l o o p f i n a l q u e i m p le m e n ta a 
l ibe ra ç o
c o n t ín u a de r e a d e r s n o f i n a l de u m a o pe r a ç ão w r i t e r s e a c o n t e c e u m f lu x o c o n t fn
u o
de
Scanned by CamScanner
C a p f t u lo 12 R e n d e z v o u s 159
c h a m a d a s a o p r o c e d i m e n t o r e a d e r , po s s f v e l a p o s te r g a ç ão i n d e f i n id a d e p f o c e s s o s w r i t e r s I s t o
o c o r r e q u a n d o a v e l o c i d a d e d a s c h a m a d a s d e s t a r t r e a d é m a i o r q u c a v e l o c id a d e d e e x e c u ç ão
d o s a c c e p t s , n o l o o p i nt er no A c o r r e ç ão d e s t e p r o b l e m a p o d e s e r fe i t a d e m a n e i r a s i m p l e s ,
de i x a n do p r o s s e g u i r a pe n a s o s r e a d e r s q u e e s tão à e s p e r a n o m o m e n t o e m q u e a c a b a a e x e c u ç ão
d a e n t r y w r i t e r (o n ú m e r o de p r o c e s s o s é d a do pe l o v a l o r d e s 1a r 1 r e a c o u n 1 n e s s e n x »m e n t o )
E s t a t éc n i c a f o i u s a d a n a v e r s ão 1
, 
a p r e s e n t a da a n t e r i o r m e n t e
U 2 T l1r e a d s
, 
CU STjo e o v e r h e a d
0 c o n c e i t o d e t h r e a d j á f o i a p r e s e n t a do n o c a p í t u l o 3 , j u n t a m e n t e c o m a a p r e s e n t a ç ão d a s
p r i m i t i v a s f o r k , j o i n e q u i t A q u i e s t e c o n c e i t o é r e f o rç a do
A i w l e m e n t a ção de t a s k s o u p r o c e s s o s e n v o l v e u m c u s t o (p o i s o s o f t w a r e n e c e s s ár i o
t o m a o s i s t e m a m a i s c a r o ) e u m o v e r he a d (pe r d a de t e m p o d e U C P e e s p a ço de m e m ó r i a ) O
s i s t e m a o p e r a c i o n a l é o b D g a d o a m a n t e r r e g i s t r o s d e s c r i t o r e s
6 s
, 
f a z e r a l o c a ção d e m e m ó r i
c o n t r o l a r d e a d to c k s
, 
e t c O u s o d e t h r e a d s p e r m i t e d i m i n u i r o s c u s t o s a s s o c i a d o s à a d m i n i s t r a ç ão
d e p r o c e s s o s e , a o m e s m o t e m p o , a u m e n t a r o po d e r d e r e p r e s e n t a ção d o s m e s m o s , t o m a n d o o s
m a i s g e r a i s e p o d e r o s o s E s s a f o r m a d e a u m e n t a r o p o d e r d e c o m p u t a ç ão e d i m i n u i r o s c u s t o s d e
a d m i n i s t r a ç ão , a t r a v és d o u s o d e t h r e a d s , f i c a be m v i s ív e l c o n s i de r a n d o a s t a s k s d a l i n g u a g e m
A D K
C o n f o r m e j á r e f e r i d o a n te D o r m e n t e u m a t a s k e m A D A t e m a p e n a s u m a l i n h a (o u f l u x o )
d e c o n t r o l e
, q u e , p o r s i n a l , é d e n o m i n a d a t h r e a d Pa r a pe r m i t i r q u e e s s a t h r e a d p o s s a e s p e r a r n ão
d e t e r m i n i s t ic a m e n t e p o r v ár i o s r e n d e z v o u s , e x i s t e o c o m a n d o s e te c t Po r q u e n ão pe r m i t i r q u e
u m a t a s k po s s a e s t a b e l e c e r v ár i a s th r e a ds d u r a n te s u a e x e c u ção ? I s t o po d e s e r c o n s e g u i d o
a t r a v és d e u m c o m a n d o 】o r k , p o r e x e m p l o D e s s a m a n e i r a , v ár i o s a c c e p t s po d e r i a m s e r
r e a l i z a d o s s i m u l t a n e a m e n te (u m p o r t h r e a d ) e o c o m a n d o s e l e c t d e i x a r i a de s e r n e c e s s ár i o O
po de r c o m p u t a c i o n a l s e r i a a u m e n ta d o p o r q u e u m a l a s k po de D a p r e s t a r v ár i o s s e r v i ço s
s i m u l t ân e a r n e n t e
, 
c a d a u m i m p l e m e n t a d o po r u m a t h r e a d i n de pe n de n t e O l a d o n e g a t i v o é q u e
c o m i s s o
, 
o s d a d o s i nt er nos à t a s k p a s s a m a s e r c o m p a r t i l h a d o s po r v ár i a s t h r e a d s , t r a z e n do de
v o l t a