Baixe o app para aproveitar ainda mais
Prévia do material em texto
Scanned by CamScanner C a p f t u l o 6 S I N C R O N I Z A ÇÕE S B Á S I C A S M a r t i n F i e r r o E t m o r e n o M e g u s t a n e g r o la d i n o Y o n o s o y c a n t o r 1a d i n o 1o q u e a c a b ás d e e s p l i c a r y m i h a b i l i d á e s m u y po c a y a [ e e n p i e z o a r e s pe t a r m a s c u a n d o c a n t a r m i t o c a a u n q u e a l p r i n c i p i o m e r e i m e d e f i e n d o e n e l c o m b a t e y t e qu ie r o p r e g u n t a r po r qu e s o y c o m o lo s 1n a 1e s lo q u e e n t e n d s po r 1a 1e y s i r v o s i m e a b r e n Ia b D e n d e q u e e l i ge a s u gu s t o Io m a s c s p i n o s o e l ig e pe r o e s t o po c o m e a f1i e y le c o n t e s t o a m i 1n o do 1a l e y s e ha c e pa r a t o do s m a s s ó l o a l po b r e I¢ Dge A p a r t i r de s te c a p í t u l o , s ão a p r e s e n t a d o s d i v e r s o s m e c a n i s m o s p a r a s i n c r o n i z a ç o e c o m u n ic a ç ão d e p r o c e s s o s p a r a c ad a m e c a n i s m o , é m o s t r a d o c o m o o m e s m o po d e s e r i m p le 1n e n t a d o n o ke r n e l d o SO i n i c i a l m e n t e , s ão c a r a c t e r i z a do s o s t i p o s bás i c o s d e s i n c r o n i z a ç o 6 . 1 A s t r ês s i n c r o n i z a ç t ie s b ás i c a s C o n s id e r e do i s p r o c e s s o s , c a d a u m e x e c u t a n do u r r 1a1 u pe r a q u d i s t i n t a Se a lg u n 1a s in c 1u n i z a ç i lo fo r r e q u e r i da pa r a e s s e s pmc es s us (e m r e l a ç o a e s s a s d u u s o pe r a çöe s ) , e n t o c e r ta m e n t e e l a s e e n q u a dr a r á e m u m d o s s e g u i n t e s t r ês c a s o s (a ) a s o pe r a çõ e s n ão d e v e m s e r e x e c u t a d a s s i m u l t a n e a m e n te (b ) u m a d a s o pe r a çò e s de v e i n i c i a r a pó s o tér m i n o d a o u t r a Scanned by CamScanner 78 Si s t e m a s Æ o n a i s e p r o 8 r a m a çao Co n c o r r e n t e S - de O l i v e i r a e A S Car i » j m i (c ) a s o pe r a çö e s de v e m i n i c i a r " s i m u l t a n e a m e n te " A p r i m e i r a s i n c r o n i z a ção s u r ge n o u s o de r e c u r s o s c o m pa r t i l ha do s q u e de v e m ser u s a d o s p o r u m ú n i c o p r o c e s s o d e c a da v e z 4 1 E x e m p l o s de r e c u r s o s c o m pa r t i lha do s são e s t r u t u r a s d e d a do s g lo ba i s , d i s po s i t i v o s de E/ S e p r o c e d i m e n t o s n ão r e e n t r áv e i s D i z se qu e o s m e c a n i s m o s p a r a e s te t i po de s i n c r o n i z a ção s ão v o l ta do s pa r a o c o m p a r 1i l l ia m e n t o de r e c u r t o r O s e g u n d o t i po d e s i n c r o n i z a ção s u r ge qu a n do p r o c e s s o s c o o pe r a m e n t r e s i , po r e x e n q»lo , e x e c u t a n d o e t a p a s s e qü e n c ia i s de u m s e r v i ço E s te t i po de s i n c r o n i z a ção r e q u e r u m m e c a n i s m o q u e pe r m i t a b l o q u e a r u m p r o c e s s o a té a c he g a da de u m s i n a l (a v i s o ) de o u t r o Pr o c e s s o Po r t a n t o , é r e q u e r i do u m m e c a n i s m o de c o m u n i c a ção D i z s e qu e o s m e c a n i s m o s pa r a e s t e t i p o d e s i n c r o n i z a ção s ão v o l t a d o s p a r a a c o m u n i c a çã o de p r o c e s s o s O t e r c e i r o t i p o d e s i n c r o n i z a ção s u r ge q u a n do p r o c e s s o s p r e c i s a m s e a g r u p a r , pa r a d e p o i s p r o s s e g u i r e m a o m e s m o t e m po E s t a s i n c r o n i z a ç ão é n e c e s s á r i a , po r e x e m p l o q u a n d o u m g r u p o d e p r o c e s s o s p r e c i s a s e c e r t i f i c a r q u e to d o s e le s j á a c a b a r a m s u a s o p e r a çõ e s (t a l v e z pa r a i n i c i a r e m o u t r a ) E s t e t i p o d e s i t u a ç o é c o m u m e m a p l i c a çõ e s d i s t r i b u :d a s e r e q u e r u m m e c a n i s m o p a r a a g r u p a r (o u r e s i n c r o n i z a r ) p r o c e s s o s Po de s e d i z e r q u e o m e c a n i s m o a t u a c o m o u m a b a r r e i r a (o u b a r r a g e m ) , q u e s e g u r a t e m p o r a r i a m e n te o s p r o c e s s o s 6 1 1 S i n c r o n i z a çã o p a r a c o m p a r t i l h a m e n t o E s t e t i p o d e s i n c r o n i z a ção é c a r a c t e r i z a do p e l a s o pe r a çõ e s p r i m i t i v a s m u t e x be g i n e m u t e x e n d c o n s i d e r a d a s n o c a p í t u l o a n t e r i o r R e c o r da n do , a o pe r a ção m u l e x b e g i n s ó de i x a pa s s ar o p r i m e i r o p r o c e s s o q u e a e x e c u t a , o s d e m a i s f i c a m b l o q u e a d o s Qu a n d o o p r i m e i r o (o q u e p a s s o u pe l a o pe r a ção m u t e x b e g i n ) e x e c u t a a o pe r a ç ão m u t ex e n d u m ú n i c o p r o c e s s o (de n t r e o s b l o q u e a d o s ) o b tém pe r m i s s ão pa r a p r o s s e g u i r D e s s a m a n e i r a , n u n c a s e t e m m a i s de u m p r o c e s s o e x e c u t a n d o de n t r o de u m t r e c ho d e l i m i t a d o pe l o p a r m u t e x be E n m u t e x e n d A iì gu r a 6 1 m o s t r a c o m o s e r i a a i mpl ement açi o da e x c l u s ão m ú t u a de n r e g iõ e s c r i t i c a s m u t e x be g i n ; m u t e x be g i n ; m u t e x be g i n R E G Ià O C R 9T IC A ; R E G IÃO C R IT IC A ; R EG IÃO C R ÍT ICA m 11t e x e n d m u [e x e n d ; m u te x e n d 月 l u r a 6 1 E Jrc l u · * o m ú t u a · n t r e n p r o c e s · o · 4 1 A pó 1 1e r l ibe r ado po r u m 1 1o o r e c u n o po d e s e r u s a do po r o u 1r o p r o c e i s o D e s s a m a n e i r a u m a s r ie d¢ p- s o s po de u s a r o m e s m o r e c u n o u m pr o c e a 1o d e c a d a v e z p o r e s t a r a z üo e s t e s r e c w so s s =o di1o s s e r ia Bn Be n Bt r e iBs á v t i s Scanned by CamScanner C a p i t u lo 6 S i n c r o n i z a ço c s B #a i c a s 79 6 . 1 2 Si n c r o n i z a çã o p a r a c o m u n l c a ç o E s t e t i & » d e s i n c r o n i z a ç o é c a r a c te D z a do pe l a s o pe r a çöe s p r i m i t i v a s b lo c k e w a ke u p (p ) , - m j á a p r e s e n t a d a s n o c a p f t u l o a n t e Do r A o pe r a ção b l o c k b lo qu e ia o p r o c e s s o q u e a e x e c u ta e a o pe r a ção w a k e u p (p ) d e s b l o q u e i a o p r o c e s s o p e s pe c i f 1c a do c o m o a rg u m e n t o E s s a i - ö c s i m p l e m e n t a m u m a fo r m a de c o m u n ic a ção s i m pl e s , o n de n ão há pa s s a g e m dc i n f o r m a ç ão 42 A s i n c r o n i z a ç ão " a o pe r a ção A de P 1 de v e s e r e x e c u t a da a pós a o pe r a ção B de P2 - o b «ida d a m a n e i r a m o s t r a d a n a f i gu r a 6 2 丝 丝 b l o c k A B w a k e u p (P 1) F Ig u r a 6 2 A o p e r a ç ã o A v a i s e r e x e c u t a d a a p ó s a o p e r a ç ã o B 6 1 3 S i n c r o n i z a ç ã o t i p o b a r r e i r a E s t e t i po d e s i n c r o n i z a ção é c a r a c t e r i z a d o p e l o m e c a n i s m o c o n h e c i d o c o m o b a r r i e r (b a r r e i r a ) U m a b a r r e i r a B d e v a l o r n (i n t e i r o ) b l o q u e i a o s n 1 p r i m e i r o s p r o c e s s o s q u e e x e c u t a m a o pe r a ç ão g a t h e r ( B ) 4 3 Qu a n d o o n és i m o p r o c e s s o e x e c u t a e s s a o p e r a ç ão , t o d o s o s n p r o c e s s o s p r o s s e g u e m s u a s e x e c u çMes Po r e x e m p l o , s e f o r d e c l a r a d o " X : b a r r ie r i n i t i a l 3 " , o s 2 p D m e i r o s p r o c e s s o s q u e e x e c u t a r e m a o p e r a ç ão g a th e r (X ) v o f i c a r b l o q u e a d o s ; q u a n d o u m t e r c e i r o p r o c e s s o e x e c u t a r e s s a o pe r a ção , o s 3 p r o c e s s o s p r o s s e g u i r ão s u a s e x e c u çõe s n o r m a l m e n t e A f i g u r a 6 3 m o s t r a c o m o a o pe r a ç ão de j u n t a r d o i s p r o c e s s o s (b a r r e i r a de v a l o r 2 ) po de r i a s e r o b t i d a a p a r t i r d o s m e c a n i s m o s b to c k e w a k e u p (p ) N e s se e x e m p l o , o s p r o c e s s o s P l e p 2 i n i c i a r ão a s o pe r a çõ e s A e B " a o m e s m o t e m po " P l 丝 w a k e u p (P2 ) : w a k e u p(P 1) b l o c k ; b lo c k A B F1g u m 6 3 0 p r i m e i r o q u · c h 1 g 1 · r p r a p · Bo * 1 g u n d o 41 Qu a n do u m r i n a l n ao c o n d u z i n fo r m a ç=o e le e d i to 1e r u m s in a l p u m Em o u t r a i pa la v r a s u m s in a l pu r o n l o t r a n s fe r e da d o » de u m pï o c e 1 1o pa r a o u t r o , e le c o n du B a pe n a1 u m a in fo r m 1q1o de 1 i n c r o n iz aç1o qu e ¢ u sad a i n t - n t e pe lo * t mw t l do SO 4 3 A lbu m a u t o r e 1 u t i l i z a m a de n o m in aç 1o ban te r a o in v ëa de 吕 a t he r pa r a e r ta o pe r a ç&o pr i m i t i v 1 Scanned by CamScanner 80 s i s t e m a s o pe r a c i o n a i s e pTo8r ama£ C o n c o r r e n t e S S T o s c a n i R S d e g v e i r a e A s c ar i r s i 1n i 6 . 1 . 4 So b r e a n e c e s s i d a d e d a s o p e r a çõ e s b i l s l c a s A s o pe r a qöe s m u t e x b e g i n / m u re x e n d e b l o c k/ w a ke u p (p ) c o s t u m a m s e r c o n s i de r a d a s " s u f 1c ie n te i " p a r a i m p le m e n t a r q u a lq u e r e s q u e m a de s i n c r o n i z a ção o u p r o t o c o l o d e c o m u n i c aç ão qu e se i n 1a g i n e , c o m q u a lqu e r n ú m e r o de p r o c e s s o s C o m o a p a r t i r de q u a lq u e r u m a de s s a s oper aç (r n Bu e x be g i n l m u 1e x e n d o u b l o c k l w a lce u p (p )) po de s e s i m u l a r a o u t r a , p o d e s e d i z e r qu e a pm as u m a d e l a s j á é " s u f i c i e n t e " M a s , n a v e r d a de , " n a da " j á é s u f i c i e n t e , po i s a p a r t i r do n a d a (i s to , s e m u s a r n e n hu m r e c u r s o e s pe c i a l ) po de s e c r i a r q u a lq u e r m e c a n i s m o 44 Po r e x e m p l o , a s o lu ção de D e k k e r m o s t r a c o m o c o n s t r u i r u m m e c a n i s m o de e x c l u s ão m ú t u a p a r a 2 p r o c e s s o s s e m u sa r q u a l q u e r r e c u r s o e s p e c i a l e a s o l u ç ão de L a m p o r t f a z i s s o p a r a n p r o c e s s o s A s e ção a s e gu ir m o s t r a c o m o i m p le m e n t a r a s o pe r a çô e s bl o c k e w a ke u p (p ) " f r o m t he s c r a t c h " 6 . 2 C o n s t r u i n d o b l o c k / w a k e u p (p ) a p a r t i r d o n a d a O e x e m p l o a s e g u i r m o s t r a a i m p l e m e n t a ç o d a s o p e r a çõ e s b to c k e w a k e u p (p ) , f o r a d o k e r n e l s e m u s a r q u a l q u e r r e c u r s o e s p e c i a l O t r u q u e c o n s i s t e e m u t i l i z a r u m p r o c e s s o e x t r a (e s péc i e de s e r v i d o r ) q u e i m p l e m e n t a e s t a s o p e r a çõ e s p a r a o s d e m a i s A c o m u n i c a ç ão e n t r e u m " p r o c e s s o u s u á r i o e o s e r v i d o r é fe i t a a t r a v és de d o i s v e t o r e s g l o b a i s , d e n o m i n a d o s q u e r e o p e r , a m bo s c o m n e l e m e n t o s o n d e n é o n ú m e r o d e p r o c e s s o s V a D á v e i s g l o b a is q u e r a r r a y [n ] o f bo o 1e a n i n i t ia l f a l s e o p e r a r r a y [n ] o f in te g e r O s p r o c e s s o s u s u i o s e x e c u t a m a s o pe r a çõ e s b l o c k e w a ke u p (p ) c o m o m o s t r a d o a s e g u i r P r o c e s s o i I [ i [ n » b l o c k o p e r t i ] : - O ; / * r e q u i s i t a o pe r a ção b to c k * / q u e r M t r ue 】o o p e x h w he n n q u e r w e n d l o o p w a k e u p (k ) q u e r 【i ] : - t r u e ; / * r e q u i s i t a o pe r a ç ão w a ke u p (k ) * / l o o p e x h w he n q u e r M e n d l o o p m u i t o r edu z i do de in « r u çöe 1 Scanned by CamScanner C a p i tu lo 6 Si n - i z a çö cs B ás i c a s 8 1 C o m o s e v ë , ' " OCes s o 1 c o m u n ic a a o pe r a ç o a s e r e x e c u t a d a a t r a v s do e l e m e n t o o p e r { i ] V a l o r z e r o s ig n i fi c a b l o c k e v a lo r k s ig n i f ic a w a ke u p (k ) O p r o c e s so s e r v id o r é m o s rr a d o a s e g u i r A l m d o s v e t o r e s g l o b a i s o p e r e q u e r , o s e r v ido r u s a u m v e t o r l o c a l * e m qf de n e le m e n t o s , i n ic i a l i z a do c o m z e r o s , e a s v a Dáv e i s l o c a i s i e k P r o _ o s e r v i d o r Va r i d v e i s l o c a i s s e m a m y [n 】 o f i n t e ge r i n i t i a l 0 i , k i n t e g e r l o o p i : - ( i m o d n ) + l i f q u e r w t h e n i f op e r n O t h e n i f se1Ai ] > 0 / * o pe r a ção é b l o c k * / t h e n { s e m a A i ] : = s e m a A i ] 1 q u e r w f a l s e e l s e n o t h i n g e l s e ( k : = o p e r t i ] ; / * o pe r a ç ão é w a k e u p * / s e m a ßk ] : = s e m a j tk l + l q u e r w f a l s e e l s e n o t h i n g e n d l o o p T a l c o m o o c o r r e n o s a lg o r i t m o s de e x c l u s ão m ú t u a , a e s p e r a d e u m p r o c e s s o i m p l e m e n ta da a t r a v és de b u s y l o o p 6 . 3 A l i n g u a g e m W e a s s i n c r o n i z a çõ e s b á s i c a s A l i n g u a g e m W i m p l e m e n t a a s o pe r a çö e s m u t e x be g in / n Bu t e x e n d e bl o c k/ w a ke u p (p ) e x a t a m e n te c o m e l a s f o r a m d e f i n id a s n o k e r n e l de SO , v i s t o n o c a p í t u l o a n t e Do r E m b o r a n ão s e j a c o r r e t o d i z e r q u e a s o pe r a çö e s m u t e x b r g in / r n d e bl u c Bl w Be idp M o s u f ic ie n te s " p a r a r e s o l v e r p r o b l e m a s de s i n c r o n i z a çäo , s e m d úv ida po de s c d i z e r q u e e s t a s o pe r a çö e s s o a d e q u a d a s pa r a e s s e f i m E u m bo m e x e r c fc i o de pr o g r a n í1a q i lo s e M r e s o l v e r o s p r o b le m a s a p r e s e n t a d o s n e s t e l i v r o , u s a n do e s te c o n j u n t o de o pe r a çö e s (e x c r c fc io s se r ao p r o po s t o s n o d e c o r r e r d o te x t o , o po r t u n a m e n te ) N a s e ção 6 3 2 , a p r e s e n t a d o u m p r o g r a m a W c o m p le t o , q u e u s a a s o pc r a çöe s bás ic a s p u a r e s o l v e r o p r o b le m a de a l o c a r u m r e c u r s o de N u n ida de s pa r a u m c o n ju n to de p r o c e s s o s Scanned by CamScanner 82 s i s t e m 1 s OpeFci onr e - ® o c o n c o r r e n t e s s TOSCani . s de o l i v e i r a e A . s c ar i * iN i n d epe n de n te s E s s e p r o g r a m a u t i l i z a a lgu n s r e c u r s o s d e p r o g r a m a ção q u e s ão a pr e sm tados a s e gu i r 6 3 . 1 F i l a s e s i m u l a ção d o t e m p o n a l i n g u a ge m V 4 A l i n g u a ge m v a l e 4 o fe r e c e f a c i lida de s pa r a cr i açi o e u s o de f i l a s , j á qu e e s te t i po de e i tn Btu r a o c - f r e qü e n t e m e n t e e m a p l ic a çõe s c o n c o r r e n t e s A l i n gu a ge m t a m bém pe r m i te a s i ï m Blação da p a s s a ge m d o t e r n p o , du r a n t e a e x e c u ção de u m p r o g r a m a V a D áv e l t i p o q u e u e So b r e u m a v a r i áv e l X , de c l a r a d a c o m o s e n do do t i p o q u e u e , p o de m s e r a p l i c a da s a s se gu in tes o p e r a çõ e s e mp t y (X) , f un ç ão boo l ea n a qu e r e t om a t r ue se a f i l a X es t á va z i a c o u n 1 (X) , f un ç ão i nt ei ra qu e r et oma o t ama n h o da f i l a X * i n s e r 1(P , X ) , p r o c e d i m e n t o q u e i n s e r e o e le m e n t o P (v a l o r in t e i r o ) n o f i m da f i la X * ß r s 1 (X ) , f u n ção i n te i r a qu e r e t o m a o p r i m e i r o e le m e n t o d a f i l a X e r e m o v e e s se e le m e n to d a f i l a C o m a n d o s h o ld (K ) e y i e ld 0 c o m a n d o ho ld (K ) a t r a s a a e x e c u ção d o p r o c e s s o e m K u n id a d e s d e t e m p o Se K é z e ro , o e f e i t o l íq u i do é c o l o c a r o p r o c e s s o n o f i m d a r e a d y t i s l e p a s s a r a U C P pa r a o u t r o p r o c e sso O m e s m o e fe i t o de ho ld (0) é c o n s e g u i do c o m o c o m a n do y ie l d c u j a ún ic a f in a l idade é pas sar a d i a n t e o p r o c e s s a do r E s t e c o m a n do é ú t i l e m b u s y to o p s , q u a n do s e v e r i f ic a qu e n o há n ada pa r a f a z e r , a lém d e r e pe t i r o lo o p Pa r a i 呷 le m e n t a r o c o m a n do /1o ld (K ) , o a m b i e n te de e x e c u ç o w u s a u m a t& n iLa c o m u m d e s i m u l a ção d i s c r e ta , q u e é de s c D (a a s e g u i r o s i s te m a po s s u i u m r e ldg io , re p æ se n ca l o po r u m a v a r i á v e l i n t e i r a i n ic i a l iz a d a c o m z e r o , e e s s e r e lóg io po s s u i u m a l is t a de esp e ra a s so c i a da s e u m p r o c e s s o , n o te m po T (i s t o é , c o m a v a r i áv e l q u e r e p r e s e n t a o r e 1ö 吕 io v a le ndo 7) . E x e c u t a u m c o m a n do ho ld (K ) , e le c o l o c a do n a l i s t a de e s pe r a pa r a s e r a c o r dado n o tens o T+ K Qu a n d o a r e a dy i is i f i c a v a z ia , o v a lo r do r e lóg io é a tu a l i z a do pa r a o te m po do primei rl ) p r o c e s s o da l i s t a de e s pe r a (a l i s t a é o r ga n i z a d a n a o r de m c r e s c e n t e do s t e m po s ) e todo s os pr o c e s so s q u e a 吕 u a r da m po r e s s e m e s m o t e m po s üo m o v id o s da l is t a do r e lóg io pa r a a 1 ì¢Qdy lb t o t e n q»o a t u a l d o r e l óg i o po de s e l. Re f e r ido e m u m p r o g r a m a v 4 o tr a v s dos ide n t i fì c a do r e s c to c k t im e , c to c kT im e o u c u r r e n t t i m e , i n d i fe r e n te m e n te i = Scanned by CamScanner C a p« u lo 6 - z a ç û ca B ás i c a s 83 6 3 . 2 U m e x e m p l o O p r o g r a m a V 4 a s e g u i r u t i l i z a o pe r a çö e s m u t e x be g tn / m u t e x e n d c b l o c k / w a ke u p (p ) pa r a c o n t r o l a r a a l o c a ção d e u m r e c u r s o O p r o g r a m a i m p l e m e n t a a s o pe r a çöe s r e q u e s t e r e te m e , s e n d o u t i l i z a d a s a s e s t r u t u r a s de d a do s e o s a lg o r i t m o s j á a p r e s e n t a do s n a s e ção 4 1 0 p r o g r a m a e s tá c o m p le t o , t e n d o s i d o c o d i f ic a d o s , i n c l u s i v e , d o i s p r o c e s s o s p a r a r e a l i z a r c h a m a d a s pa r a a s o pe r a qð e s r e q u e s t e r e l e a s e % A l o c a ção d e u m r e c u r s o d e 5 u n i d a de s V 4 p r o g r a m R a m y [5 ] o f i n t e ge r T i n t e g e r Q q u e u e p r o c e d u r e r e q u e s t o r e t ur ns i n t e g e r b l o q u e a r b o o i e a n l o o p bl oquear - f al se m u t e x b e g i n i f T / 0 t h e n { b l o q u e a r = t r u e ; i n s e r t (m y s e l f , Q) } e l s e { r e q u e s t : = R [71 ; T = T l } m u t e x e n d i f b l o q u e a r th e n b lo c k e l s e e x i t e n d l o o p p r o c e d u r e r e l e a s e (U : i n t e g e r ) i d i n t e g e r m u t e x be g i n T = T + L ; R [71: = U . i f n o t e m p t y (Q) t he n { id = f i r s t (Q) ; w a k e u p ( id) } m u t e x e n d p r o c e du r e i n i c ia l i za o l o o p T = T+ l R t71 : = 6 T e x i t w h e n T= 5 e n d lo o p Scanned by CamScanner 84 s i s t e m a s o pe r a c io n a i s e n o w a m a ç* o Co n c o r r e n t e S S T o s c a n i , R S de O1i v e i r a y s . c ar i r 1im i p t o c e s s pl u i n t e ge r i nóauz ao w a k e u p(p 2 ) U = r e q u e s K) n l ; w D te (m y s e tj ) ; t a b ( 1) ; w Dt e (U ) : e 1 d e ( 1 a s ) ; (U) p r o c e s s p 2 U , K i n t e ge r b lo c k w hü e K 5 d o U r equest o n l ; w r i t e (m y s e t l ) ; t a b ( 1) ; w r i t e (U ) K = K + l e n d p r o g r a m E x a m i n a n d o o p r o g r a m a , p o de s e v e r q u e o p r o c e s s o p ì v a i i n i c i a l i z a r a s v a r iáv e is g l o b a i s , a t r a v s d o p r o c e d i m e n t o i n i c ia t i z a , e l o g o e m s e g u i d a v a i d e sb l o q u e a r o p r o c e s so p2 A s e g u i r , p l v a i r e q u i s i t a r u m a ún i c a u n i da de d o r e c u r s o e " d o r m i r p o r u m a u n i da de de te m po O p r o c e s s o p 2 v a i r e q u i s i t a r 5 u n i d a de s d o r e c u r s o , u m a a pó s a o u t r a C o m o u m a das u n i ó d c s v a i e s t a r a l o c a d a p a r a p ] , o p r o c e s s o p 2 v a i b l o q u e a r s e q u a n d o r e qu i s i t ar a qu i n t a u n i d a de e a r e a dy l i s t f i c a r á v a z i a o r e l óg i o do s i s t e m a v a i e n t o a v a n ça r pa r a o te m po 1 e (n e s s e t e m po ) p / v a i s e r de s pe r t a d o , v a i l ibe r a r a u n id a de qu e e l e po s s u i a e v a i te r m in ar sua e x e c u ção A u n id a de l i be r a d a po r p l v a i s e r v i r pa r a de s bl o q u e a r p 2 , q u e r e c e be r á su a qu in ta u n i da de e te r m i n a r á s u a e x e c u ção Po r t a n t o , a e x e c u ç tio do p r o g r a m a c o n c o r r e n te v a i te r m in ar c o m o r e l óg i o d o s i s te m a m a r c a n do 1 (u m a u n id a de de te m po ) 6 . 4 So \ u çã o d e p r o b \ e m a s c o m m u t e x be g i n l e n d e b l o c k lw a k e u p Em ge r a l , a so l u ç o de u m p r o b le m a a tr a v s d a s o pe r a çö e s n Bu t e x be g in / e n d e blo c u w a Bt up u t i l i z a , a lém da s e s t r u t u r as de da do s r e la t i v a s a o p r o b le m a , u m a f i l a g l o ba l pa r a e n c adc ar as id e n t i f 1c açöe s do a p r o c e s s o s b l o qu e a do s (v a m o s c ha m a r e s s a f i la de ß1a Bto q ) e u n 1a v ar iáve l PD v a t i v a de c a d a p r o c e s s o , pa r a i n d ic a r s e o m e s m o de v e b lo q u e a r o u n äo (v a m o s c ha ï n ar essa v a r i áv e l de b to q u e a r ) A s e quên c i a de pa s s o s , j á i l u s t r a da n o p r o g r a m a a n te r i o r , é aqu i re pe t i da Scanned by CamScanner C a p f ru l o 6 Si n c r o n i z a ço c s B ás i c a s 85 (a ) G a r a n t i r a e x c l u s o m ú t u a p a r a m a n i p u l a r o s d a d o s c o m p a r t i l h a do s C o m e x c l u s o m ú t u a g a r a n t id a , e x a m i n a r o e s t a d o d o s d a do s (s i t uaçi o a t u a l do s i s t e m a ) e (b 1) Se o e s t a do pe r m i t i r a e x e c u ção d a f u n ção de s e j a d a , e n t ão e x e c u t a r e s s a f u n ção e f a z e r b l o q u e a r - f a l s e (b 2 ) C a s o c o n t r ár i o , f a z e r b l o q u e a r - t r u e (n e s t e c a s o , o p r o c e s s o v a i b l o q u e a r s e n o p a s s o (d ) , l o g o a pó s l ib e r a r a e x c l u s ão m ú t u a ) e c o lo c a r s u a id e n t i f i c a ção n o f i m d e f 1ta B 1 (c ) L i b e r a r a e x c lu s ão m ú t u a (d ) Se b l o q u e a r - t r u e , e n t ão b l o qu e a r a s i m e s m o C a s o c o n t r ár i o p r o s s e g u i r n a e x e c u ç ão A o p e r a ç ão q u e b l o q u e i a o p r o c e s s o d e v e s e r r e a l i z a d a f o r a d o t r e c h o m u t u a m e n t e e x c l u s i v o p a r a q u e n ão o r r a s i t u a ção d e b l o q u e i o et e r n o (d e a d to c k ) O p r o c e s s o pe r m a n e c e r á b lo q u e a d o a t é q u e u m o u t r o p r o c e s s o m o d i f iq u e a c o n d i ç ão q u e d e t e r m i n o u o b l o q u e i o e o d e s b l o q u e i e S e a s o l u ç ão d o p r o b l e m a e s t i v e r c o r r e t a , p a r a c a d a o p e r a çã o b l o c k h a v e r á u m a o p e r a ção w a k e u p c o m p l e m e n t a 】 : N a v e r d a de , o s p r o b l e m a s d e s i n c r o n i z a ç ão e c o m u n i c a ç ão s e m p r e e n v o l v e m u m p a r de o p e r a çMe s c o r n p l e m e n t a r e s Po r e x e m p l o , e n t r a d a n a r e g i ão c r i t i c a e s a íd a d a r e g i ão c r i t i c a , r e q u e s t e r e te a s e , s e n d e r >c e i v e , e t c Se a s o l u ç ão e s t i v e r c o r r e t a , c e r t a m e n t e h a v e r á u m o u t r o p r o c e s s o q u e , n a o p e r a ção c o m p l e m e n t a r , i r á de s b l o q u e a r o p r o c e s s o q u e a n t e r i o r m e n t e s e b l o q u e o u 6 . 5 0 p e r a çMe s m u t e x b e g i n Tm u t e x e n d p a r a m e t r i z a d a s U r n a g e n e r a l i z a ç ão d a s o pe r a çõ e s m u 1e x b e g i n / e n d e n v o l v e a u t i l i z a ç ão de p a r m e t r o s Se e x i s t e m d i v e r s o s c o n j u n t o s de d a d o s i n de pe n de n t e s , po de s e a s s o c i a r a c a d a c o n j u n t o u m ide n t i f i c a do r , o q u a l p a s s a a s e r p a r âm e t r o pa r a a s o pe r a ç Me s n Bu t e x be g i n e m u t e x e n d A c a da ide n t i f i c a do r v a i c o r r e s po n de r u m a v a r iá v e l bo o le a n a e u m a t i l a d e e s pe r a A s o pe r a ç ð e s m u t e x be g i n / e n d , c o m e s t a g e n e r a l i z a ção , pe r m i t e m qu e c o n j u n t o s de d a do s i n de pe n de n t e s s e j a m a c e s s a d o s s i m u l t a n e a m e n t e N a da i m pe de q u e a s o pe r a çöe s pa r a m e t r iz a d a s s e j a m u s a da s de f o r m a a n i n ha da I nf el i zment e , e s s e a n i n ha m e n to to m a po s s ív e l a o c o rT ën c ia de b l o q u e i o s et er nos (d e a d lo c * s ) Pa r a e x e m p l i f i c a r , a f 1g u r a 6 4 m o s t r a u m c a s o e m q u e o s p r o c e s s o s f i c a r ão et c r nament e b l o q u e a do s s e p 1 c o n s e g u i r a c e s s a r o c o n ju n t o d e d a do s X e n qu a n to P2 e s t á a c e s s a n do o c o n j u n t o Y (e v ic e v e r s a ) Scanned by CamScanner 86 s i s t e m a s o pe r a c i o n a i s e pT o 8 r a m a ç=o C o n - S S T o s c a n i R S d e O1iv e ir a e A s E1 : E2 m u te x be g i n (X ) ; m u te x b e g i n (Y ) (u s a d a do s X ) ; (u s a d a d o s Y ) m u te x be g i n (Y ) ; m u t e x be g i n (X ) (u s a d a do s X e Y ) : (u s a d a do s X e Y ) m u te x e n d (Y ) ; m u te x e n d (X ) m u te x e n d (X ) ; m u te x e n d (Y ) F Ig u r a 6 4 P o s s :v e l s i t u a çã o d e d e a d lo c k 6 . 6 U m a ú l t i m a o b s e r v a çã o A i n da s o b r e o a s s u n t o d a s e ção 6 I 4 (n e c e s s i da d e da s o pe r a çõ e s b ás ic a s ) , c o n v ém di z e r o que s e g u e D e f a to , a t r a v és do s o f t w a r e de u m c o m p u t a do r q u a lq u e r (d e s de q u e ha ja m e m ór ia s u f i c i e n t e e t e m po d e p r o c e s s a do r à v o n t a de ) , é p o s s ív e l s i m u l a r q u a l q u e r o u t r o c o m pu ta do r e s e u s o f t w a r e I s t o s ig n i f ic a q u e , t e o r i c a m e n te q u a l q u e r h a r d w a r e q u e o fe r e ç a u m c o n ju n to m í n i m o d e i n s t r u çõ e s j á é s u f i c i e n te p a r a r e s o l v e r q u a lq u e r p r o b l e m a q u e s e j a r e s o l v ív e l po r c o 呷 u t a d o r p o r o u t r o l a d o , n ão de i x a de s e r v e r d a de qu e h a r d w a r e e s o f t w a r e a p r o p r i a do s fa c i l i tam a s o l u ç ão d c p r o b le m a s o i n t e r e s s e de s t e l i v r o é e s tu d a r o s m e c a n i s m o s u s a d o s n a c o n s tr u ção de s i s t ie m a s o pe r a c i o n a i s pa r a m áq u in a s c o m h a r d w a r e a p r o p r i a d o (c o m s i s t e m a de in te r r u pç o , i n s t r u çö e s p r i v i le g i a d a s , p r o te ção de m e m ó r i a , i n s t r u çõ e s t i p o t e s t a n d s e l , e tc ) E é is s o qu e se rá f e i t o da q u i pa r a a f r e n te A e s t r a tég i a s e r á e s t u da r o s m e c a n i s m o s u s a do s p a r a c o n s t r u i r s is te m as o pe r a c i o n a i s , n a o r d e m e m q u e e le s s u r g i r a m (i s t o é , d o s m a i s s i m p le s p a r a o s m ai s c o m p le x os) T a m bém s e r á e s t u d a do c o m o , a pa r t i r de u m m e c a n i s m o , p o de s e s i m u l a r o s o u tr o s , e p ar a isto e x i s te m do i s m o t i v o s : po r q u e é d i d át ic o e , s o b r e t u do , po r q u e é u m ó t i m o e x e r c íc io de p r o g r a m a ç ão 6 . 7 E X E R C FC l O S E x e r c fc i o 6 1 M o s t r e c o m o i m p le m e n t a r u m c o n j u n to de 1o b a r r e i r a s a pa r t i r do n a da Pe n 1 l i ta qu e c ad a u m a d a s 1o ba r r e i r a s po s s a s e r u s a da c o m u m v a lo r d i f e r e n te ( i s t o é , c ada b an e i ra poJ ' s e r u s ada pa r a a g r u pa r u m n ú m e r o di fe r e n te de p r o c e s s o s ) E x e r c fc i o 6 2 Su po n do q u e e s tao d i s po n f v e i s a s o pe r a çö e s n i u t e x be g i n / e n d , m o s tre co m o i m p le m e n t a r a s o pe r a çõe s bl o c k/ w a k e u p (p ) (N äo p r e c is a u s a r u m p r a c e s s o e x t r a ) / A Scanned by CamScanner C a p t 6 Si n c r o n i z a çö e s B s i c a r 87 E x e r c f f io 6 3 Su po n d o q u e e s t o d i s p o n í v e i s a s o pe r a çö e s b to c k e w a ke u p (p ) , m o s t r e c o m o i n q»le m e n t a r a s o pe r a çöe s m u 1e x be g i n / e n d Fa ç a i s t o p a r a o c a s o de d o i s p r o c e s s o s E x e M i o 6 4 C o n s id e r a n d o a i m p l e m e n t a ç ão d a s o pe r a çõe s b l o c k e w a k e u p (p ) a pa r t i r do n a d a (s e ição 6 2 ), d i g a s e o c o m a n d o l o o p d o p r o c e s s o s e r v i d o r po de s e r s u b s t i t u fdo pe l o q u e s e g u e l o o p i : - ( i m o d n ) + i i f q u e rm th e n i f o p e r n O t he n { s e n 1a í t i ] : = s e m a l . i ] 1 ; / * o pe r a ção é b l o c k * / i f s e n zqM | o t he n q u e r M f a l s e e l s e { k : = o p e r t i ] ; / * o p e r a ç o é w a k e u p * / s e m M k ] : = s e m a j l k l + l i f s e m a ñ k ] = O t he n q u e r tk ] : - f a l s e q u e r w f a l s e e l s e n o t h i n g e n d l o o p E x e r c : c i o 6 5 U s a n d o a l i n g u a g e m V 4 , e s c r e v a u m p r o g r a m a c o m 6 p r o c e s s o s q u e s a t i s f a ç a o g r a f o d e f l u x o d e p r o c e s s o s d o e x e r c íc i o 3 1 0 p r o g r a m a de v e u t i l i z a r a pe n a s o pe r a ç Me s b l o c k e w a ke u p (p ) E x e r c íc i o 6 6 U s a n d o a l i n g u a g e m W c o m s u a s o pe r a çõ e s m u t e x b e g i n , m u t e x e n d , b l o c k e w a ke u p (p ) , c o n s t r u a u m a lg o r i t m o p a r a a g r u p a r n p r o c e s s o s ( i s t o é , s i m u l e a o pe r a ção g a 1he r p a r a u m a b a r r e i r a c o m v a l o r i n i c i a l n ) E x e r c í c i o 6 . 7 M o s t r e c o m o po d e r i a s e r f e i t a a i m p le m e n t a ç o de ba r r e i r a s n o k e r n e l de u m s i s t e m a o pe r a c i o n a l E x e r c i c 1o 6 8 N o p r o g r a m a a p r e s e n t a do n a s e ç o 6 3 2 , o r e c u r s o é f o r m a \ l o po \r 5 u n id a de s id ên t i c a s C o n s i de r e a g o r a q u e , a o i n v és de u m ún ic o r e c u r s o c o m 5 u n id a de s . s e te n ha 5 r e c u r s o « d i s t i n t o s c a d a u m c o m u m a ún i c a u n id a t le U s a n d o o pe r a çò e s N Bu l e ¥b eg in / r rBu t t x e n d e bl o c k l 1v a k t u p (p ) , c o n s t r u a a s o pe r a çö e s r e q u e s t (R) e r ¬ I ¬ a s r (R) , t 》n de R u m i n te i r o (A s o r a . o a r gu m e n t o de r e q u e M pa s s a a s e r u m a r g u m e n t o d e e n t r a d a ) E x e r c l c 1o 6 9 I m a g i n e q u e a s o pe r a çö e s n Bu l ¬ x b ¬ g in / n 1u l e x ¬ n d e b l o c Bl w a * e u p (p ) e s te ju n r e l a c i o n a d a s e n t r e s i , da s e g u i n t e m a n e i r a (c o m n o v a s e m an t ic a ) A s o pe r a çöe s b l o c k e w a ke u p (p ) de v e m o b r i g a t o Da m e n t e , s c r e x e c u t a d a s de n t r o de u m pa r m u t e x be g in n ru t e x e n d (i s to Scanned by CamScanner 88 s i s t e m a s o pc - e p r o 吕 r a 1n a çüo C o n c - S s T o s c a n i R s de O l ig r a a s m j , d e n u \o d c u m a r e g i o c r f t i c a ) A o pe r a q o b lo c k , a l m d e b lo q u e a r o p r o c e s s o , l ibe r a o a c e sso à r e g i ão c r f t i c a (c o m o s e o b l o c k t i v e s s e u m m u t t x e n d i m p l :c i t o ) e a o pe r a ç o w a ke u p (p ) , a lém de d e s b lo qu e a r o p r o c e s s o p , p a s s a o c o n t r o le da r e g i o c r f t i c a p a r a o m e s m o C o m e s s a s n o v a o p e r a çö e s , ï e s o l v a 0 p r o b l e m a de a l o c a r u m r e c u r s o p a r a u m c o n j u n t o de p r o c e s s o s (* çäo 6 3 2 ) p a r a n £io c a u s a r c o n f u s ão , de n o m i n e a s n o v a s o pe r a çõ e s d e n e w m u 1e x be g in , n e w m Æ e x e n d , n e w b l o c k e n e w w a ke u p (p) E x e r c í c i o 6 10 U m p a r d e p r o c e s s o s s e c o m u n i c a a t r a v és de u m v e t o r d e 5 e l e m e n t o 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 r o d u z n ú m e r o s p a r e s e o s c o l o c a n o v e to r O s e g u n d o , d e n o m i n a d o c o n s 1u ?1i do r , r e t i r a o s n ú m e r o s d o v e t o r (u m p o r v e z , n a m e s m a o r de m e m q u e e l e s f o r a m c o l o c a d o s ) , i n c r e m e n t a o i d e 1 e i m p r i m e o s O e s q u e l e t o d e s s e s i s te m a é m o s t r a d o a s e g u i r C o m p l e t e o p r o g r a m a u s a n d o a s o p e r a çõ e s m u t e x b e g in / m u l e x e n d e b l o c k / w a k e u p (p ) (Qu a n do o v e t o 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 e q u a n do o v e to r e s tá v a z i o , o c o n s u n 1i d o r d e v e s e b l o q u e a r ) V a D á v e i s g l o b a i s v e t : a r r a y [5 ] o f i n t e g e r i n , o u t i n t e g e r i n i t i a l l c o u n 1 : i n t e g e r i n i t i a l O ; % p o s i ç õ e s p r e e n c h i d a s n o v e t o r 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 : i n t e ge r i n i t i a l O, m s g : i n t e g e r l o o p l o o p m s g : = n zs g + 2 o u t : = (o u t m o d 5 ) + l in : = ( i n m o d 5 ) + l ; m s g : = v e t [o u t j + l v t l t i n ] : = n ï s g ; n l ; w r i t e (m s g ) e n d l o o p e n d lo o p p a r a m e t r i z a d a s a p a r t i r d a s o pe r a çö e s bás i c a s )
Compartilhar