Baixe o app para aproveitar ainda mais
Prévia do material em texto
Scanned by CamScanner A n e A o A A L I N G U A G E M V A L E 4 Y d e s p u és d e e s t a s pa l a b r a s D e s e n s i l la r o n lo s p i n g o s q u e y a l a i n t e n c ió n r e v e la n y s e s e n t a r o n e n r u e d a p r o c u r a n d o l o s p r e s e n t e s r e f i Dén d o s e e n t r e s f qu e n o s e - pe n d e n c i a i n f i n i t a s m e n u d e n c i a s s e pu s i e r o n de po r m e d i o po r qu e t i e n e m u c h o s c u e n t o s y l a c o s a qu e dó qu i e ta y m u c h o s h ij o s 1a a u s e n c i a M a r t fn f f ie r r o y lo s m u c h a c ho s A l l f p a s a r o n l a n o c he e v i t a n d o la c o n t i e n da a l a lu z d e 1a s e s t r e l la s m o n t a r o n y p a s o a pa s o po r qu e s e e s u n c o r t i n a o c o m o e l qu e m i e do n o l le v a q u e 1o h a l l a u n o do n d e qu i e r a a l a c o s t a de u n ar r o yo y e l ga u c ho s a be a r r e g l a r se l le ga r o n a e c h a r p i e a t i e r r a c o m o n i n g u n o s e a m eg la E s te a n e x o d e s c r e v e a s i n t a x e e a s e m ân t i c a d a l i n g u a g e m V a l e 4 (V 4 ) , a s c a r a c t e r fs t i c a s d a m áq u i n a v i r t u a l v 4 V M e o a m b i e n te d e e x e c u ç ão c o r r e s p o n de n t e A lém d i s s o , de s c r e v e o c ód i go o b j e to ge r a d o pe l o c o m p i l a do r , a p r e s e n t a p r o g r a m a s e x e m p l o s e c o m e n t a o s e r r o s de p r o g r a m a ç ão m a i s c o m u n s A . 1 A s i n t a x e d a l i n g u a g e m V 4 A s i n t a x e e s pe c i f 1c a da d e m a n e i r a i n f o n n a l n a s s u b s e ç öe s q u e s e g u e m Scanned by CamScanner 2 16 s i s t e m a s o pe r a c i o n a is e .iÆ Em a ç o c o 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 SSSi mi A 1 1 F o r m a t o d e u m p r o g r a m a U m p r o g r a m a V 4 t e m o s e g u i n t e f o r 1n a t o V 4 p r o g r a n 1 D ; B e n d p r o g r a 1n o n d e D é um a l i st a de de c l ar a ç ôe s sep a r ad as po r " " . s co mp on e n t es de s t a l ist a pod em sET d e c l a r a çMe s d e v a r iá v e i s , de c l a r a çõ e s de p r o c e d i m e n t o s e / o u de c l a r a çõe s de m o n i t o r e s A qu i s ão de c l a r a do s o s c o m p o n e n te s in a t i v o s do p r o g r a m a , i s t o é , o s c o m p o n e n t e s qu e n ão t êm v i da p r ópD a B é um a l i si a d e b l oc o s s e p a r a d o s p o r " " . s c o m p o n e n t es d a l i st a B p od em s er p r o c e s s o s e / o u t a s k s E s t e s c o m po n e n t e s s ão a t i v o s (p o s s u e m v i d a p r óp r i a ) e c o n s t i t u e m a s u n i d a d e s d e e x e c u çã o do p r o g r a m a A 1 2 P a l a v r a s r e s e r v a d a s e c o m e n t á r i o s A l i s t a de p a l a v r a s r e s e r p a d a s r e s u m e , de c e r t o m o d o , a s de c l a r a çõ e s e c o m a n d o s u s a do s pa r a c o n s t r u i r p r o g r a m a s A s s e g u i n t e s p a l a v r a s s ão r e s e r v a da s e n ão p o de m s e r u s a da s c o m o i de n t i f i c a d o r e s V 4 p r og r am i nt eg e r , b o o l ea n , s e ma p h o r e , i ni t , i ni t i al , q u e u e , a r r a y , p r oc e d u r e , r et ur ns , p r o c e s s , i n l i n e , r e a d , w r i t e n l , t a b , w h i l e , d o f o r e v e r , l o o p , e n d l o o p , e x i t , w h e n , i f , t he n , e l s e , n o t hi n g , a n d , o r , n o t , m o d , m u t e xb e g i n , m u t e x e n d , l o c k , u n l o c k , b l o c k , w a k e u p , p , V , y i e ld , ho ld , m o n i t o r , e n d m o n i t o r , c o n d i t i o n , p D o r i t y , i n i t i a l l y , w a i t , s i g n a l , e M p t y , c o u n t , f i r s t , i n s e r t s e n d , n b s e n d , r e c e i v e , t a s k , e n d t a s k , e n t r y t h r e a d , m a i n , i s , a c c e p t , f o r k , n e w , j o i n , q u i t , m y s e l f , m y l d , ge t l d , r a n do m c l o c k T i m e , de b u g 1, de bu g2 , n o d e b u g , e x e c , p a u s e , e n d , e n dp r o g r a m (V c r d i s po s i çõ e s ° a n s i tó D a s , n o f i n a l de s t e m a n u a l ) C o m e n ¢áD o s po de m s e r i n t f o du z i d o s e m q u a l qu e r l u ga r do p r o g r a m a , da m a n e i r a u s u a l , i s to de l i m i t a do s po r / · e # / o u i n i c i a n d o po r % , c a s o e m q u e t o d o o r e s t o d a l in h a é c o ment ár A . 1 . 3 D e c l a r a çõe s d e v a r i áv e i s Se n do k , m e n c o n s t a n te s i n t e i r a s e T u m e le m e n t o d o c o n j u n to { i l 1l e g e r , bo o l e a n , q u e u e , s e m a p ho r e , c o n d i t i o n } , a s d e c la r a çõ e s v M id a s s o * i d : T i n i t k * id a r r a y [n ] o f T i n i t k i da r r ay [ m, n ] o f T i ni tk Scanned by CamScanner A n e x o A A L i n gu a g e m V a l e 4 2 17 A c l áu s u l a i n i t , q u e t a m bé m p o d e s e r e s c r i t a i n i t ia l , ë o p c i o n a l N o c a s o de s e r u s a d a n a de c l a r a ç ão d e u m a m a t r i z (o u v e t o r ) , t o d o s o s e l e m e n t o s r e c e b e m o m e s m o (ú n i c o ) v a l o r , e s pe c i f i c a do p o r k Pa r a o t i p o bo o l e a n , o v a l o r i n i c i a l de v e s e r t r u e o u Ja b e O s t i po s q u e u e e c o n d i t i o n n ão a d m i t e m i n i c i a l i z a ç o A o i n v és de u m ú n i c o ide n t i f i c a do r , po de s e e s p e c i f i c a r u m a l i s t a de i d e n t i fi c a do r e s s e p a r a d o s po r " , " N e s t e c a s o , s e fo r e spe c i f i c a do u m v a lo r i n i c i a l , e s s e v a l o r s e a p l i c ó a t o d o s o s i d e n t i f i c a d o r e s d a l i s t a A 1 4 P r o c e d im e n t o s » p r o c e s s o s , m o n i t o r e s , t a s k s e b l o c o s i n l in e Se n d o I d u m i d e n t i f i c a d o r , D u r r 1a l i s t a d e d e c l a r a çMe s de v a r i áv e i s s e p a r a d a s p o r " " i t a l c o m o e spe c i f i c a d o n a s e ção a n t e r i o r ) , T o t i p o in t e g e r o u bo o te a n e C u m c o m a n d o , t e m s e q u e * 0 f o r m a t o d e u m p r o c e d i m e n l o é p r o c e d u r e I d ( D ) r e t u r n s T D C s e n d o q u e a c l áu s u l a r e t u r n s é u t i l i z a d a a p e n a s n o s p r o c e d i m e n t o s d o t i p o f u n çã o O B S n ão é p e r m i t i d a a d e c l a r a ção d e a r r a ys e n t r e o s a r g u m e n t o s o u e n t r e a s v a r i áv e i s l o c a i s d e u m p r o c e d i m e n t o 0 for ma t o de um p r o c e s s o é p r o c e s s I d D ; C * 0 f o r m a t o d e u m m o n i t o r é m o n i t o r I d : D D p r o c i n i t i a l l y C e n d m o n i t o r o n de D p r o c u m a l i s t a de p r o c e d i m e n t o s s e p a r a do s po r " ; " o s q u a i s v ao s e r e x e c u t a do s d e fo r m a m u t u a m e n te e x c l u s i v a , q u a n do c h a m a do s pe l o s p r o c e s s o s E m u m m o n i t o r . a l i s ta d e v a r i áv e i s D p o de i n c l u i r o s t i po s c o n d i t i o n e p r i o r i t y c o n d i t i o n . e o s p r o c e d i m e n t o s de D p ro c po d e m i n c l u i r a s o pe r a çöe s w a i t e s ig n a i A c láu s u la i n i t i a l l y C o pc i o n a l 0 for ma t o de um a las k t a s k I d 1s D D p r o c t h r e a d m a i n 1s C e n d t a s k E m u m a t a s k , a l i s t a de p r o c e d i m e n t o s D p r o c po de i n c l u i r p r o c e d i m e n t o s d o t i po e n t r y U m p r o c e d i m e n t o t ip o e n t r y t e m a pe n a s o s e u c a be ça lho de c l a r a do (u s a n do a m s m a Scanned by CamScanner 2 18 s i s t e m a s Ope r a c io n a i s e pTo g r a m a çao c o n c o r r e n t e S S T O R S de O l i v e i r a e A S Ca r i ss i m i s in t a x e de u m c a b e ça l ho de p r o c e d im e n t o , m a s t r o c a n d o a p a la v r a " Pr o c e d u r e " po r " e n t r y " ) O c o r p o d a e n t r y v a i s e r e s pe c i f i c a do n o c o m a n do a c c e p t q u e r e f e r i r e s s a e n t r y I s t o s ig n i f i c a qu e e s te t i po de p r o c e d i m e n t o p o de e x e c u t a r d i fe r e n t e s c ó«l i go s e m f u n ção do po n t o e m q u e o a c c e p t é e x e c u t a do (i s t o é o q u e s e de n o m i n a p o l i m o d ìs m o ) O c o m a n d o C d a t h r e a d m a i n po de s e r u m b l o c o e in c l u i r c o m a n do s f o r k , j o i n e q u i t pa r a m a n i pu l a r i h r e a da É i n t e r e s s a n t e n o t a r qu e u m a t a s k qu e n ão po s s u a p r o c e d i m e n to s n e m e n t r ie s e q u e t e n ha a pe n a s a t h r e a d m a i n (i s t o é , qu e n ão c De o u t ï a s t h r e a d s ) v a i s e r , e m t u d o , e q u i v a le n te a u m p r o c e s s o 0 for ma t o de um bl oc o i nl i ne é i n l i n e I d ; L i o n d e L i é u m a l i s t a d e i n s t r u çõ e s d e m áqu i n a , n o f o r m a t o d o c ód ig o q u e é g e r a do pe lo c o m p i l a d o r (v e r e x e m p l o a d i a n te ) O b l o c o i n l i n e pe r m i te a i n t r o d u ção d e c ód ig o de m áq u i n a e m q u a l q u e r l u g a r d o p r o g r a m a E s t e b l o c o p o d e s e r u s a d o n o n í v e l g l o ba l (m e s m o n í v e l d o s p r o c e d i m e n t o s , p r o c e s s o s , m o n i t o r e s e t a s ks ) o u d e n t r o de u m p r o c e d i m e n t o , p r o c e s s o , m o n i t o r o u t a s k O " N o f i n a l d a l i s t a d e i n s t r u çõ e s L i é o bDg a tó r i o A 1 5 0 u t r a s f o r m a s d e e s p e c i f i c a r p r o c e s s o s E x i s t e m d u a s o u t r a s m a n e i r a s de e s pe c i f i c a r pr o c e s s o s : de c l a r a ção de a r r a y d e p r o c e s s o s e de c l a r a ç ão de m o d e l o (l e m p 1a l e ) de p r o c e s s o 0 for ma t o de um ar r qy de p r o c e s s o s é p r o c e s s I d ( v a r = k 1 t o k z ) ; D ; C o n de k 1 e k z s ão c o n s t a n te s i n t e i r a s C o m i s s o , s ão c r i a do s k 1 k t + l e x e m p l a r e s ( i n s t ân c ia s , c lo n e s ) d e s s e p r o c e s s o C a d a c lo n e po s s u i u m a v a r i áv e l lo c a l i n te i r a , de n o m in a d a v a r , q u e é i n ic i a l i z a da c o m u m v a l o r d i s t i n to e n t r e k 1 e k z T o da s a s i n s t ân c i a s s ão c r i a d a s e s t a t i c a m e n t e , a n te s do in fc io da e x e c u ção d o p r o g r a m a c o n c o r r e n t e O B S a ún i c a d i fe r e n ça e m r e 1a ç o à fo r m a s i m p le s de d e c la r a r p r o c e s s o é a e s pe c i f i c a çäo i v a r = k 1 t o k 1) , lo g o a pös o n o m e d o p r o c e s s o Scanned by CamScanner A n e x o A A L i n g u a g e m V a le 4 2 19 0 for ma t o de um mo d e l o de pr o c e s s o p r o c e s s t y p e I d ( D ) ; D i C A s i n s t ân c i a s d e s s e m o d e l o v i o s e r c r i a d a s d in a m i c a m e n t e , d u r a n te a e x e c u ç ão , a t r a v s d e c o m a n d o s n e w O B S a s i n t a x e é e x a t a m e n t e a m e s m a d e u m p r o c e d i m e n t o d o t i p o s u b r o t i n a , po r é m t r o c a n d o a e s pe c i f i c a ç ão " p r o c e d u r e " po r " p r o c e s s t y p e " A 1 6 C o m a n d o s , o p e r a d o r e s e f u n çõe s p r é d e f i n i d a s O s c o m a n d o s d e u m p r o g r a m a s ão s e p a r a d o s p o r " ; " (v e r o b s e r v a ção s o b r e o m a u u s o de " ; " n a s e ção A 8 ) A l i s t a d e c o m a n d o s V 4 é m o s t r a d a n a f+g u r a A 1 1 V a r = E A · P ( Se m ) * i f th e n C , e l s e C 2 · V ( Se m ) 1 w h i l e E L d o C · y i e ld 1 d o f o r e v e r C · h o ld ( T i m e ) 1 lo o p C 1 C ; ; C . e n d 1o o p · w a i t ( C o n d ) { C1 ; Cz ;. C. . } · w a i t ( Co n d , P r i or ) r ea d ( Va r ) · s i gna l ( Co n d ) w r i t e ( Va r ) · s e n d ( Pr oc e s s l d, s g ) n l · n b _ en d ( Pr o c e s s l d, M s g ) * ta b ( K ) · r e c e i v e ( Pr o c e s s l d M s g ) n o t hi ng · i d : = f or k7 7 m u t ex b eg i n · i d : =n e w P n a me ( ar g1 . r gz . a r gw) 1 m u t e x e n d · j o i n ( id ) * lo c k · q u i t 78 1 u n lo c k · d e b u g l i ns er t ( i d, Q ) · d e b u g 2 i ns er t ( i d, Q, P r i or ) ' n o d eb u g i d : = f i rs t ( Q )' P au s e b l oc k 1 e x e c ( No me ) 1 w a k e u p ( id ) 1 a c c e p t E t ( a r g i : T 1 : a r g z : T r ; : a r g N : T N ) r e t u r n s T w he n E L d o C F Ig u r a A 1 c o m a n d o 1 d 1 l in g u a g e m V 4 7 7 T a m b m po de se r u s a d a a fo r m a fo r k o ?B O pc i o n a l r11e n t c o q u i t po de e s pe c i f i c a r u m a r 吕 u m e n t o Scanned by CamScanner 22 0 S i s t e m a s O pe r a c io n a i s e p r o g r a m a ç1o C o n c o r r e w S S T o s c a n i , R S de O l i v e i r a e A S C a r i s s i m i N a f i g u r a A 1, C é q u a l q u e r u m do s c o m a n d o s 1á c o n t i d o s , Va r é u m a v a r i áv e l (p o de s e r u m e l e m e n t o d e a r r a y ) , EA é u m a e x p r e s s ão a r i t m ét i c a , EL u m a e x p r e s s ão ló g i c a , K é u m a c o n s t a n t e o u v a r i áv e l i n t e i r a , id é u m id e n t i f ic a do r d e p r o c e s s o o u de t h r e a d , Q é u m a v a r i áv e l d o t i p o q u e u e , Se n i é u m a v a r i á v e l do t i p o s e m áfo r o , Tim e é u m a c o n s t a n t e o u v a r i áv e l i n te i r a , c o n d é u m a v a r i áv e l d o t ip o c o n d i t i o n e p r io r é u m a c o n s ta n te o u v a Dáv e l i n te i r a N o s c o m a n d o s s e n d l r e c e í v e , p r o c e s s l d é u m a i de n t i f i c a ção d e p r o c e s s o 79 e M s g é u m a m e n s a ge m N o c o m a n d o n e w , p n a m e é u m n o m e d e l e m p ta l e de p r o c e s s o N o c o m a n d o a c e e p l , E r é u m a e n t r y d e c l a r a d a n a t a s k e m q u e o c o m a n d o a c c ep t é e x e c u t a d o O s o p e r a d o r e s d a l in g u a g e m s ão o s s e g u i n te s O p e r a d o r e s ar i tmé 1 i co s + , - * , 1 e mo O p e r a d o r e s l óg i co s : an d , o r e no t ( qu e t amb ém po d e m se r es c r i tos co m o & , e - ) * O p e r a d o r e s r e 1a c i o n a i s > , - , < > = , = < e Ç N ão e xi s t e m o s o p e r a d o r e s a r i t m é t i c o s * * e m e n o s u n á r i o E m u m a e x p r e s s ã o l óg i c a , s ão pe r m i t i d o s a p e n a s o p e r a d o r e s l óg i c o s e r e l a c i o n a i s (n ilo s ão a d m i t i d o s o p e r a d o r e s a r i t m é t i c o s ) Po r e x e m p l o , a e x p r e s s ão l ó g i c a d o c o m a n d o " i f (i + j ) > 2 t he n " é in v ál id a (n e s t e c a s o , a s o lu ção é f a z e r " k : = i+ j ; i f k > 2 t he n " ) N ão h á p r e c e d ên c i a e n t r e o s o pe r a do r e s a n d e o r Se a o r de m d e a v a l i a ção d e s e j a d a n ão é " d a e s q u e r d a p a r a a d i r e i t a " , a m e s m a de v e s e r f o r ç a da pe l o l I s o d e p a r ên t e s e s A l i n g u a g e m o f e r e c e a i n d a a s s e g u i n t e s j u n çõ e s p r é d e f i n i da s e mp t y ( Q ) · g e t l d ( Pr oc e s s Na me ) c o u n t ( Q ) · r an d om ( K ) 1 m y s e l f · c l o c k T i m e A . 1 . 7 C h a m a d a s d e p r o c e d i m e n t o s e :n d i c e s d e a r r a y s N ão e x i s t e c o m a n d o Ga l t A c ha m a d a de u m p r o c e di m e n t o é f e i t a e s c r e v e n do s e u n o m e s e gu ido do s a r g u m e n t o s e n t r e p a r ên te s e s Se o p r o c e d i m e n t o é i nt er no a a lg u m b l o c o (m o n i t o r o u t a s k) , e n t ão o n o m e de v e s e r p r e f ix a d o p e l o n o m e do b l o c o Po r e x e m p l o , p a r a c h a m a r o p r o c e d i m e n t o p r o c d o m o n i t o r m o n c o m a r g u m e n t o s a 0 e a 2 , o c o m a n d o de v e s e r " m o n p r o c (a l , a 27 ' 7 9 0 p r o c e s s o p o d e s e r ide n t i f i c a do pe l o s e u n o m e o u pe lo s e u n k m e r o ún i c o Scanned by CamScanner A n e x o A A L i n g u a g e m V a l e 4 2 2 1 O b s e r v a ç o i m p o r t a n t e N a c h a m a d a d e u m p r o c e d i m e n t o , o s a r g u m e n t o s d e v e m s e r v a r i áv e i s s i m p le s (n ão i n d c x a d a s ) s e p a r a ção d o s a r g u m e n t o s é p o r " " ' " ' N o c a b e ça l ho (de c la r a ç ão ) d o p r o c e d i - t o a R e s t Dç ão s e m e l h a n t e s e a p l i c a a o s ín d i c e s do s a r r a y s E s t e s , a lém de s e r e m v a r i áv e i s s i r n p l e s o u c o n s t a n t e s , d e v e m s e r d o t i p o i n t e i r o E n f a t i z a n d o , u m a r gu m e n t o o u u m ín di c e de a r r a y n ão p o d e s e r e x p r e s s ão n e m v a r i áv e l i n d e x a d a (r e f e r ên c i a a e l e m e n t o d e a r r a y ) C o n t u do , p a r a a s p Dm i t i v a s e f u n ç õ e s p r é d e f i n i d a s (P , V , w a i t , in s e r t , c o u n t , e t c ) , n ão h á p r o b l e m a e m s e u t i l i z a r e l e m e n t o s d e a r r a y p o r e x e m p l o , o c o m a n d o i n s e r t (m y s e l j , j ì la [ i ] ) é v ál i do A . 2 A s e m â n t i c a i n f o r m a l d a l i n g u a g e m V 4 E s t a s e ç ão d e s c r e v e a s e m ân t i c a d o s c o m a n do s V 4 , b e m c o m o o s i g n i f i c a d o d a s v a r i á v e i s e f u n çõ e s p r é d e ' n id a s n o s i s t e m a V a r = E A É o t r a d i c i o n a l c o m a n d o d e a t r i b u ição N o c a s o d e V a r s e r b o o 1e a n a , o l a d o d i r e i t o t e m q u e s e r u m a e x p r e s s ão b o o l e a n a i f E L t h e n C É o t r a d i c i o n a l c o m a n d o c o n d i c i o n a l , s e m a c l áu s u l a e ts e i f E r Th e n C 1 e l s e C z É o c o m a n d o c o n d i c i o n a l n a s u a f o r m a c o m p le t a w h i l e E r Do C É o t r a d i c i o n a l c o m a n d o i te r a t i v o d o f o r e v e r C R e pe t e o c o m a n d o C i n d e f i n id a m e n t e (c i c lo i n f i n i to ) l o o p C 1 C 1 ; . ; C . e n d l o o p T a m b ém r e p e t e o s c o m a n d o s i n d e f i n id a m e n te . M a s p e r m i t e q u e s e e s pe c i f iq u e s a fd a s d o l o o p a t r a v s d e c o m a n d o s e x i t o u e x i t w h e n E L ao 1o C o m a n d o s e x i t s ó p o d e m s e r u s a d o s d e n t r o de c o m a n do s l o o p Scanned by CamScanner 222 Si s t e m a s o pe r a c io n a i s e p r o g r a m a çäo C o n c o r T c n t e S S T o s c a n i R S d e O l i v e i r a e A S Ca r i s s i m i É o t r a d i c i o n a l c o m a n d o c o m p o s t o o u b lo c o de c o m a n d o s A s e q u ên c i a d e l i m i t a d a pe la s c ha v e s é c o n s i d e r a d a c o m o u m ú n i c o c o m a n d o r e a d (X ) A g u a r d a q u e o u s u ár i o e s c r e v a n o s e u te r m in a l u m v a l o r , q u e de v e s e r c o n d iz e n t e c o m o t i po da v a r i áv e l x o v a l o r l i d o é a t r ib u íd o à v a r i áv e l x , q u e po de s e r in d e x a d a w D t e (X ) E s c r e v e o v a l o r de X n o v íde o d o t e r m i n a l do u s u ár i o X p o de s e r u m a c o n s t a n t e , u m a v a r i áv e l s i n 】p l e s , u m a v a r i áv e l i n de x a da o u u m s t r in g e n t r e a pó s t r o f e s t a b (K ) E s c r e v e K e s p a ço s e m b r a n c o , o n d e K é u m a c o n s t a n te i n te i r a n l M u d a a i m p r e s s ão p a r a u m a n o v a l i n h a n o t h i n g F a z n a da (c o r r e s po n de a u m " n o o pe r a t i o n ' ) m u t e x b e gi n C 1 ; C z ; ; C n : m u t e x e n d U m p r o c e s s o s ó e n t r a n 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 1e x be g i n / m u t e x e n d s e n e n h u m o u tr o p r o c e s s o e s t á e x e c u t a n do e m u m o u t r o t r e c h o de l i m i t a d o de s s a m a n e i r a I s t o é , o pD m e i r o p r o c e s s o q u e e n t r a n u m t r e c h o c r i t i c o tr a n c a a e n t r a da do s d e m a i s e m o u t r o s t r e c ho s c r i t i c o s N a v e f d a d e , o s c o r n a n do s m u l e x be g in e m u 1e x e n d n ão fo r m a m u m a e s tr u t u r a s i n t át ic a ( i s to é , n o p r e c i s a m e s t a r c a s a do s , c o m o s e f o s s e m u m a b r e e u m fe c ha p a r ên t e s e s ) El e s s ao c o m a n do s i n d e pe n d e n t e s l o c k É s i n ô n i m o d e m u t e x b e g in O p r i m e i r o p r o c e s s o q u e e x e c u t a e s t e c o m a n do pa s s a e t r a ï 1c a a p a s s a g e m (c ha v e i a a fe c ha du r a ) p a r a o s de m a i s T o d o s o s o u t r o s p r o c e s s o s q u e e x e c u ta r e m l o c k f ic a r äo b l o q u e a do s u 1ü o c k É s i n ö n i m o de m u t e x e n d D e i x a pa s s a r (de s b lo q u e i a ) o p r i m e i r o p r o c e s s o d a f i l a de p r o c e s s o s q u e e s t ão b l o q u e a d o s p o r t e r e m e x e c u t a do a n te s u m l o c k (e n q u a n t o a f e c ha d u r a e s t a v a t r a n c a da ) Se a f i l a e s t á v a z i a , a f e c h a d u r a de s t r a n c a da ( i s to , é de i x a d a a be r t a ) Scanned by CamScanner A n e x o A A L i n _ V a le 4 223 i n s e r t ( id , Q ) I n s e r e o e le m e n t o i d n o f ì m d a f i l a Q O p r i m e i r o a rg u m e n t o po de s e r q u a l q u e r v a l o r i n t e i r o , e m b o r a , n o r m a l m e n t e , s e j a o n ú m e r o de i de n t i f i c a ção de u m p r o c e s s o i n s e r t (i d ,Q , Pr i o r ) In s e r e o e l e m e n t o i d n a f i l a Q , d e a c o r do c o m a pD o r i d a de p r i o r O t e r c e i r o a r gu - t o d e v e t e r u m v a l o r e n t r e 0 e 9999 , s e n d o 9999 a p r i o Dda de m :n i m a N o c a s o d o t e r c e i r o a r g u m e n t o e s ta r a u s e n t e o u n o c a s o do s e u v a l o r s e r m a i o r q u e 9999 , o t r a t a m e n t o é igu a l a o da do p a r a a p r i o Dd a d e 9 999 (i s t o é , o e l e m e n t o é s i n 1p l e s m e n te c o l o c a d o n o f i m d a f i l a Q) i d = f 1r s t (Q) F a z i d i g u a l a o p D m e i r o e l e m e n t o d a f i l a Q e r e m o v e e s s e e l e m e n t o d a f i l a c o u n t (Q ) Ob tém o c o m p D m e n t o (n ú m e r o de e l e m e n t o s ) da f i l a Q O a r g u m e n t o Q p o de s e r u m a v a r i áv e l q u e u e , u m a v a r i áv e l c o n d i t io n o u u m a e n t r y ó t a s k b l o c k O p r o c e s s o p q u e e x e c u t a e s s e c o m a n d o s e b l o q u e i a a té q u e u m o u t r o p r o c e s s o e x e c u t e w a k e u p (p ) Se w a k e u p (p ) é e x e c u t a d o a n te s , o p r o c e s s o p n ão s e b l o qu e i a a o e x e c u t a r o b l o c k w a k e u p (P ) A c o r d a (d e s b l o q u e i a ) o p r o c e s s o e s pe c i f i c a do po r P , q u e p o de s e r u m n o m e o u u m n ú m e r o ú n i c o de p r o c e s s o P (Se m ) U m s e m áf o r o f o r m a d o p o r u m a v a r i áv e l i n t e i r a (c o n t a d o r ) e u m a f i l a de e s pe r a A o pe r a ç o p (Se m ) de c r e m e n t a o c o n t a d o r de Se m C a s o o v a l o r r e s u l t a n te s e j a n e ga t i v o , o p r o c e s s o b lo q u e ad o e i n s e r i do n o f i m d a f i la de Se m V (Se n 1) I n c r e m e n t a o c o n t a do r d o s e m áfo r o Se m C a s o e x i s t a a lg u m p r o c e s s o b l o qu e a do n a f i l a do s e m áf o r o , o p D m e i r o p r o c e s s o de s s a f i l a é de s b l o q u e a do y i e l d ' T a s s a a d i a n te " o p r o c e s s a do r ( i s t o , o p r o c e s s o c e de a s u a v e z ) O c o n t r o le da UC P pa s s a pa r a o u t r o p r o c e s s o o u t h r e a d (n äo s e s a b e q u a l ) e , po s te r i o r m e n te (n äo s e s a be qu a n do ) , v o l t a pa r a o p r o c e s s o q u e e x e c u t o u o c o m a n do y ie ld , c o m o s e n a da t i v e s s e a c o n t e c ido Scanned by CamScanner 224 s i s t e 1n a s o pe r a c i o n a is e p r o g r a 1n a ç o c o n c o 1r e n t e S S T o s c a n i , R S de O l i v e i r a e A S C a r i s s i m i c l o c k T i m e o s i s te m a u t i l i z a u m r e l óg io pa r a s i m u l a r a p a s s a g e m de te m p o A f u n ção c l o c k T i m e r e t o m a o (e m p o a t u a l d e s s e r e lóg i o h o l d (K ) s e n d o K u m a c o n s t a n t e o u v a Dáv e l i n t e i r a , a t r a s a a e x e c u ção d o p r o c e s s o p o r K u n i da de s de t e m p o O p r o c e s s o é c o l o c a d o n a f i l a d o r e lóg i o p a r a s e r a c o r d a d o n o te m p o c l o c k T i m e + K (i s t o é , t e n 】p o a t u a l + K ) r a n d o m (K ) S e n d o K u m a c o n s t a n t e o u v a r i áv e l i n t e i r a , de v o l v e u m n ú m e r o a le a t ó r i o e n t r e O e K 1 w a i t (C o n d ) U m a v a r iá v e l c o n d i çã o 8 1 é b a s i c a m e n t e u m a f i l a de e s p e r a Se n d o C o n d u m a v a r i áv e l c o n d i ção , a o p e r a ç ão w a i t (C o n d ) b l o q u e i a i n c o n d i c i o n a l m e n te o p r o c e s s o e o c o l o c a n o f+m d a f i l a C o n d C o m o r e s u l t a d o , o m o n i t o r f i c a l i v r e p a r a s e r u s a d o p o r o u t r o p r o c e s s o w a i t (C o n d , P r i o r ) F u n c i o n a c o m o o c o m a n d o a n te r i o r , p o r ém o p r o c e s s o é c o l o c a d o n a f i l a C o n d d e a c o r d o c o m a pDo r i d a d e e s p e c i f i c a d a n o s e g u n do a r g u m e n t o , q u e d e v e s e r u m v a l o r i n t e i r o p o s i t i v o Qu a n t o m e n o r o v a l o r d e P r i o r , m a i s n a f r e n t e d a f i l a f i c a o p r o c e s s o s i g n a l (C o n d ) Se a f i l a C o n d n ão e s tá v a z i a , o p r i m e i r o p r o c e s s o de s s a f+l a é d e s b l o q u e a d o e a U C P é e n t r e gu e i m e d i a t a m e n te p a r a o m e s m o C o m o s ó u m p r o c e s s o p o d e e s t a r de n t r o d o m o n i t o r d e c a da v e z , o p r o c e s s o q u e e x e c u t o u o s ig n a l s ó v o l t a a s e r e x e c u t a do m a i s t a r d e , q u a n do o m o n i t o r f i c a l i v r e Se n ão t e m p r o c e s s o b l o q u e a do n a f i l a C o n d q u a n do o s i gn a l é e x e c u t a do , o s i g n a l n ão te m q u a l q u e r e f e i to (f u n c i o n a c o m o u m n o t h i n g) e m p 1y (C o n d ) R e t o m a l r u e s e a f i l a d a v a r i áv e l c o n di t i o n C o n d e s t á v a z i a , c a s o c o n t r ár i o , r e t o m a jb ls e Es t a f u n ção t a m bém p o de s e r a p l i c a da a v a r i áv e i s t i po q u e u e e a e n t r i ¬ s de t a s ks g e t l d (P ) R e to m a o n úm e r o ún i c o qu e ide n t i f i c a o p r o c e s s o c u j o n o m e é p (C o m o u m a th r e a d n ilo tem n o m e , e s s a f u n ç tto n ão s e a p l i c a a 1/1r e a ds ) m y s e l f É a i de n t i f i c a ç ão (n úm e r o ún i c o ) da t h r e a d o u p r o c e s s o q u e r e fe r e e s t a v a r i áv e l s 1 V a r i áv e i s d o t i po c o 1rd i r1o n só po de m sa . Dec la r a da s e u s a da s de n t r o de m o n i t o r e s Scanned by CamScanner A n e x o A A L i n gu a ge m V a le 4 225 s e n d (Pr o c l d , M s g ) B l o q u e i a o e x e c u t o r a t é q u e o p r o c e s s o (o u t h r e a d ) P r o c l d r e s o l v a r e c e be r a m e n s a g e m M s g O PDmei r o a r g u m e n t o ( i d e n t i f ic a ção d o r e c e p t o r ) p o de s e r u m n o m e de p r o c e s s o a2 o u u m v a l o r n u m é r i c o (c o n s t a n t e o u v a r i áv e l i n t e i r a ) N o s e g u n d o c a s o , o v a l o r é a s s u m i d o c o m o o n úm e r o ú n i c o (p id ) d e u m p r o c e s s o o 11 t l zr e a d A m e n s a ge m M s g po d e s e r f o r m a d a p o r v ár i o s v a l o r e s in t e i r o s o u b o «»l e a n o s ( t a m a n ho v a r i áv e l ) , s e p a r a do s po r v í rg u l a , s e n do q u e o s p r o c e s s o s re n d e r e r e c e i v e r d e v e m c o n c o f d a r n o s t a m a n h o s d a s m e n s a ge n s e n o s t i po s do s v a l o r e s t r a n s m i t id o s n b s e n d (P r o c l d , M s g ) E n v i a a m e n s a g e m M s g p a r a o p r o c e s s o (o u t h r e a d ) p r o c l d , de fo r m a a s s ín c r o n a Se o r e c e p t o r n ão e s t i v e r e s p e r a n d o a m e n s a g e Ä e l a é s i m p l e s m e n t e e n c a de a d a n a c a i x a po s t a l d o r e c e p t o r , s e m q u e h a j a b l o q u e i o d o r e m e t e n te V a l e m a s m e s m a s o b s e r v a çõe s s o b r e a s f o r m a s de e s p e c i f i c a r P r o c l d e M s g f e i t a s a c i m a O B S C a d a p r o c e s s o t e m u m a c a i x a p o s t a l (f i l a de m e n s a g e ns ) p r i v a t i v a e s ó o p r óp r i o p r o c e s s o p o d e r e t i r a r m e n s a g e n s ó s u a c a i x a po s t a l I s t o é f e i t o a t r a v és de o pe r a çMe s r e c e i v e r e c e i v e (P r o c l d , M s g ) B l o q u e i a o p r o c e s s o a t é q u e c h e g u e u m a m e n s a g e m do p r o c e s s o PT o c l d O p r i m e i r o a r g u m e n t o , a l ém d e n o m e d e p r o c e s s o o u v a l o r n u m éDc o , p o de s e r t a m bém a p a l a v r a a n y , q u e s i g n i f i c a o de s e j o d e r e c e b e r m e n s a g e m d e q u a lq u e r p r o c e s s o (e s p e r a n â o d e t e n t 1i n ts t i c a ) N e s t e c a s o , a pó s a r e c e p ç o d a m e n s a g e m . o v a l o r d a v a r i áv e l a n y 8 3 ide n t i f i c a o p r o c e s s o (o u t h r e a d ) q u e e n v i o u e s s a m e n s a g e m M s g é u m a l i s t a de v a r i áv e i s i n t e i r a s o u b o o l e a n a s , s e p a r a d a s po r v í r g u l a , a s q u a i s i r ã o r e c e b e r o s v a l o r e s t r a n s m i t i do s O B S o s p r o c e s s o s s e n d e r e r e c e i v e r de v e m c o n c o r da r n o s t a m a n ho s d a s m e n s a ge n s e n o s t i po s d o s v a l o r e s t r a n s m i t i d o s O s e n d e r po de f a z e r o e n v i o a t r a v s de u m a o pe r a ção s e n d o u n b s e n d i n d i fe r e n t e m e n t e i d = f o r k (o u i d = f o r k o ) C r i a u m a n o v a t h r e a d e c o l o c a a s u a ide n t i f i c a ção (n úm e r o ún ic o ) n a v a r i áv e l i d A n o v a t h r e a d e x e c u t a e m p a r a l e l o c o m a s u a m ãe , a pa r t i r d o c o m a n d o q u e s e g u e a e s t e i d = n e w P 11a n 1 e ( a r g l l a r gz ' ' " , a r gN ) C D a u m n o v o p r o c e s s o a p a r t i r d o m o d e l o (t e n 1p la t e ) Pn a m e , c o lo c a n do a ide n t i f i c a ção do f i l ho n a v a r i áv e l i d Se n ao n e c e s s á r i o c o n he c e r a ide n t i f i c a ç ilo d o f i l ho , n e w po de s e r u s a do c o m o s u b r o t i n a ( f o r a de c o m a n d o d e a t r i b u iç o ) 1z N o c a r o d o p r o c e s r o s e r o e le m e n t o I d e u m a r r a y de pr o c e e1o s d e n o m i n a d o P o s e u n o Bn e po de s e r r e fe h de po r P j o n d e 1 e u m a c o n s t a n t e i n t e i r a C l o n e s de m o d e lo s d e p r o c e l 1 o a e t h r ea ds l ó po de m s c r r e fc Ddo s po r s e u s n ú m e r o e û n i c o r o3 A v a r i áv e l a n y " «u 1 i m c o m o m y 1c l f " ) e u m a v a r i áv e l in te i r a qu e to do pr o c e s Bo (o u i h r 1r¢1¢O po s s u i e n ao p r e c i s a i e r de c l a r a dn E s t a v a r i áv e l t a m b m po d e s e r u 1a d a e m o pe r a çoc 1 j o i n Scanned by CamScanner 226 S i s t e m a s o pe r a c i o n a i s e p r o g r a 1n m c o n c o r ( n t e S S T o s cm R S de O l i v e i r a e A Si n i j oi nod o u v a r j o i n ¡ d D B l o qu e i a a t l Br e a d (o u p r o c e s s o ) qu e e x e c u t a o Jo l n a té q u e o f i l ho (p r o c e s so o u th r e a d) ide n t i fi c a d o p o r i d t e r m i n e E s t a p r i m i t i v a p o de s e r u s a d a c o m o f u n ção o u c o m o s u br o t i n a U s a d a c o m o f u n ção , e l a r e t o m a o v a l o r qu e o fi lho id e s pe c i f i c o u n o c o m a n d o q u i t . Ao m «» T eT T a l c o m o o c o r r e n o c o m a n d o r e c e i v e , o a r gu m e n to d e j o i n po d e s e r a p a l a v r a a n y I s to s ign i f ic a o d e s e jo d e e sp e r a r p e l o t ér m i n o de qu a lqu e r f i l ho N e s s e c a s o , n o r et or no da p r i m i t i v a , a v a r i áv e l a n y v a i c o n t e r a i de n t id a de d o f i lh o c u j a e x e c u ção t e r m in o u q u i t M a t a o s e u e x e c u t o r A t l1r e a d o u p r o c e s s o de i x a de e x i s t i r n o s i s t e m a q u i t (X ) I g u a l a o q u i t A d i c i o n a l m e n t e , in fo r m a a o ge n i t o r o v a l o r de X (u m a v a r i áv e l o u c o n s tan te , i n t e i r a o u b o o l e a n a ) O ge n i t o r (th r e a d o u p r o c e s s o ) p o de pe g a r e s s e v a l o r u s a n do a p r i m i t i v a j o i n , c o m o f u n ção A p r o p ó s i t o , u m q u i t s e m a r gu m e n t o c o l o c a o v a l o r z e r o à d i s p o s ição do g e n i t o r (e qu i v a le a u m q u i t (0 )) a c c e p t X ( a r g 1 T 1 : a r g? T 2 ; ; a r gN T N ) r e t u r n s T w h e n E L d o C U m r e n d e z v o u s e n v o l v e du a s t h r e a ds U m a , d e n o m i n a d a c a l l e r , q u e e x e c u t a u m c a l l pa r a u m a e n t r y E t O u t r a , de n o m i n a d a a c c e p t o r , qu e e x e c u t a u m a c c e p t p a r a e s s a m e s m a e n 1r y E t A p Dm e i r a d a s t lzr e a d s q u e c he g a a o s e u c o m a n do (c a l l o u a c c e p t ) s e b l o qu e i a a té q u e a s e gu n da th r e a d c he g u e a o c o m a n d o c o m p l e m e n t a r (a c c ep t o u c a tt) c o r r e s p o n d e n t e Qu a n do a s e gu n da 1l i r e a d c h e g a a o c o m a n d o c o m pl e m e n t a r , t u do e s tá p r o n t o p a r a o r e n d e z v o u s A p a r t i r da í o par c a l l e r a c c e p l o r e s tá c o m p r o m i s s a do ( " a m a r r a do " ) p a r a o r e n d e z v o u s A condi çi o d a c l áu su la w h e n é e n t ão a v a l i a d a Se é v e r d a d e i r a (o u s e e s tá a u s e n t e ) , o c o m a n do C e s pe c i f i c a d o n o a c c ep t é e x e c u t a d o , u s a n do o s a r gu m e n to s pa s s a do s n a c h a m a da E s s a e x e c u ção é fe i t a de fo r m a m u t u a m e n t e e x c l u s i v a e m r e l a ção a o s d e m a i s r e n d e z v o u s da t a s k Se a c o n d iç o n o v e r d a d e i r a , o r e n d e z v o u s f i c a pa r a s e r r e a l i z a do m a i s t a r de a4 e a U C p p a s s a pa r a o u t r a r l1r e a d da r e a ø i is i A pós a c o n s u m a ção do r e n d e z v o u s , o s a rg u m e n t o s de r et or no s ão pa s s a do s pa r a o c a t l e r e a s d u a s th r e a d s p r o s s e g u e m s u a s e x e c u çõ e s de f o r m a in d e pe n d e n te d e b u g l 0 c o m a n d o d e bu g 0 i n i c i a u m r a s t r e a m e n to d a e x e c u ção do s p r o c e s s o s e th r e a ds pa r a c a da i n s t r u ção e x e c u t a d a , é im p r e s s o o n úm e r o ún ic o do pr o c e s s o (o u th r ¬ a d) qu e a e x e c u to u e o e n d e r e ço d a i n s t r u ção e x e c u t a da Es s a s in fo r m a çöe s säo m o s t r a da s de " f o r m a c o r r ida " (n a m e s m a l i n h a , s e m f a z e r pa u s a ) 44 0 m o m e n t o de r e a v a l i ar u m a c o n d i çào pa r a Re a l i z a çao de r e n t le z v o u J ë de c idid o a t r a v és de u m a lgo r i t m o do t ipo 1c gu n da c ha n c e " , qu e n äo se r á a qu i de ta lha do B a s ic a m e n t e , a i m p le m c n t a çao e n v o l v e du a s f i las po r la sk, f o r m a d a s po r pa f e s c a l l e r a c c ep 1o r c o m pr o m i s sa d o s A pr i m e i r a e a f i la de e spe r a po r e x c lu s ão m útu a d Ia f k e a s e gu n da a l i l a d o s pa r e s qu e j á t i v e r a m a c láu Bu la w he n a v a l i ada c o m o Tu l r e Scanned by CamScanner A n e x o A A - V a le 4 227 d e b u g2 0 c o m a n d o d e b u g 2 f a z u mr a s t r e a m e n t o c o m p le t o p a r a c a d a i n s t r u ç ão q u e v a i s e r e x e c u t a d a (a n t e s d e e x e c u t a r e s s a i n s t r u ção , p o r t a n t o ) , é i m p r e s s a u m a l i n h a c o m o n o m e d o p r o c e s s o (o u 1h r e a d ) , o p r o g r a m c o u n t e r e a i n s t r u ção q u e v a i s e r e x e c u t a da A pó s a i m p r e s s ão da l i n h a , a e x e c u ç ão p ár a (e s pe r a ) a té q u e o u s u ár i o p r e s s io n e a t e c l a EN T E R D e s s a m a n e i r a , o u s u ár i o p o de v i s u a l i z a r a e x e c u ção do s e u p r o g r a m a , p a s s o a pa s s o A o i n v és de p r e s s i o n a r a t e c l a E N T E R , o u s u ár i o p o d e d i g i t a r u m c o m a n do , o qi al v a i s e r e x e c u t a do a n te s d a e x e c u ção d a i n s t r u ção q u e f o i m o s t r a d a E x e m p l o s d e c o m a n d o s s ão " n " , qu e fa z c e s s a r o r a s t r e a m e n t o , e an " , q u e f az a b Dr u m a ' j an e l a d e i ns p eç ão' o n d e o s i st ema p a s s a a a c e i tar u m a s é r i e d e c o m a n d o s d o u s u ár i o (v e r l i s t a d e c o m a n do s n a s e ção A 7 3 ) n o d e b u g 0 c o m a n d o n o d e b u g f a z c e s s a r o f a s t r e a m e n t o q u e e s t i v e r e m c u r s o n o m o m e i 1t o ( t a n t o f a z t e r i n i c i a d o p o r d e b u g l o u p o r d e b u g 2 ) p a m e F a z u m a p a u s a n a e x e c u ç o , e s c r e v e n do a m e n s a ge m " [p a u s e d ] " n o m o n i t o r A s e g u i r , a b r e a " j anel a d e i n s p e ç ão " r e fe Dd a n o c o m a n d o de bu g 2 , o n de o s i s t e m a p a s s a a a c e i t a r c o m a n do s d o u s u ár i o e x e c (X ) E x e c u t a o p r o c e d i m e n t o e x t e r n o c u j o n o m e é X , o q u a l , n o r m a l m e n te , é u m p r o c e d i m e n t o d a b i b l i o t e c a d e d e p u r a ç ão p r o v id a p e l o s i s t e m a (v e r s e ç ão A 7 3 ) C o n t u d o X p o d e s e r q u a l q u e r p r o c e d i m e n t o p f o l o g c o n t id o n o s p r o g r a m a s V 4 1 o u V 4 2 qu e i m p le m e n t a m o s i s t e m a V 4 U m e x e n 1p l o de u s o é a s e q ü ên c i a " e x e c (p r o ) p a u s e " Qu a n do a e x e c u ção c he g a a e s t e po n t o , o s i s te m a m o s t r a o s e s t a do s d e to do s o s p r o c e s s o s e m e x e c u ção e f a z u r 11a p a u s a , o n d e a g u a r d a u m c o m a n d o d o u s u ár i o Pa r a c o n t i n u a r a e x e c u ção , b a s t a 0 u s u ár i o e s c r e v e r " y a i " A . 3 A m áq u i n a v i r t u a l W A a r q u i t e t u r a d a m áq u i n a v i r t u a l é ba s t a n t e a v a n ça da , po i s o c o n ju n t o de i n s t r u çöe s m o s t r ad o n a f i gu r a A 2 i m p l e m e n t a do d i r e ta m e n t e po r s e u " ha r d w a r e " Em u m a m áq u i n a c o n v e n c i o n a l , m u i t a s de s s a s in s t r u çö e s s e r i a m i m p l e m e n ta da s n o ke r n el do s i s te m a o pe r a c i o n a l , po r s o f t w a r e N a s i n s t r u çð e s l i s t a d a s n a f igu r a 2 , X e Y s ao v a r i áv e i s (po de n d o s e r c o n s t a n te s n a s in s t r u çõ e s if 1 w r i t e , p u s l1, ho ld , r a n d o m e t a b ) , o p R ¬ 1 u m o pe r a d o r r e l a c i o n a l , E u m e n d e r eço de m e m öD a , p r o c e d u m n o m e de p r o c e d i r r w n t o , t d ó u m ide n t i f i c a do r de p r o c e s s o (n o n 1e o u n úm e r o ú n i c o ) , p u m n o m e de p r o c e s s o , Q é u m a f i la , S u m s e m á fo r o , M u m m o n i t o r , C u m a v a r i áv e l t i p o c o n d i t i o n , p r io r u m a v u i áv e l o u c o n s t a n t e i n te i r a , M s g u m a l i s t a de Scanned by CamScanner 22 8 s i s t e m a s Opeci onai s c p r o g r a m a çao c o n c o r r e n t e S S T o s c a n i , R S de O l i v e i r a e A s c a r iss im i v a l o r e s (c o m p o n e n te s de u m a m e n s a g e m ) c E t é u m a e n t r y d e l a s k A l g u m a s de s s a s in s t r u çõe s s o c o m e n t a da s a s e gu i r i f X o p R e l Y go t o E f o r k n b s e n d Id , M s g g o t o E c r e a te P r e c e i v e I d , M s g r e a d X j o in Id r n d z v s E t w r i t e X j o in t Id a c c e p t E t p u sH X q u i t g i v e u p m d z v s po p X m u t e x be g i n e n d p r o c e d a d d m u te x e n d e n d p r o c e s s s u b l o c k e n d p r o c e s T m u l t u n l o c k e n d r n o n i t o r d i v b lo c k e n d t a s k m o d w a k e u p I d e n d a c c e p t j u m p E f i r s t Q m y s e l f j z e r E in s e r t I d Q g e t l d P j po s E i s e m p ty Q c l o c k T im e j n e g E c o u n t Q r a n d o m X j s u b E P S n l r e t V S t a b c a l l P r o c e d e n t e r m o n i t o r M d e b u g l [n , a 11 a 2 . , a , J l e a v e m o n i t o r M d e b u g2 r et ur n w a i t C n o d e b u g n o th i n g w a i t C , PDo r p a u s e y i e l d s ig n a l C e x e c Pr o c e d h o ld X s e n d 1d , M s g F Ig u r a A 2 C o n ju n t o d e In s t r u ç õ e s d a m áq u i n a v i r t u a l W A i n s t r u ção ijf X o p R e l Y g o l o E e a i n s t r u ção g o t o E s ão u s a d a s n a ge r a ção de c ódigo paf a e x p r e s s õ e s lóg i c a s e c o m a n d o s de c o n tr o l e [PR I 00] E s t a s i n s t r u çõe s s ão s u pér fl u a s , po is po de m s e r s i m u l a d a s a t r a v és d a s in s t r u çõe s de j u m p (po r e x e m p l o 9o t o E = j u m p E ) E x i s t e , a i nda , a i n s t r u ç o if x g o t o E , o n de X é u m a v a r i áv e l b o o le a n a , qu e n îio f o i l i s t a d a n a f i gu r a A 2 A m áq u i n a v i r t u a l t r a b a l ha c o m du a s pi l ha s , u m a pa r a o pe r a çöe s a r i t m ét i c a s (u sada p la s i n s t r u çöe s p u s h , p o p , a d d , s u b , m u t t e d i v ) e o u t r a p a r a a r m a z e l l a r r e gi s t r o s de a t i v açäo de p r o c e d i m e n t o s (u s a da pe l a s in s t r u çö e s c a t l , r n dzv s , r e t u r n , j s u b e r e t ) A i n s t r u ç o c a u p s e r v e p a】a c h a r u m r e g i s t r o de a t i v a ç iio n a p i lha do p r o c e s so (o u i hr r a d) e t r a n s fe Dr a e x e c u çao pa r a o p r o c e d i m e n to p Es t a i n s t r u ção ó s e m p r e s e gu ida , n o código o b je t o , pe l a l i s t a do s pa r äm e t r o s de c ha m a da o p r i m e i r o e l e m e n to da l is t a é o n úm e ro de pa r âm e tr o s , o s de m a i s s o o s pa r äm e t r o s p r o p r i a m e n te d i t o s A i n s t r u ção r n dz v J E t f u n c i o n a c o m o u m c a l l pa r a o p r o c e d im e n to (t i po e l r t 1y ) E r Tal c o m o o c a u , e s t a i n s t r u ç o é s e gu ida , n o c ód i go o bj e t o , pe la l i s ta do s p a r m e t r o s d e c han ra da Scanned by CamScanner A n e x o A A L i n gu a g e m V a le 4 229 A i n s t r u ç ão r e t u r n r e m o v e u ITL r e g i s t r o de a t i v a ç o d a p i l ha e r e to m a a e x e c u ção p a r a o b l o c o c h a m a do r A i n s t r u ção r e r n ao é e q u i v a le n te a o r e t u r n , po i s é m a i s s i m p le s E l a f o r m a p a r c o m a i n s t r u ç ão j s u b , q u e e m p i l h a a pe n a s o e n de r e ço de r et or no Pod e s e d i z e r q u e a i n s t r u ç ão c r e a t e p é u m a i n s t m ç ão c a u " e n c a s t i ça d a " c o m u m l a r k C o m o u m c a l l , e l a t r a n s f e r e a e x e c u ç ão p a r a u m p r o c e d i m e n t o , c o m o u m j o r k , e l a c r i a u m n o v o p r o c e s s o E l a f o i c D a d a p a 】a f a c i l i t a r a i m p l e m e n t a ção do c o m a n d o n e w e t a m bém é s e g u i da , n o c ód i go o bj e t o , p e l a l i s t a d o s p a r âm e t r o s de c ha m a da A i n s t r u ção g i v e u p r n dz v s f a c i l i t a a i m p l e m e n t a ção d a s e m ân t i c a do c o m a n d o a c c e p t E l a u t i l i z a u m a f i l a de e s p e r a p a r a r e a v a l i a r c o n d i ção b o o l e a n a , q u e t o d a t a s k po s s u i O q u e a i n s t r u ç ão f a z , b a s i c a m e n t e , é c o lo c a r o p a r d e t h r e a d s e n v o l v id o n o r e n d e z v o u s a t u a l , n o fì m de s s a f i l a , d a t a s k do a c c e p 1o r A se g u i r , a i n s t r u ção p a s s a a di a n t e a U C P , da n do p r e fe r ên c i a p a r a a r e a l i z a ção d e u m o u t r o r e n d e z v o u s E s s a a ção é e x e c u t a da s e m p r e q u e u m r e n d e z v o u s f i c a a c e r t a d o , - a c o n d i ção b o o l e a n a d a c l áu s u l a w he n é a v a l i a d a c o m o j a l s e A s \n s t n 1qMe s e n d p r o c e d , e n d p r o c e s s , e n d p r o c e s T , e n d m o n i t o r , e n d ta s k e e n d a c c e p t , s e r v e m p a r a m a r c a r , n o c ód i g o g e r a d o pe l o c o m pi l a do r , r e s p e c t i v a m e n t e , o f i m de u m a p r o c e d u r e , o f i m d e u m p r o c e s s o , o f i m d e u m m o de l o de p r o c e s s o , o f i m d e u m m o n i t o r , o f i m de u m a t a s k e o f i m d e u m c o m a n d o a c c e p 1, r e s p e c t i v a m e n t e A l ém d e m a r c a r o f i m de u m t r e c h o d e c ód i g o e s t a s i n s t r u çMe s t a m bém o c a s i o n a m a çõ e s e m t e m p o d e e x e c u ç ão A i n s t r u ção j o i n l d f o i c Da d a p a r a f a c i l i t a r a i m p l e m e n t a ç ão d o c o m a n d o j o i n ( id ) . o qu a l , c o n f o r m e e x p l i c a d o n a s e ção q u e t r a ta d a s e m ân t i c a , po d e s e r u s a do c o m o s u b r o t i n a o u c o m o f u n ção A l ém d e j o i n t d , e x i s t e a i n s tr u ção j o in ] 1d , qu e d i f e r e d a pD m e i r a a pe n a s po r c o l o c a r n a p i l h a a r i t m é t i c a d o e x e c u t o r o v a l o r e s pe c i f ic a do pe l o f i lh o (o u f i l h a ) t d , a o m o r r e r A i n s tr u ç o j o i n t u s a d a n a i m p l e m e n t a ção do j o i n t ip o f u n ção A i n s t r u ção e x e c p r o c e d (ú l t i m a d a f i g u r a A 2 ) c h a m a o p r o c e di m e n t o Pr o l o g de n o m i n a d o p r o c e d , s e n do ú t i l p a r a f i n s de de p u r a ção A t r a v és de l a , o u s u áf i o po d e e x e c u t a r u m c o n ju n t o d e p r o c e d i m e n t o s p r de f i n i d o s qu e pe r m i t e m v i s u a l i z a r o e s t a do do s i s t e m a (v e r s e çäo A 7 3 ) A . 4 0 a r q u i v o d e s a fd a d o c o m p i l a d o r 0 c o m p i l a do r é i r n p l m e n t a d o pe l o p r o g r a m a V 4 1 0 a r qu i v o de s a fd a 吕 e r a do pe lo m e s m o c o r n p o s t o po r u m a t a b e l a d e s l m bo l o s e po r u m c dd ig o o bj e t o Es s a s i n fo r m a qö e s s o u t i l i z a d a s pe lo s i m u l a do r (p r o g r a m a V 4 2 ) pa r a r e a l i z a r a e x e c u ção do p r o s r a m a A . 4 . 1 A t a b e l a d e s fm b o l o s C a da e n t r a d a d a t a b e l a d e s f r r b o l o s po s s u i 6 c a m p o s : N , 1d , T , VI , A e B , o n de N o fn d i c e d a e n t r a d a , 1d é a i d e n t i f i c a ção (n o m e ) d e u m s f m b o l o , T o t i p o do s í m bo l o , V1 o v a l o r i n i c i a l d o Scanned by CamScanner 2 3o s i s t e m a s o pe r a c i o n a i s e pr o g r a m © o c o n c o r r e n t e S S T o s c a n i , R S de o l i v e i r a e A Ss i mi s ím b o l o , A c o n té m i n f o r m a çö e s a d ic i o n a i s (d im e n s õ e s , s e l d é n o m e d e a r r a y , o u n ú m e r o de a r g u m e n t o s , s e l d é n o m e de p r o c e d i m e n to ) e B é o b l o c o n o q u a l o s fm b o l o é de c l a r a d o O t ip o T d e u m s fm b o l o p o de s e r : in t e g e r , bo o te a n , q u e u e , s e m a p h o r e , Ju n c t i o n , r o u t in e , p r o c e s s , m o n i t o r , c o n d i t io n , p r io r i ty c o n d i t i o n , t a s k , e r 11r y j .m e e n t r y s u b 0 b l o c o B p o de s e r g lo ba l (s ín io o \o g l ob al t , p r o c e s s (X ), P r o c e d u r e (P ), m o n i to r (X), p r o c e d u r e (m o n i t o r (x ), p ), t a s k (x ), e n t r y (1a s k(x ), p ), p r o c e d u r e (1a s k(X ), P ) A 4 2 0 c ód i g o o b j e t o 0 c ó d i g o o bj e t o ge r a d o é r e p r e s e n t a do e m u m a t a b e l a de du a s c o l u n a s C a d a l i n h a de s s a tabe l a c o n t ém u m n ú m e r o , q u e r e p r e s e n t a u m e n d e r e ço de m e m ó r i a , e u m a l i s t a q u r e p r e se n ta a i n s t r u ç ão c o n t i d a n e s s a po s i ção d e m e m ó r i a A s e ç ão a s e g u i r a p r e s e n t a e x e m p l o s de p r o gr a m a s V 4 a c o m p a n h a d o s d o c ód i go o b je to g e r a d o p e l o c o m p i l a d o r A . 5 P r o g r a m a s e x e m p l o s E s t a s e ç ão a p r e s e n t a c i n c o p r o g r a m a s e x e m p l o s c o m p l e t o s O s t r ês pD m e i r o s s ão p r o g r a m a s s i m p l e s , q u e c a l c u l a m o f a t o r i a l d e n O qu a r t o r e s o l v e o p r o b l e m a d o s r e a de r s & w r i t e r s , u s a n do s e m áf o r o s O q u in t o u t i l i z a t h r e a ds p a r a e n c o n t r a r o m a i o r e l e m e n t o de u m v e t o r A . 5 . 1 C á l c u l o d o f a t o r i a l , v e r s ã o 1 O p r o g r a m a é fo r m a d o p o r u m ú n i c o p r o c e s s o q u e c h a m a u m p r o c e d i m e n t o r e c u r s i v o V 4 p r o g r a m p r o c e du r e Ta l (n : i n t e ge r ) r et ur ns i n t e ge r n l i n te ge r i f n - O t he n j a 1 : - 1 e l s e n h n L J b æn y u n l h p r o c e s s m a i n n : i n t e ge r v a t : i n t e g e r r e a d (n ) Va l t (n ) w D te (v a t ) e n dp r o g r a m Scanned by CamScanner A n e x o A A L i n gu a ge m V a le 4 2 3 1 T A B E L A D E S9M B O L O S = = IN D N O M E T I PO V I N IC A G R U P IN S I D E 0 f a t f u n c t i o n O n a r g ( 1) n o n e 2 f a t i n t e ge r 0 n o n e p r o c e d (fa t ) 3 n l o n o n e p r o c e d ( f a t ) 4 m a i n p r o c e s s 15 n o n e n o n e 5 n i n t e ge r 0 n o n e p r o c e s s (m a i n ) 6 v a l i n te ge r 0 n o n e p r o c e s s (m a i n ) E N D C ó D i G o G ERA D O 【g o t o , 5】 1 1 【l # (3)】 2 【p u s h $ 1】 12 【m u l t】 3 POP , 2 13 POP, 4 2 4 [ r e t u m ] 14 le n d , p r o c ] 5 PUSh , 1 n 15 w a d , n 6 PUSh , 1 16 Cau , f a u 7 s u b 17 1 , n 8 POP, 3 18 þ o p , v a u 9 PUSh , 1 n 19 w Me , v a u 10 [c a l l , f a t i 2 0 l e n d , p r o c e s s i É i n t e r e s s a n te o b s e r v a r a s e g u i n t e p r o p De d a de q u e v a l e p a r a to d o p r o c e d i m e n t o d o t ip o f unçi o O p r o c e d i m e n t o u t i l i z a u m a v a r i áv e l l o c a l , c o m n o m e ig u a l a o do p r o c e d i m e n t o , p a r a a r m a z e n a r o v a l o r d e r e t o r n o V a i h a v e r u m a e n t r a d a n a t a be l a de s :m b o l o s p a r a e s s a v a r i áv e l N o c ó d i g o o b je t o , e s s a v a r i áv e l é r e fe Dd a po r # (k ) , o n de k é o n ú m e r o d e a r g u m e n t o s d a fu n ção m a i s 1 N o e x e 呷 l o a n t e r i o r , o n o m e d a v a r i áv e l é j a t e s u a i de n t i f i c ação n o c ód ig o o bj e t o é # (2 ) A . 5 . 2 C á l c u l o d o f a t o r i a l , v e r s ão 2 N e s ta v e r s ão , a m a i o r p a r t e do p r o g r a m a é e s c r i t a e m l i n gu a g e m d e m áq u in a . u t i l i z a n d o a de c l a r a ç ão in l in e i n l i n e Ta 1 ; % Ca lc u la o fa to r ia l de to n n a 1e c u r siva [p u sh $ l ] , % 0V 4 p r o gr a m [s u b ] , % 1 O n ûm e 1o n o C_ Iär io ¢ o n i n t e g e r ; ij z e r , l l ] , % 2 e n de reço da h s t ru çaa v a l : i n te g e r i n i t 1 ; [po p , n ] , % 3 Com o 姑 姑 op ¢ok l : in t e ge r i n i t 1 ; [pu s h , n ] , % 4 de v 1 1u po t qu e o t re cho h m p r o c e s s m a i n ; [p u sh , k 1] , % S no en de r1ço z e m r e a d (n ) l a dd ] , % e O 1 ce no do 1 - û b llo i n l i n e c a ub t ; [p u s h N ] , % 7 pe lo c o 呷 llado r 【p u sh , n 】 나 s u b , 角 1] % 8 ó u b Ja d n1uh 【po p , v a l】 【r e t 】 % 10 ] [po p , n ] % 11 w D t e ( v a l ) [p u s h t 1] % 12) : [ r e t ] % 13 c n dp r o g r a m J Scanned by CamScanner 2 32 S i s t e m a s o pe r a c i o n a i s e p r o 吕 r a m a çäo C o n c o r r e n t e S S T o s c a n i R S de O l i v e i r a e A S CSSi mi : T A B E L A D E S IM B O L O S I N D N O M E T IP O V I N IC A G R U P I N S I D E o n i n t e ge r o n o n e n o r 1e v a l i n t e g e r 1 n o n e n o n e 2 k l i n t e g e r 1 n o n e n o n e 3 m a i n p r o c e s s 0 n o n e n o n e 4 c a l f a t i n l i n e 1 n o n e p r o c e s s (m a i n ) 5 f a t i n l i n e 6 n o n e n o n e E N D C ó D i G O G E R A D O 0 [r e a d , n ] 10 [p u s h , n ] push , n 1 1 push , k 1 2 üs u b , f a t i 12 [a dd ] 3 pop , v a u 13 h u s h , n 4 [w r i t e , v a l l 14 üs u b , f a t i 5 l e n d , p r o c e s s i 15 [m u l t ] 6 push , 1 16 r eu 7 [s u b ] 17 [p o p , n ] 8 ü z e r , 17 18 PUSh , k Y 9 [p o p , n ] 19 [ r e t ] A . 5 3 C á l c u l o d o f a t o r i a l , Ver si o 3 N e s t a v e r s ão , o f a t o r i a ] é c a l c u l a d o a t r a v és d e " t r a b a l h o e s c r a v o " O m o d e l o de p r o c e s s o Ja t c a l c u l a o f a t o r i a l d e n d a s e g u i n te m a n e i r a Se n = O, e le d e v o l v e o r e s u l t a d o 1 e m o r r e Se n ão , e le c D a u m p r o c e s s o e s c r a v o p a r a c a l c u l a r o f a t o r i a l de n 1 e a g u a r d a o r e s u l t a d o , q u e v e m q u a n do o e s c r a v o m o r r e Qu a n d o v e m o r e s u l t a do k , e l e r e t o m a n * k e s e s u i c i d a V 4 p r o g r a m p r o c e s s t y p e Ta l (n : i n t e g e r ) id , k , m , v a [ i n t e ge r i f n o t he n q u h w e l s e { n z : = n 1 id = n e w j a r (m ) k = jo i n (id ) v a l = n * k quMval p r o c e s s p id , r e s u l t : i n t e ge r i n i t O id : = n e w Ta 1 (5 ) r e s u l t : = j o i n ( id ) w D t e ( ' R e s u l t a do = ' ) ; w D t e ( r e s u t¢) e n dp r o g r a m Scanned by CamScanner A n e x o A A L i n gu a ge m V a l e 4 233 T A B E L A D E S IM B O L O S I N D N O M E T I PO V I N IC A G R U P IN S I D E 0 f a t p r o c e sT O n a r g ( 1) glo b a l n i n t e g e r 0 n o n e p r o c e sT (f a t ) 2 id i n t e ge r 0 n o n e p r o c e s T (f a t ) - in te ge r 0 n o n e p r o c e s T (f a t ) 4 m in t e ge r 0 n o n e p r o c e s T (f a t ) 5 v a l i n te ge r 0 n o n e p r o c e sT (f a t ) - p r o c e s s 19 n o n e g l o b a l 7 i d i n t e ge r 0 n o n e p r o c e s s (P ) 8 r e s u l t i n te ge r 0 n o n e p r o c e s s (P) E N D C ó D i G O G E R A D O 0 [ i f , n , ° , $ O , g o t o , 2 ] 14 [p u s h , k ] [go t o , 4 ] 15 [m u l t ] 2 quh , U 16 POP, v a Y 3 【q u i t】 17 【qu i t , v a1】 4 [p u s h , n ] 18 le n d , p r o c e sT ] 5 [p u s h , $ l ] 19 [c r e a t e , f a t i 6 [s u b ] 20 [ l , $ 5 ] 7 [p o p , m ] 2 1 [po p , i d ] 8 [c r e a t e , f a t i 22 ko i n 1, i d ] 9 [ l , m ] 2 3 [po p , r e s u l t ] 10 pop , i d 24 wMe , 182 , m , 0 5 , 7 , 10 8 , 6 , 9 7 , 100 , m , 6 10 1 1 üo i n l , i d ] 2 5 [p o p , n ] 12 【p o p , k】 2 6 【pu s h , k 1】 13 【p u s h , n 】 A 5 4 S i n c r o n i z a çã o t i p o r e a d e r s & w n Et e r s O p r o g r a m a a s e g u i r é a s o l u ção de C o u r t o i s , H e y m a n s e Pa m a s [C O U 7 1] , c o m p Do D d a de p a i a o s r e a d e r s O p r o g r a m a o r i g i n a 20 r e a d e r s e I O w r i t e r s O u s o da o pe r a ção ho l d f a z c o m q u e o s r e a d e r s c h e g u e m n o s t e m p o s 1, 3 , 5 , e tc e qu e o s w r i t e r s c he g u e m n o s te m p o s 2 4 , 6 , e t c O te l r 中 ro d e l e i t u r a / e s c r i t a é u m v a l o r a le a tóDo r e t i r a do do c o n j u n t o { 1, 2 , 3 } V 4 p r o g r a m m a l e x , w : s e m a p ho r e i n i t 1 n r i n t e ge r in i t 0 p r o c e s s r e a d e r (i : = 1 to 20 ) k i n te g e r k = 2 * i l ; ho ld (k ) ; % o r e a d e r i c he g a n o t e m p«) 2 * i l P (m u t e x ) n r = n H l i f n r = l t he n P ( w ) V (m u t e x ) w r i t e ( ' r e a d e r ' ) ; w r i t e (1) : w r i t e ( ' = = = > ' ) : n l Scanned by CamScanner 234 Si s t e m a s O pe r a c i o n a i s e Pr o g r a m a çäo C o n c o r r e n t e S S T o s c a n i , R S de O l i v e i r a e A Ss i mi k = r a n do m (3 )+ l ; h o ld (k ) ; % l k [ 3 w r i t e ( ' r e a d e r ' ) : w r i t e (i ) ; w r i te ( ' < ' ) ; n l P (l 1Bu l e x ) n r = n r 1 i f n r = O t he n V (w ) V {m Æ e x ) Pr o c e s s w r i t e r ( i : = l t o 10) k i n t e ge r k = 2 * i h o l d (k ) ; % o w r i t e r i c h e g a n o t e m p o 2 * i P (w ) w r i t e ( ' w r i t e r ' ) ; w r i t e (i ) ; w r i t e ( ' . . . . . - > ' ) ; n l k = r a n d o m (3 )+ l ; h o l d (k ) : % 1 < k < 3 w D t e ( ' w r i t e r ' ) ; w r i t e (i ) ; w D t e ( ' < ' ) ; n l V (w ) e n d p r o g r a m T A B E L A D E SÍM B O L O S IN D N O M E T I PO V I N I C A G R U P I N S I D E O m u t e x s e m a ph o r e n o n e n o n e w s e m a p h o r e n o n e n o n e 2 n r i n t e ge r 0 n o n e n o n e 3 r e a de r p r o c e s s O i ( 1 , 2 0 ) n o n e - i n t e g e r 0 n o n e p r o c e s s (r e a d e r ) 5 WWe r p r o c e s s 39 U , 10 n o n e - i n te g e r 0 n o n e p r o c e s s (w r i t e r ) E N D C ó D i G O G E R A D O 0 [p u s h , $2 ] 3 0 [p u s h , n r ] PUSh , 0 3 1 PUSh , 1 2 [m u l t ] 32 [s u b ] 3 [p u s h , $ 1 ] 33 [po p , n r ] 4 [s u b ] 34 [i f , n r , . , $O , g o t o , 36 ] 5 [po p , k ] 35 [go to , 37] 6 [ho l d , k ] 36 [V , w ] 7 [P , m u tc x ] 37 [V , m u te x ] 8 [pu s h , n r ] 38 le n d , p r o c e s s i 9 [p u s h , $ 1 ] 3 9 [p u s h , $2 ] 10 [a dd ] 4 0 [p u s h , i ] 1 1 pop , n« 4 1 hnuh 12 [ i f , n r , ° , $ l , go t o , t 4】 4 2 [po p , k ] 13 【g o to 15】 4 3 【ho ld , k】 14 [P , w ] 4 4 [P , w ] 15 [V , m u te x ] 4 5 [w r i t e , [ 119 , 114 , 105 , 116 , 10 1 , 114 , 3211 17 [w r i t e , i ] 4 7 [w r i t e , [32 , 6 1 , 6 1 , 6 1 , 6 1 , 6 1 , 6 1 , 62] ] Scanned by CamScanner A n e x o A A L i n gu a 吕 e m V a l e 4 2 35 18 【w r i t e 【3 2 , 6 1, 6 1 , 6 1 , 6 2】] 4 8 [n l ] 19 [n l ] 4 9 [p u s h , r a n do m ($3 ) ] 20 [p u s h , r a n d o m ($3 ) ] 50 [p u s h , $ 1 ] 2 1 push , 1 5 1 a d d 2 2 [a d d ] 52 [p o p , k ] 23 【p o p , k 】 5 3 【ho l d , k】 24 hol d , k 54 wMe , 9 , 4 , 10 5 , 6 , m , 4 , 320 25 [w r i t e , [ 1 14 , 10 1 , 9 7 , 100 , 10 1, 1 14 , 32 ] ] 55 [w r i t e , i ] 26 [w D t e , i ] 56 [w r i te , [32 , 60 , 4 5 , 4 5 , 4 5 , 4 5 , 4 5 , 4 5 ] ] 27 [w D t e , [32 , 60 , 4 5 , 4 5 , 4 5 ]] 5 7 [n l ] 2 8 【n l】 5 8 【V , w 】 29 [P , m u t e x ] 59 l e n d , p r o c e s s i N a t a b e l a d e s ím b o l o s , n a l i n h a c o r r e s p o n de n t e a o p r o c e s s o r e a d e r , c o l u n a A G R U P , a p a f e c e i ( 1 , 2 0 ) E s t a é a f o r m a de r e p r e s e n t a r a e s p e c i f i c a ção " ( i : = 1 t o 2 0 7 d o c ód i g o f o n t e A . 6 0 f u n c i o n a m e n t o d o s i m u l a d o r O s i m u l a d o r d a m áq u i n a v i r t u a l é i m p l e m e n t a do p e l o p r o g r a m a V 4 2 I n i c i a l m e n t e , o s i m u l a d o r u t i l i z a a s i n f o r m a çõ e s d a t a b e l a d e s fm b o l o s p a r a g e r a r a s e s t r u t u r a s d e d a d o s r e q u e r i d a s e m te n q»o d e e x e c u ç ão A p ó s , f a z a e x e c u ç ão d o c ód i g o v i r t u a l do p r o g r a m a A s e s t r u t u r a s i nt er nas u s a d a s p a r a r e p r e s e n t a r v a r i áv e i s , a r r a y s , p r o c e s s o s , m o n i t o r e s , t a s ks , i l i r e a d s , e t c , s i o s i m p l e s e n ão s e r ão de t a l h a d a s n e s t e m a n u a l N a v e r d a d e , t o d o m o n i t o r te m u m a f i l a d e e n t r a d a , m a i s u m a f i l a p a r a c a d a v a r i áv e l c o n d i t i o n d e c l a r a d a T o d o p r o c e s s o (o u t h r e a d ) t e m u m r e g i s t r o d e s c D t o r e u m a p i l h a T o d a t a s k t e m u m a f i l a d e e s p e r a p a r a c a d a p r o c e d u r e t i po e n 1r y d e c l a r a d a , m a i s u m a e s t mn t u r a c o m d u a s f i l a s (a m b a s f o r m a d a s p o r p a r e s de t h r e a d s ) , a s q u a i s s e r v e m p a r a i m p l e m e n t a r o s e n c o n t r o s n e s s a t a s k U m a d a s B+l a s é u s a d a p a r a e s c a l o n a r o s r e n d e z v o u s e a o u t r a , p a r a e n c a de a r o s p a r e s q u e e s t ão à e s p e r a de r e a v a l i a ç ão d a s c o n d i çõ e s pa r a s e u s r e n d e z v o u s (v e r s e m ân t ic a d o c o m a n d o a c c e p t n a s e ç ão A 2 ) C o n v ém o b s e r v a r q u e a s o p e r a qMe s m u t e x be g i n , n +u 1e x e n d l o c k u n l o c k b lo c k ge t l d( X ) w a ke u p ( 1d ), i n s e r t { i d , Q) , f Br s t{U , is e m p ty (Q) , c o u n t (Q) m y s e lf y ie ld ho l d (X ) c lo c kT i m e p (s ) , V (S) , Jb r k , c r e a t e (p ) , j o in u d) , q u i t , e n ¢e r m o n (M ), te a v e m o n (M ) w a i t (C) w a i l {C P r io r ) s i gn a l (C ) , s e n d ( ïd , M s g ), r e c e i v e { ïd , M s g ) , r n d z v s (Et ), a c c e p t ( Et ) e g iv e u p r ch Qu e n o r m a l m e n te s e D a m i m p le m e n t a d a s p e lo ke r n e l do s i s t e m a o pe r a c i o n a l , s äo a q u i i m p le m e n ra d a s d i r e ta m e n t e pe l o " h a r d w a r e " d a m áq u in a v i r t u a l A . 7 0 a m b i e n t e d e e x e c u çã o V 4 Pa r a in g r e s s a r n o a m b i e n t e d e e x e c u ç ão V 4 b a s t a d a r u m d u p l o c l i c k n o fc o n e d o a r q u i v o W c o m p i te r p t O c o m p i l a d o r e s c r e v e r a ent [ o u m a m e n s a g e m de a p r e s e n t a ç o , s e g u id a d o p r o m p t " 1 " Scanned by CamScanner 236 S i s t e m a s O pe r a c io n a i s m r a m aÆ c o n c o r r e n t e S S T o s c a n i R S d e O l i v e i r a e A S Ca r i s s i m i A . 7 1 0 s p r o t 11p t s d o s i s t e m a O s i s t e m a p o d e s e r u s a do a p a r t i r d e p r o m p t s p r o l o g ( " ? ) o u d e p r o m p t s V a l e 4 ( ' 4 ) A di f e r e n ça b ás i c a é q u e n o m o d o p r o l o g o s i s te m a e x ig e q u e o s c o m a n do s a c a b e m c o m u m " " O s i s t e m a i n i c i a c o m u m p r o m p t p r o l o g O c o m a n d o " v 4 " (o b s e r v e q u e o " v " é m i n ú s c u l o ) f a z o s i s t e m a p a s s a r pa r a o m o d o V 4 E s ta n do n o m o do V 4 , o c o m a n do " p 1 " f a z o s i s te m a v o l t a r a o m o d o P r o l o g E a s s i m po r d i a n te N o m o d o P r o l o g (a p e n a s n e s t e m o do ) , o u s u ár i o p o d e r e de f i n i r a lg u n s a t r ibu t o s do s i s t e m a , u s a n d o o s s e g u i n t e s c o m a n d o s m a x T i m e ( T ) Re de %n e o n ú m e r o m áx i m o de i n s t r u çõ e s q u e u m p r o c e s s o o u t h r e a d p o d e e x e c u t a r (o v a l o r d e fa u l t é T - 100 00 ) a l e a t ( N ) d e f i n e a a l e a t o De d a de d e e s c o l ha a s e f u s a d a n o e s c a l o n a m e n t o d o s p r o c e s s o s e t l1r e a d s N de v e s e r u m v a l o r e n t r e O e 10 0 (o v a l o r d e fa u t l é N = 100) e n d T h r e a d s ( x ) De f i n e s e o f i m d a s t h r e a ds e d o s p r o c e s s o s de v e s e r m o s t r a d o a o u s u ár i o o u n ão X d e v e s e r o n o u o $ (o v a l o r d e fa u l t é o Æ A . 7 . 2 C o m p i l a çã o e e x e c u çã o d e p r o g r a m a s 0 c o m a n d o " c f a r q " c o m p i l a o p r o g r a m a f o n te q u e e s tá n o a r q u i v o " a r q T x m O c o m a n do " c " (s e m o p e r a n d o ) c o m p i l a o p r o g r a m a qu e e s tá n o a r q u i v o p a dr ão ' V 4 i n p u t T x t - Se a c o m p i l a ção t e m s u c e s s o , p o d e m s e r u s a d o s o s c o m a n d o s t s X p a r a i m pD m i r a t a be l a d e s ím b o l o s e o c ó d i g o ge r a d o p a r a i m p r i m i r a pe n a s a t a be l a de s ím b o l o s p a r a s a l v a r o c ód ig o g e r a do n o a r q u i v o d e s a íd a p a d r o ' v 4 o u t p u t T x t " p a r a e x e c u t a r o c ód igo ge r a do Se u m e r r o é d e te c t a do d u r a n te a c o m pi l a ção , o u s u ár i o r e c e be u m a m e n s a ge m o n de lhe é pe rg u n t a do O q u e é q u e e u f a ç o ? C o m o r e s po s t a , o u s u ár i o p o de u t i l i z a r o s s e g u i n te s c o m a n d o s p r é de f i n ido s n a d a pa r a a b o r t a r a e x e c u ção (o s c o m a n do s B B n " , " a b o r t " . " a " , ' b a r a " , " s t o p " e ' b y e " s ão s i n ôn i m o s ) v a + (o u " g o " ) p a r a p r o s s e g u i r a e x e c u ç o , de s c o n s id e r a n do o e r r o t o k pa r a m o s t r a r o s t o k e n s q u e s e g u e m a o t o ke n e m qu e o e r r o f o i d e t e c t a do P S Scanned by CamScanner A n e x o A A L i n g u a g e m V a l e 4 2 37 p a n p a t p a r a m o s t r a r a p i l ha de a n ál i s e do c o m p i l a do r p a r a m o s t r a r a p i l ha de a t r i bu t o s do c o m p i l a d o r t r a c e p a r a i n i c i a r u m t r a c e Pr o l o g da e x e c u ção do c o m p i l a do r A . 7 . 3 D e p u r a çã o d e p r o g r a m a s A l i n g u a ge m o f e r e c e f a c i l i d a d e s de de p u r a ção a t r a v és do s c o m a n do s p a u s e , de bu g l , d e bu g 2 , n o d e b u g e e x e c (X ), j á d e s c D t o s n a s e ção A 2 A q u i s ão a p r e s e n t a do s d e t a l he s s o b r e a s j a n e fa s d e in s p e çã o e o s c o m a n d o s d e v i s u a l i z a çã o J a n e l a s d e i n s p e çã o Qu a n d o a i n s t r u ção p a u s e é e x e c u t a d a , o s i s t e m a f a z u m a p a u s a n a e x e c u ção e a b r e u m a j a n e l a de i n s p e ç ão , a t r a v és d a q u a l o u s u áD o p o d e v e D f i c a r o e s t a d o a t u a l d o s i s t e m a (p r o c e s s o s , f i l a s , v a r i áv e i s , e t c ) E s s a m e s m a j a n e l a p o d e s e r a b e r t a q u a n d o a e x e c u ç ão e s t á n o m o d o p a s s o a p a s s o (v e r c o m a n d o d e b u g 2 ) , a t r a v és d o s c o m a n d o s " j a n " o u " ! " E n q u a n t o a j a n e l a e s t á a b e r t a , o s i s t e m a e s c r e v e (w a i l i n g ) e a g u a r d a p o r u m c o m a n do d o u s u ár i o A i n t e r a ção e n t r e o u s u ár i o e o d e pu r a d o r s e m a n t ém a té qu e o u s u ár i o f e c h e a j a n e l a , o q u e é f e i t o a t r a v és de u m c o m a n d o " n " , " ! " , " v a i - o u " 9 o " C o m a n d o s d e v i s u a l i z a çã o p a r a v i s u a l i z a r o e s t a do d a e x e c u ção , o s i s t e m a W o fe r e c e o s c o m a n d o s a p r e s e n t a do s a s e g u i r v a r s e m a r r m o s t r a o s v a l o r e s d a s v a r i áv e i s i n t e i r a s e b o o l e a n a s m o s t r a o s s e m áfo r o s e s u a s f i l a s m o s t r a o s v a l o r e s do s (e l e m e n t o s do s ) a r r a y s r l i m o s t r a a r e a dy l is l o n m o s tr a a f i l a de e n t r a da de c a da m o n i t o r c o n m o s t r a a s v a r i áv e i s c o n diç o e s u a s f i l a s p r o m o s t f a o s a t r ib u t o s do s p r o c e s s o s p i d m o s t r a a s ide n t i da de s (n úm e r o s ún i c o s ) do s p r o c e s s o s e th r r a ds c x p (o u " m e g " ) m o s t r a a s fi l a s de m e n s a ge n s do s p r o c e s s o s q u e m c»s t r a a s f i l a s (v a r i áv e i s t i po qBBe u e ) d o p r o g r a m a m u t m o s t r a a f i l a de e s p e r a p o r e x c l u s o m ú t u a c 1 o (o u " t i m ) m o s t r a a ho r a a t u a l e a f i l a de e s pe r a do r e lóg lo e n t m o s t r a a s f i l a s d e e s pe r a da s e n t r ie s d a s ta s ks Scanned by CamScanner 23 8 Si s t e m a s - o n a i s e p r o g r a m a çao C o n c o r r e n t e S S T o s c a n i R S de O l i v e i r a e A S C a D s s i m i d b 1 a ci v a o m o d o d e d e p u r a ç ão d e b u g l d b 2 a t i v a o m o do de de p u r a ç o de bu g 2 n d b de s a t i v a o m o d o de de p u r a ção e m c u r s o v a i (o u " g o " , o u " . " o u " ! · ) f e c ha a j a n e l a de i n s pe ção t r a c e i n i c i a u m " t r a c e " p r o l o g (ú t i l pa r a de p u r a ção d o s i s te m a ) O s c o m a n d o s a n t e r i o r e s s ão i m p l e m e n t a do s p o r p r o c e d i m e n t o s q u e t a m bé m po d e m se r c h a m a d o s d i r e t a m e n t e , de d e n t r o d o p r o g r a m a , a t r a v és d o c o m a n d o e x e c E s t e s p r o c e d i m e n t o s f o r m a m u m a pe q u e n a b ib l io t e c a d e dep u r a çã o , a q u a l p o de s e r a m p l i a d a , d e a c o r d o c o m a n e c e s s i d a d e A . 8 0 s e r r o s m a i s c o m u n s E m b o r a a l i n g u a g e m V 4 a p r e s e n t e u m a s i n ta x e s i m p l e s , é f r e q ü e n t e a o c o r r ên c i a d e c e f t o s e r r o s O s e r r D s m a i s c o m u n s s ão c o m e n t a d o s a s e g u i r M a u m o d e : ' ; " 0 t o k e n " " é u s a d o p a r a s e p a r a r d e c l a r a çõ e s , c o m a n d o s e b l o c o s E l e n u n c a d e v e v i r a n t e s d e ' T ' . T " , " 】" , e l s e , e n d lo o p , e n d m o n i t o r , e n d ta sk e e n dp r o g r a m M a s , a o c o n t r ár i o d o q u e po s s a p a r e c e r , de v e v i r a n t e s d e m u t e x e n d , j á q u e e s te s e t r a t a de u m c o m a n d o (n ão é u m m a r c a d o r de f i m d e b l o c o ) A f a l t a d e u m " " p o de o c a s i o n a r m e n s a g e n s de e r r o e s t r a n h a s a d i a n t e , n o r e c o n he c i m e n t o de o u t r a s u n i da de s s i n tá t i c a s F i n a l d e p r o c e s s o o u d e p r o c e d i m e n t o 0 c o r p o d e u m p r o c e s s o o u de u m p r o c e d i m e n t o é f o r m a do p o r u m ún ic o c o m a n d o (p o d e s e r u m c o m a n d o c o m p o s t o , de l i m i t a d o po r " { " e " } " ) C o m o t a l , u m p r o c e s s o o u u m p r o c e d i m e n to n åo de v e te r m i n a r c o m a d e c l a r a ç ão " e n ' C a b e ça l h o d e u m p r o c e d i m e n t o O s e u t i p o U m e r r o c o m u m é 0 U SO de ' " , po r " e , pa r a Ca d a a r g u m e n t o , d e v e Se r e s pe c i f i c a do s i n t a x e , n o l u g a r de " : " O c o m a n d o a c c e p t t a m bé m u s a e s ta C h a m a d a d e u m p r o c e d i m e n t o t i po s d o s a r g u m e n t o s De v e s e r fe i t a po r " , " e n o po r " , " A lém d i s s o , n o s e e s pe c i f ic a o s V a l o r e s d o s a r g u m e n t o s n a c h a n 1a d a d e u m p r o c e d i m e n t o O s a r g u m e n t o s n ão p o de m s e r e x p r e s s ö e s n e m e le m e n t o s o u n o m e s d e a m y E m o u t r a spa l a v r a s , tem q u e s e r v a r i áv e i s s i m p le s o u c o n s t a n te s Pa r a a s f u n çö e s p r d e f i n id a s , p o r ém , o sa r g u m e n t o s p o d e m s e r v a r i áv e i s i n de x a d a s Scanned by CamScanner A n e x o A A L i n gu a ge m V a l e 4 239 f n d i c e s d e a r r a y T a l c o m o u m a r g u m e n t o n a c h a m a d a de u m p r o c e d i m e n t o , u m fn d i c e d e a r r a y t e m q u e s e r u m a v a r iá v e l s i n 1p l e s o u u m a c o n s t a n t e (n ão p o de s e r e x p r e s s o n e m e le m e n to de a r r a y ) D e c l a r a çã o d e a r r a ys e q u e u e s A r r a y s e q u e u e s n ão p o d e m s e r de c l a r a d o s d e n t r o de u m p r o c e d i m e n t o , n e m s e r e m p a s s a d o s c o m o a r g u m e n t o s E s t a d e c i s ão f o i t o m a d a p a r a s i r n p l i f i c a r a a l o c a ção d e s te s c o m p o n e n t e s , q u e , de o u t r o m o d o , t e D a q u e se r fe i t a n a p i l ha do p r o c e s s o i n v o c a do r C o n t
Compartilhar