Buscar

Sistemas Operacionais e Programação Concorrente - Anexos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Outros materiais