A maior rede de estudos do Brasil

Grátis
35 pág.
Sistemas Operacionais e Programação Concorrente - Anexos

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

e 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 [p