T E R M I N A L
I N T E L H G E N T E : S I S T E M A M U L T T - T E R M I N A L-
A l c i n d o F e r r e i r a F i l h o
TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS PROGRAMAS DE P~S-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO R I O DE J A N E I R O COMO PARTE DOS R E Q U I S I T O S
NECESSARIOS
PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS (M. SC.).
A p r o v a d a por: ( P r e s i d e n t e )
e&
L
(
4
N e l s o n M a c u l a n F i l h o / ./-
S u e l i M e n d e s dos S a n t o s R I O DE J A N E I R O , R J-
B R A S I L OUTUBRO DE 1 9 7 8FERREIRA FILHO, ALCINDO
T e r m i n a l I n t e l i g e n t e : S i s t e m a M u l t i - T e r
-
mina1 b i o de ~ a n e i r d 1978.I X , 109p. 29,7cm (COPPE-UFRJ, S c ,
E n g e n h a r i a de S i s t e m a s , 19 78)
T e s e
-
Univ. Fed. Rio de J a n e i r o . Coor-
denação dos Programas de p ó s - ~ r a d u a ç ã o e m E n g e n h a r i a1 .Sa 6Xwahe ~ á s i c o I .COPPE/UFRJ II . ~ i t u
-
iii
A G R A D E C I M E N T O S
.
Ao P r o f . GUILHERME CHAGAS RODRIGUES, que nos o r i e n t o u no de- senvolvimento d e s t e t r a b a l h o com d e d i c a ç ã o incomum..
A e q u i p e de desenvolvimento e manutenção do S i s t e m a Operacio-
n a 1 do T I (SOCO)-
PAULO I V , ANTONIO I1 e FRANCISCO DUTFW-
que p r e s t o u um s u p o r t e i n e s t i m á v e l p a r a a e l a b o r a ç ã o do SMT..
Ao p e s s o a l do SERPRO-
o D i r e t o r de Desenvolvimento, G I L C I O ROBERTO AMARAL MARTINS e o s c o l e g a s d a A s s e s s o r i a de Apoio ao DesenvoPvimento, HENRIQUE BORK e J O S ~ L U I Z THADEU-
p e l o i n c e n t i v o e a p o i o c o n s t a n t e s.
.
A minha mulher-
MARIAJOSE:
-
c u j o i n c e n t i v o f o i fundamental p a r a que c o n s e g u ~ s s e m o s e l a b o r a r e s t e t r a b a l h o e que nos man-
t e v e com ânimo p a r a a s v á r i a s n o i t e s que passamos no NCE
,
quando da f a s e de t e s t e s ..
à n o s s a s e c r e t á r i a-
VEFW FERRAZ-
que t e v e a p a c i ê n c i a e o c a p r i c h o de d a t i l o g r a f a r nosso t r a b a l h o ..
Enfim, a t o d o s que d i r e t a ou i n d i r e t a m e n t e nos ajudaram na SMT e que p o r v e n t u r a não tenham v i n d o 5 n o s s a lembrança n e s - t e momento.i v
R E S U M O
O S I S T E M A M U L T I - T E R M I N A L ( S M T ) é um método de a c e s s o p a
-
r a t e r m i n a i s remotos o u l o c a i s , d'esenvolvido sob o S i a k e m a O p e - n a c i a n a R e m V i n c o ( S O C O ) do T E R M I N A L I N T E L I G E N T E ( T I ) do NÚCLEO DE COMPUTAÇÃO E L E T R ~ N I C A da UNIVERSIDADE FEDERAL DO R I O DE J A - NEIRO (NCE/UFRJ).D e um modo g e r a l é mostrada a f i l o s o f i a do S I S T E M A e o s e u funcionamento i n t e r n o , com a e s p e c i f i c a ç ã o d e t a l h a d a de ca- da um de s e u s m6dulos: I N I C I A L I Z A D O R , D I S P A T C H E R , I N T E R P R E T A - D O R D E C O M A N D O S , E X E C U T O R D E E I S , P R O C E S S A D O R D E I N T E R R U P Ç Õ E S e F I N A L 1 Z A D O R .
P e r m i t e ao programador, ao d e s e n v o l v e r a a p l i c a ç ã o , v e h apenas um t e r m i n a l e , em tempo de execução, serem d e f i n i d o s o s t e r m i n a i s que u s a r ã o concorrentemente a a p l i c a ç ã o . Todas as o p e r a ç õ e s de e n t r a d a e s a í d a dos t e r m i n a i s e r e s p e c t i v o s c o n t r o l e s de á r e a s de t r a b a l h o s ã o r e a l i z a d a s p e l o S M T e s ã o t r a n s p a r e n t e s t a n t o ao u s u á r i o (operador do t e r m i n a l ) como a o ' programador. O S I S T E M A f o i desenvolvido p a r a a p l i c a ç õ e s com b a i x a t a
-
x a de u t i l i z a ç ã o ; o número de t e r m i n a i s a s s o c i a d o s a uma d e t e r-
minada a p l i c a ç ã o em tempo de execução d e v e r á ser d e , no máximo,dez.
~ p l i c a ç õ e s . t í p i c a s s ã o : C o n t r o l e de Almoxarifado, Mar- cação de C o n s u l t a s H o s p i t a l a r e s , C o n t r o l e de L e i t o s em Hospi- t a l , e o u t r a s de n í v e l de u t i l i z a ç ã o semelhante.
A B S T R A C T
The MULTT-TERMINAL SYSTEM (SMT] i s a t e r m i n a l a c e s s method f o r l o c a l o r remote u s e , developed f o r o p e r a t i n g under t h e V i * b Opem&lonaR S y n t e m ( S O C O ] o£ t h e I N T E L L I G E N T TERMINAL
( T I ) b u i l t i n t h e NUCLEO DE COMPUTAÇÃO ELETRÔNICA o f t h e UNIVERSIDADE FEDERAL DO RIO DE JANEIRO (NCE/UFRJ)
.
The SYSTEM p h i l o s o p h y and i t s i n t e r n a 1 l o g i c i s shown i n a g l o b a l way and i t i s g i v e n a d e t a i l e d s p e c i f i c a t i o n o f e a c h module which compounds t h e SYSTEM: INICIATOR, VISPATCUER,
COMMANV INTERPRETER, 1 / O CONTROL, TNTERRUPT ffANVLER and
TERMINATOR.
I t p e r m i t s , t o t h e a p p l i c a t i o n programmer, w h i l e d e v e l o p i n g t h e a p p l i c a t i o n , t o s e e o n l y o n e X e n m i n a R and t h e network d e f i n i t i o n w i l l t a k e p l a c e o n l y a t t h e e x e c u t i o n t i m e .
SMT performs a11 o f 1/0 o p e r a t i o n s w i t h t h e t e r m i n a l s and r e s p e c t i v e work a r e a c o n t r o l s and do them i n a t r a n s p a r e n t way t o t h e u s e r ( t e r m i n a l o p e r a t o r ) and t h e a p p l i c a t i o n
programmer
.
A p l i c a t i o n s w i t h low r a t i o o f u t i l i z a t i o n a r e t y p i c a l
SMT u s e r s . The network maximum number o f l i n e s i s r e p r e s e n t e d by one d i g i t , i . e . , no more t h a n t e n t e r m i n a l s a r e p e r m i t t e d .
I n t h e p r a c t i c e , t y p i c a l a p p l i c a t i o n s a r e : On-line I n v e n t o r y C o n t r o l , H e a l t h Care C l i n i c a l Appointment S c h e d u l i n g , P a t i e n t Moni t o r i n g
,
and o t h e r a p p l i c a t i o n s w i t h t h e same l e v e 1 o f o n - l i n e u t i l i z a t i o n r a t i o .1 1 . 2 . CONCEITO DE PROGRAMA VIRTUAL
1 1 . 3 . C L A S S E S DE DADOS DO PROGRAMA
1 1 . 4 . USO DO TERMINAL
1 1 , 5 , 3 .
T E R M I N O
DO PROGRAMA VIRTUAL 1 1 . 5 . 4 . USO DE OUTROS ARQUT VOS1 7 . 5 . 5 . USO DE COMANDOS ESPECIAIS OA LINGUAGEM PLT1
111.2. 1 , AREAS E TABELAS DO SOCO UT1i.l ZADAS PE- LO SMT
111.2. 1 . 1 . T a b e l a R e s u X v i d a d e A h q u i v 0 6 L õ g L c o s
. .
11 1 . 2 . 1 . 2 . T a b e l a d e Artqu.ivo F h i c o 1 7 1 . 2 . 1 . 3 . N ú c l e o R e h i d e n X e
1 7 7 . 2 . 2 . AREAS E T A B E L A S C R I A D A S PELO S M T , N A . . .
M E M O R T A
7 1 7 . 2 . 2 . 1 , T a b e L a d e ~ a u Ú n i o a 1 1 7 . 2 . 2 . 2 . P o n X e i n o p a n a o E L e m e n X o d e TABUS 1 1 1 . 2 . 2 . 3 , E n d e n e ç oe
T a m a n h o d aAnea
d e V a d o n . . 1 1 1 . 2 . 2 . 5 . P o n X e i n o p u n aAnea
R e a e n v a e m D i a c o 11 1 . 2 . 2 . 6 . . . . P o n k e i n o p a n aa
~ n á x i m aAhea
d e D d-
c o D i b p o n x v e L 1 1 7 . 2 . 2 . 7 . T a m a n h o d o R e g i a k n o L ó g i c o d o A n y u i - . . v o que~a
o
SMT 1 1 1 . 2 . 2 . b . S a v e a n e a C o n X e n d o PC R e ne h v a
1 1 1 . 2 . 3 .AREAS
E T A B E L A S C R I A D A S PELO S M T , EM D I S C O 1 1 1 . 2 . 3 . 1 .Anea
d e V a d o n d e P h o g n a m a h V i n k u a i a 1 1 1 . 3 . DIAGRAMA CONCEITUAL DO SMT1 1 1 . 4 . ESTADOS DE UM PROGRAMA VIRTUAL
111.5. DESCRIÇÃO DA L ~ G I C A DO SMT
1 ,1 . T N l C 1 A L l Z A Ç Ã O DO SMT E PROGRAMAS V I R
-
T U A I S7 1 7 . 5 . 2 . L ~ G ~ C A V 0 PROCESSAMENTÚ DE U M PROGRAMA V I R T U A L
1 1 1 . 6 . ESPECIFICAÇ~O DOS MÓDULOS DO SMT
1 1 1 . 6 . 1 . I N I C 1 A L í Z A V O R 1 7 1 . 6 . 2 . EXECUTOR DE E I S 1 7 7 . 6 . 3 . D T S P A T C f f E R
7 1 1 . 6 . 4 , I N T E R P R E T AD O R DE COMANDOS
1 1 7 , 6 . 4 . 7 .
Funçõea
d o IN TERPRET ADOR p u n ao
En;ta-
d o 1 NAT7 VO FE1 1 7 . 6 . 4 . 2 .
Funçõea
d o T NT ERPRETA VOR p u n a o E a X a-
d o A T I VO FE7 7 1 . 6 . 4 . 3 , FunçÜea d o 1 N T E R P R E T A V O R p u n a o E n X a - d o 1 NATI VO T E S T E FE
viii 1 1 1 . 6 . 5 . . . . FINALTZADOR 7 7 7 . 6 . 6 . PROCESSADOR D E T N T E R R U P Ç Ã O IV. IMPLEMENTAÇÃO 1 V . 7 . 7 . EQUIPAMENTO PROPRIAMENTE 0 1 7 0 1 V . 7 . 2 . SOFTWARE D l S P O N f V E L l V . 7 , 2 . 7 . ShmLLeaçÜo d o Sa&twatte d o T 1 n o 8 - 6 7 0 0 ( C h o a a - S o d k w a n e ) 1 V , 7 . 2 . 2 . S i a t e m a O p e n a c h o n a R d o T 1 ( S O C O ) I V . 2. PROBLEMAS ENCONTRADOS
T V . 2 . 7 . DESCRIÇÃO DOS PROBLEMAS E SOLUÇÕES E N - C0 NTRADAS 1 V . 2 , 7 . 7 . C o m u n h c a ç ã o
enkhe
P h o g n a m a V h h t u a Re
o SMT 1 V . 2 . 7 . 2 . T e a t e d o S M T n o T I I V . 2 . 7 . 3 .Manu
e h o d e T e c R a d o d e T e t t m h n a h a- vZ-
d e o 1 V , 2 . 7 . 4 . O b k e n ç ü o d o E n d e h e ç oe
T a m a n h o d o A h-
y u i v a 7 V . 2 . 7 . 5 . Como T e a X a n o SMT n o T I , a o b o Con-
X h o R e d o SOCO 7 V . 2 , 7 . 6 . Como F a z e n R e d e n e n c h a a o I n k e n p h e t a - d o h P L T I d o P h o g h a m a d o ~ a u ã h h o V . 1 . RESULTADOS O B T I D O S V . 7 . 7 , T E M P O D E R E S P O S T A V E R S U S S O B R E P O S I Ç Ã O D E CARACTERES NA R E C E P Ç Ã O (OVERRUN) V . 1 . 2 . GASTO DE MEMORIA P R I N C I P A LV . .7 . 4 . . . U S O D E T E R M I N A I S L O C A I S x R E M O T O S V . 2 . 1 . I M P L E M E N T A Ç Ã O D E N O V O S C O M A N D O S V . 2 . 2 . I M P L E M E N T A Ç Ã O D E N O V O S T E R M I N A I S D E E / S € / O U M U D A N Ç A S D E P R O T O C O L O V . 2 . 3 . T M P L E M E N T A Ç Ã O D E N O V A S F U N Ç O E S DE E / S P A R A O S T E R M I N A I S V . 3 .
ANALISE
F I N A L DO TRABALHO V I . B I B L I O G R A F I A VIL. APÊNDICESV I I . 1 .
APENDICE
1-
ALTERAÇÕES P R O V I S ~ R I A S DO SMT PARA FUNCIONAR COM NÚCLEO NÃO RESIDENTE v11.2. APÊNDICE 2-
CALCULO
DOS TEMPOS APROXIMADOS DECADA FUNÇÃO DO PROCESS.INTERRUPÇ~ES
VIL. 3 . APÊNDICE 3
-
TABELA DE TEMPOS DAS MICRO-INSTRU-
ÇÕES P L T IVIL. 4 .
APENDICE
4-
PARTES DO SOCO ALTERADAS/UTILIZADAS P E L O SMTO TERMINAL INTELIGENTE ( T I ) é um micro-computador, b a s e
-
ado no micro-processador INTEL-800 8 , d e s e n v o l v i d o e c o n s t r u i d o p e l o NÚCLEO DE COMPUTAÇÃOELETRONICA
DA UNIVERSIDADE FEDERAL DO R I O DE J A N E I R O (NCE/UFRJ).
P o s s u i 1 6 K b y t e a de memória e a e l e pode-se c o n e c t a r q u a l q u e r d i s p o s i t i v o de e n t r a d a e/ou s a í d a , a t r a v é s de i n t e r f a - c e s c o n v e n i e n t e s . Atualmente, e s t ã o d i s p o n í v e i s p a r a i n s t a l a - ç ã o o s p e r i f é r i c o s : L e i t o r a de c a r t õ e s P e r f u r a d o s , I m p r e s s o r a , Unidade de F i t a C a s s e t e , Unidade de Disco, Console (composto de Teclado e Unidade de ~ i d e o )
,
eL i n h a
de comunicação.A s a p l i c a ç õ e s t í p i c a s do TI s ã o a q u e l a s d e s e n v o l v i d a s nos pequenos computadores. ~ p l i c a ç õ e s c o m e r c i a i s podem s e r de- s e n v o l v i d a s , e s t a n d o l i m i t a d a s p r a t i c a m e n t e p e l o tamanho da me-
mória, problema f a c i l m e n t e s u p e r á v e l p e l o f a t o de t o d o o A O
áRwa
-
he. ser d e s e n v o l v i d o n a linguagem PLTI
,
que é compatível com q u a l-
q u e r mudança do micro-processador.E x i s t e a i n d a a p o s s i b i l i d a d e de l i g a ç ã o a computador de maior p o r t e , f a c i l i t a n d o a p l i c a ç õ e s que requeiram maiores r e c u r
-
s o s ou um pré-processamento.A c o m e r c i a l i z a ç ã o do TI e x i g e que s e j a p o s s l v e l e s t e n - d e r s u a c a p a c i d a d e de atendimento a u s u á r i o s em l o c a i s d i v e r s o s de s u a i n s t a l a ç ã o .
Uma o u t r a n e c e s s i d a d e é o compartilharnento
,
p o r d i v e r - s o s u s u á r i o s , d a s a p l i c a ç õ e s em execução no TI, onde c a d a um d e-
ve t e r - a s e n s a ç ã o de ser o Ünico a e s t a r sendo a t e n d i d o .O SISTEMA MULTI-TERMINAL (SMT)
,
a s e g u i r d e s c r i t o , v i a - b i l i z a a l i g a ç ã o do TI com t e r m i n a i s t i p o v í d e o ou i m p r e s s o r e s p a r a atendimento da n e c e s s i d a d e de uso remoto, bem como da u t i - l i z a ç ã o de uma mesma a p l i c a ç ã o p o r v á r i o s u s u á r i o s .O SMT é o i n t e r m e d i á r i o e n t r e um t e r m i n a l v i d e o o u i m - p r e s s o z , acoplado a o ' T I , e o programa que o a t e n d e .
um número de t e r m i n a i s que não exceda a um (1) d i g i t o , o u s e j a , a t é dez t e r m i n a i s .
P a r a que um programa use o SMT como monitor de s u a s ope
-
r a ç õ e s de E/S com t e r m i n a i s , b a s t a que s e j a f o r n e c i d o o parâme- t r o adequado, e s p e c i f i c a n d o q u a l a r q u i v o l ó g i c o e s t á a s s o c i a d o a q u a l a r q u i v o f í s i c o do t i p o t e r m i n a l , no comando p a r a execu-
ç ã o do programa.O meio u t i l i z a d o p a r a s e p a s s a r a o SMT q u a n t o s e q u a i s s ã o o s t e r m i n a i s em uso p e l o programa é a concatenação de v á r i o s a r q u i v o s f í s i c o s a um Único a r q u i v o l Ó g i c o , que é uma f a c i l i d a - de p e r m i t i d a p e l o Sidkema Ù p e k a c i u n a l d u T I ( S U C O ) . Com i s s o
,
f i c a extremamente f á c i l a i n c l u s ã o o u e x c l u s ã o de u s u á r i o s (ou s e j a , t e r m i n a i s ) , e f e t i v a d a p e l a i n c l u s ã o ou e x c l u s ã o de a r q u i - vos f í s i c o s da r e f e r i d a concatenação.A g r a n d e vantagem é que o programador apenas p r e c i s a r á s e p r e o c u p a r e m t r a b a l h a r com um Único a r q u i v o l ó g i c o , cabendo a o SMT a d m i n i s t r a r t o d a a complexidade de a s s o c i a r v á r i o s t e r m i
-
n a i s a t a l a r q u i v o l ó g i c o em tempo de execução.Na f a s e de desenvolvimento dos programas que compõem um s i s t e m a é d e s e j &e1 t e s t a r e e x e c u t a r t a i s programas independen
-
temente d-o d i s p o s i t i v o de E/S dos dados, i s t o é, o programa que r e c e b e r á / e n v i a r á dados d e v e r á s e r o máximo p o s s í v e l independen- t e do d i s p o s i t i v o onde e s t a r ã o o s dados.O SMT é a t i v a d o p e l o SinXema Ú p e n a c i o n a l d a 71 ( SOCO ) e m função d a e s p e c i f i c a ç ã o de parâmetros i n d i c a n d o uso de t e r m i
-
n a i s no comando de execução; a i n d e p e n d ê n c i a do programa com r e l a ç ã o a s e u s d i s p o s i t i v o s de E/S6
m a n t i d a , l i m i t a d a e v i d e n t e-
mente p e l o uso de c a r a c t e r i s t i c a s e s p e c í f i c a s de cada d i s p o s i t i-
v0.
Exemplificando, se um programa p r e t e n d e u t i l i z a r a ca- r a c t e r í s t i c a c o n v e r s a c i o n a l de um t e r m i n a l , logicamente não ha- v e r á s e n t i d o nem p o s s i b i l i d a d e d e , em tempo de o p e r a ç ã o , t e r o d i s p o s i t i v o de E/S k e n m i n a l t r o c a d o p o r o u t r o q u a l q u e r . ~ a v e r á sempre um compromisso e n t r e a f l e x i b i l i d a d e p a r a t r o c a de d i s p o
-
s i t i v o s de E/S do programa e a e f i c i ê n c i a com que o s mesmos s e - s ã o u t i l i z a d o s .p&ug&aman -Xe4minain, devendo o programador r a c i o c i n a r como s e houvesse um k i c o t e r m i n a l l i g a d o ao programa, despreocupando
-
- s e q u a n t o ao número de t e r m i n a i s conectados. O número de usuá-
r i o s é l i m i t a d o apenas p e l a s c a r a c t e r i s t i c a s de c o n f i g u r a ç ã o e s-
c o l h i d a s p a r a a i n s t a l a ç ã o do 71, ou s e j a , p e l o número máximo de d i s p o s i t i v o s p r e v i s t o s p a r a serem l i g a d o s ao TI e p e l a memó- r i a t o t a l i n s t a l a d a ( a u t i l i z a ç ã o de memória p e l o programa c r e s-
terá
com o n h e r o de t e r m i n a i s a e l e v i n c u l a d o s ) .O SISTEMA MULTI-TERMINAL (SMT) é um método de a c e s s o a t e r m i n a i s l i g a d o s ao TI v i a l i n h a de comunicação. E l e implemen t a o c o n c e i t o de phoghUmC4 v i h k u a l , que é o f a t o de um programa s e r a c e s s a d o p o r v á r i o s t e r m i n a i s , t u d o se passando como se ca- da t e r m i n a l t i v e s s e um programa que e x c l u s i v a m e n t e o a t e n d e s s e . A s a p l i c a ç õ e s t í p i c a s p a r a o SMT s ã o a q u e l a s de c o n s u l - t a s a a r q u i v o s e m a c e s s o a l e a t ó r i o ou indexado, a t u a l i z a ç ã o a n - R i m de a r q u i v o s indexados ou a l e a t ó r i o s , e a q u e l a s que tenham a s c a r a c t e r í s t i c a s de t e l e p r o c e s s a m e n t o
.
O SMT é c o n s i d e r a d o p e l o Siakema Opehacional da TI ( S c C O ) como uma r o t i n a de E/S, sendo p o r t a n t o c a r r e g a d o j u n t o com o programa de a p l i c a ç ã o quando f o r e s p e c i f i c a d o o uso de t e r m i - n a i s p a r a o mesmo.
A memória i n i c i a l ocupada é da ordem d a q u e l a g a s t a pe- l a s r o t i n a s de E/S c o n v e n c i o n a i s , porém c r e s c e n d o de a c o r d o com o n k e r o de t e r m i n a i s que u s a r ã o o programa.
Como t o d o o a o &twahe b á s i c o do T I , o SMT é e s c r i t o na linguagem P LTI
,
p o s s i b i l i t a n d 6 s u a t o t i l c o m p a t i b i l i d a d e com q u a l q u e r micro-processador que, no f u t u r o , venha a s e r usado pe-
10 TI.
O programa de a p l i c a ç ã o d e v e r á ser e s c r i t o n a linguagem PLTI, comunicando-se com o SMT v i a comandos READ ou WRZTE s o l i - c i t a d o s p a r a um a r q u i v o l ó g i c o , ao q u a l foram a s s o c i a d o s , em tempo de c a r g a do programa, um ou mais t e r m i n a i s .
7
1 1 . 2 . CONCEITO DE PROGRAMA VIRTUAL
N a memória somente e x i s t i r á uma c ó p i a do programa
-
o phogharna h e a f-
que a t e n d e r á a t o d o s o s t e r m i n a i s que o e s t i v e-
r e m usando e m modo v i h k u a l ,4
Cada t e r m i n a l t e r á a c e s s o a um phoghama v i h k u a f , que e o phoyhama h e a f com o s dados c o r r e s p o n d e n t e s a o t e r m i n a l que o e s t i v e r usando. O a c e s s o a o p h U g h U m U v i h k u a f p o r um t e r m i n a l é a d m i n i s t r a d o p e l o SMT de modo a que t o d o s o s t e r m i n a i s tenham a mesma chance d e uso do p h U g h U m U v i h k u d c o r r e s p o n d e n t e .
Quando o n í v e l de a t i v i d a d e dos t e r m i n a i s não f o r o mes
-
mo p a r a t o d o s o s t e r m i n a i s , ou s e j a , e x i s t i r e m t e r m i n a i s maia-
a k i v o n e t e r m i n a i s menoa a k i v o a , a chance de uso que o s menua a - k i v o a dispensarem s e r á dada à q u e l e s maia a k i v o a , i s t o d e v i d o ao8
11.3. CLASSES DE DADOS DO PROGRAMA
O s dados usados p e l o programa s ã o c l a s s i f i c a d o s e m d o i s t i p o s : g R o b a h b e R o c a h a
.
O s dados g R o b a h a s ã o a q u e l e s comuns a t o d o s o s p r o g r a - mas v i r t u a i s , i s t o
6 ,
não se a l t e r a m com o programa v i r t u a l que e s t i v e r com o c o n t r o l e . Normalmente deverão ser d e c l a r a d o s nos b l o c o s mais i n t e r n o s do programa r e a l , e não s e r ã o a t u a l i z a d o s p e l o SMT.O s dados R o c a h h s ã o a q u e l e s e s p e c í f i c o s a um d e t e r m i n a - do programa v i r t u a l , a l t e r a n d o - s e em função do programa v i r t u a l que e s t i v e r sendo p r o c e s s a d o . ~ e v e r ã o s e r d e c l a r a d o s o b r i g a t o - r i a m e n t e no b l o c o m a i s e x t e r n o do programa r e a l , porque d e v e r ã o ser a t u a l i z a d o s p a r a cada programa v i r t u a l que f o r p r o c e s s a d o .
P a r a o programa r e a l o s dados R o c a h a s e r ã o o s d e c l a r a
-
dos no b l o c o mais e x t e r n o , e o s dados g R o b a h a s e r ã o o s d e c l a r a - dos nos b l o c o s m a i s i n t e r n o s do programa.11.4. USO DO TERMINAL
O s t e r m i n a i s a s s o c i a d o s ao programa r e a l poderão e s t a r em d o i s e s t a d o s : akhvod e hnakivon
.
O s t e r m i n a i s akhvob s ã o a q u e l e s que e s t e j a m usando o s r e s p e c t i v o s programas v i r t u a i s .
O s t e r m i n a i s hnakhvon s ã o a q u e l e s q u e , embora e s t e j a m fazendo p a r t e d a l i s t a de t e r m i n a i s a s s o c i a d o s ao p r o g r a m a r e a l , não e s t e j a m usando nenhum programa v i r t u a l .
P a r a a a t i v a ç ã o e d e s a t i v a ç ã o de t e r m i n a i s s ã o usados comandos especificas do SMT: $ATIVE e $FIM.
O comando $ATIVE deve s e r dado quando um t e r m i n a l hnakh
-
v o d e s e j a r s e t o r n a r akhvo, i s t o
6 ,
a s s o c i a r - s e a um programa v i r t u a l e i n i c i a r processamento.O comando $ F I M deve s e r dado quando um t e r m i n a l d e s e j a r e n c e r r a r s u a s a t i v i d a d e s , i s t o é, f e c h a r o a r q u i v o l ó g i c o a que e s t á a s s o c i a d o .
I n i c i a l m e n t e , todos o s t e r m i n a i s e s t ã o em e s t a d o hnakh-
v o , devendo s e r dado o comando $ATIVE em cada t e r m i n a l que d e s e
-
j a r se t o r n a r aXhvo.Um t e r m i n a l que
já
t e n h a s i d o dciakhvado, i s t o6 ,
dado o comando $FIM, poderá s e r novamente akhvado, b a s t a n d o p a r a is-s o que se dê o comando $ATIVE.
~ l é m
dos comandos acima d e s c r i t o s e x i s t e m m a i s d o i s co- mandos que implementam uma função de t e s t e de hundwahc dos t e r - minais ( t e c l a d o ).
s ã o e l e s : $TESTE e $ FIMTESTE.
P a r a s e i n i c i a r o t e s t e de t e c l a d o do t e r m i n a l o mesmo d e v e r á e s t a r em e s t a d o hnakhvo, devendo e n t ã o ser dado o coman- do $TESTE. E s t e procedimento s ó s e e n c e r r a r á quando o coman d o $UMTESTE f o r dado.
Todos o s t e x t o s ( s e q u ê n c i a de c a r a c t e r e s s e g u i d o s de
@
) s e r ã o r e t r a n s m i t i d o s p a r a o t e r m i n a l p a r a v e r i f i c a ç ã o .TI. 5 , I . DETALffES DO A R Q U T V 0 L Ó G ~ C O
O programa somente d e v e r á u s a r um Único a r q u i v o l ó g i c o a s s o c i a d o a t e r m i n a i s ; em c a s o de e x i s t i r m a i s de um, o s r e s u l
-
t a d o s s ã o i m p r e v i s f v e i s .P a r a o a r q u i v o l ó g i c o do programa r e a l a s s o c i a d o a t e r - m i n a i s duas f u n ç õ e s s e r ã o a t e n d i d a s p e l o SMT: READ e W R l T E .
P a r a a função W R l T E será assumido o uso de c a r a c t e r e s de c o n t r o l e i n d i c a t i v o s de posicionamento, na t e l a , do t e x t o a s e r e s c r i t o .
N ~ O é p e r m i t i d o o uso de o p e r a ç õ e s de E/S com o a r q u i v o l ó g i c o em mais de uma phacedune do programa, i s t o é, não é pos- s i v e l serem s o l i c i t a d a s o p e r a ç õ e s de E/S num mesmo programa no b l o c o mais e x t e r n o ( p r i n c i p a l ) e em b l o c o s i n t e r n o s do programa (pnuceduheb). I s t o é d e c o r r e n t e do f a t o de e x i s t i r e m parâme
-
t r o s de c o n t r o l e de pnucedune a t i v a p a r a o lnkenphekudutt P L T l na akuck do T l , e , ao programa v i r t u a l p e r d e r o c o n t r o l e numa ope- r a ç ã o de E/S, nada i n d i c a que a o ganhá-lo de novo a b kach não t e n h a s i d o a l t e r a d a p o r o u t r o s programas v i r t u a i s p o s i c i o n a d o s e m o u t r a s p a r t e s do programa r e a l . Se t o d a s a s o p e r a ç õ e s d eE/S e s t i v e r e m no mesmo b l o c o , a i n t e g r i d a d e da nkccck é mantida e consequentemente o programa v i r t u a l será executado s e m p r o b l e
-
mas.O s c a r a c t e r e s de c o n t r o l e p o s s í v e i s s ã o o s do p r o t o c o l o TTY (TeRekype)
,
c a r a c t e r í s t i c a dos t e r m i n a i s que podem ser co- n e c t a d o s ao 71,poderão e x i s t i r num mesmo t e x t o a s e r e s c r i t o no t e r m i - n a l v á r i a s o c o r r ê n c i a s dos c a r a c t e r e s de c o n t r o l e
-
FORM- F E E D( * O C ) , L l N E - F E E D (aOA)
,
e CARRIAGE-RETURN ( # O D ).
A ú n i c a r e s - t r i ç ã o imposta é que não poderão e x i s t i r num mesmo t e x t o d o i s CARRIAGE-RETURN a d j a c e n t e s , p o r r a z õ e s de c o n t r o l e i n t e r n o do SMT.O maior tamanho de r e g i s t r o p o s s í v e l
e
de 8 1 bykea,
de- v i d o ao uso do c a r a c t e r e de c o n t r o l e p a r a l i n h a s a serem e s c r i - t a s no t e r m i n a l , e de 80 bykea p a r a l i n h a s a serem l i d a s do t e r-
mina1 p e l o programa r e a l . Como c o n s e q u ~ n c i a , o tamanho d e uma l i n h a l i d a do a r q u i v o l ó g i c o será i g u a l ao tamanho do r e g i s t r o l ó g i c o , e s p e c i f i c a d o p a r a o a r q u i v o , menos 1 ( - 1)
.
No c a s o de ser d e c l a r a d o p e l o programa r e a l um tamanho de r e g i s t r o maior que 81 byzea p a r a o a r q u i v o l ó g i c o a que e s t a
-
r ã o a s s o c i a d o s t e r m i n a i s , o SMT c a n c e l a r á o programa com mensa- gem c o r r e s p o n d e n t e no p a i n e l do TI.ESPECI
FT
CAÇÃO TERMINAISA e s p e c i f i c a ç ã o dos t e r m i n a i s que e s t a r ã o a s s o c i a d o s a o programa r e a l d e v e r á s e r f e i t a p e l o comando de execuç2io do p h o - gnama, que t e m o s e g u i n t e formato:
o n d e , V017 - v o l w r i z d o a r q u i v o q u e a n & o p r o g r m ;
p & m
-
parârretros que são passados ao programa;7
a>rqlLivo
-
hnkemo-
= exkemo [v0131 : pehid&icoL
hv&etrno-
nome do arquivo definido no programa-fonte; e x A m o-
non-e de arquiva existente em detemiinado d i s cor criado por u t i l i t á r i o específico, qile descreveum
tenninal e m ternus de endereço físico, fomiato detransmissão e velocidade C@ transmissão.
V013
-
nom do v o l w onde estã externo; se omitido, é assumido dism do sistema residente.pdd&co
-
nmem6nia qus indica tipo do periférico; especificar SMT.nome
-
nom da imagem do pmgrama, guardado pelo Carregador dePrograma (CPROG) no disco & v o l m V012, oorrespondente
2
a n c atenação f e i t a no amando de execução. E v i t a especificação de tÒ
-
dos os dados a cada vez ~ I E s e executar o programa.71.5.3.
TERMINO
V0 PROGRAMA VIRTUAL. . .
Quando um t e r m i n a l se d e s a t i v a r , i s t o é, d e r o comando
$ FIM, s e r á passado ao programa v i r t u a l c o r r e s p o n d e n t e à condi- ção d e E O F , que poderá s e r a c e i t a ou não p e l o programa v i r t u a l em função do que e s t i v e r programado, p o i s o t e r m i n a l s ó s e r á e - f e t i v a m e n t e d e s a t i v a d o quando o programa v i r t u a l d e r EXI T.
Mesmo d e p o i s de o c o r r i d a a condição de EOf p a r a o a r q u i
-
vo l ó g i c o , o programa ~ o d e r á e x e c u t a r o p e r a ç õ e s de E/S (READ.. e/ou WRITE.): com o mesmo, cabendo ao programador a r e s p o n s a b i l i-
dade de p r e v e r que em o p e r a ç õ e s de e n t r a d a ( R E A D:
p o s s a ocor- r e r a condição d eEOf.
O t é r m i n o de t o d o s o s programas v i r t u a i s i m p l i c a r á no t é r m i n o do programa r e a l , i s t o é, quando t o d o s o s programas v i r
-
t u a i s derem E X T T , mais nenhum e s t a r á em processarnento, e o pro- grama r e a l t e r m i n a r á .O SMT somente a d m i n i s t r a a a t u a l i z a ç ã o dos dados l o c a i s a cada programa v i r t u a l , nada fazendo e m r e l a ç ã o a dados g l o - b a i s . Por e s t a r a z ã o , c a s o o u t r o s a r q u i v o s l ó g i c o s ( e m f i t a
,
d i s c o , i m p r e s s o r a , e t c . ) sejam u t i l i z a d o s p e l o programa r e a l , s e r ã o comuns a t o d o s o s programas v i r t u a i s .~ x c e ç ã o se f a r á a a r q u i v o s l ó g i c o s de a c e s s o d i r e t o , on
-
de e x i s t e a p o s s i b i l i d a d e de serem p a r t i c u l a r e s a cada programa v i r t u a l desde que s e j a m tomados o s cuidados n e c e s s á r i o s .~ p Ó s a s o l i c i t a ç ã o de E/S p o r um programa v i r t u a l , como o c o n t r o l e pode ser dado a o u t r o programa v i r t u a l p e l o SMT, t o - dos o s dados r e f e r e n t e s ao a r q u i v o de a c e s s o d i r e t o (SEEK, e t c . ) devem s e r r e p o s i c i o n a d o s p e l o programa v i r t u a l .
1 1 . 5 . 5 . USO PE COMANDOS ESPECIAIS DA L I N G U A G E M PLTI
. -
-O s comandos SET e RESET, que servem p a r a i d e n t i f i c a r no p a i n e l q u a l t r e c h o do programa e s t á sendo executado, não devem ser usados em t r e c h o s que contenham operações de E/S com o SMT. I s t o porque o programa v i r t u a l p e r d e o c o n t r o l e a cada o p e r a ç ã o de E/S, sendo e s t e c o n t r o l e dado a o u t r o programa v i r t u a l , des- t r u i n d o a s e q u ê n c i a numérica dos c o n j u n t o s SETIRESET.
O comando T R A C E , a d m i t i d o p e l a linguagem PLTI, pode s e r usado p a r a teste do programa r e a l , desde que somente um (1) p r o
-
grama v i r t u a l s e j a a t i v a d o . Caso s e j a a t i v a d o m a i s d e um (1),
a s e q u ê n c i a de i n s t r u ç õ e s mostrada no v i d e o será uma m i s t u r a de s e q u ê n c i a s de i n s t r u ç õ e s dos v á r i o s programas v i r t u a i s .
Como f o i d i t o no c a p i t u l o a n t e r i o r , o SISTEMA MULTI-TER
-
MINAL (SMT) é um a d m i n i s t r a d o r ( m o n i t o r ) de programas v i r t u a i s , c a r a c t e r i z a d o um programa v i r t u a l quando o programa r e a l e s t i - v e r sendo e x e c u t a d o p a r a um determinado t e r m i n a l .P a r a a r e a l i z a ç ã o d i s t o o SMT u t i l i z a um c o n j u n t o de t a
-
b e l a s e á r e a s i n t e r n a s , bem como á r e a s mantidas p e l o Siakema O-p e & a c i a n a l do T I (SOCO), que servem como elementos de comunica- ç ã o e n t r e o s d i v e r s o s mÕdulos, cada um com uma função e s p e c í f i - c a , e que compõem o SMT.
O SMT e s t á e s t r u t u r a d o em módulos com funções e s p e c í f i - c a s que c r i a m e u t i l i z a m a s t a b e l a s e á r e a s a n t e r i o r m e n t e men- c i o n a d a s . O s mõdulos do SMT s ã o o s s e g u i n t e s : INI C 1 A í . T ZADOR
-
~ e s p o n s á v e l p e l a i n i c i a l i z a ç ã o g l o b a l do SMT. PROCESSADOR DE INTERRUPÇ~ES-
~ e s p o n s á v e l p o r i d e n t i f i - c a r e p r o c e s s a r a s i n t e r r u p ç õ e s causadas p e l a p r e s e n ç a de um c a r a c t e r e na i n t e r f a c e com o s R i n h ou p e l ot é r m i
-
no da t r a n s m i s s ã o de um c a r a c t e r e .EXECUTOR DE E/S
-
Responsável p e l a execução d a s o p e r a -ções
de e n t r a d a e s a i d a s o l i c i t a d a s p e l o programa.DISPATCffER
-
Responsável p e l a a t i v a ç ã o dos d i v e r s o s p r o-
gramas v i r t u a i s , de acordo com o e s t a d o em que e s t i v e-
rem ( s a l v a n d o e a t u a l i z a n d o a s á r e a s de dados r e s p e c t i - v a s ).
INTERPRETADOR DE COMANDOS
-
Responsável p e l a i n t e r p r e t a-
ç ã o de t o d o s o s t e x t o s r e c e b i d o s dos t e r m i n a i s .F I N A L 1 ZADOR
-
Responsável p e l a f i n a l i z a ç ã o de cada pro- grama v i r t u a l , quando f o r r e c e b i d o um E X l T do mesmo, bem como f i n a l i z a ç ã o t o t a l do SMT quando o Último programa v i r t u a l s e d e s a t i v a r .16
111.2. TABELAS E
AREAS
MANIPULADAS PELO SMTCada uma das á r e a s e t a b e l a s , t a n t o do SMT como do SOCO, s ã o c r i a d a s e a l t e r a d a s p e l o s módulos enumerados no i t e m a n t e - r i o r (111
.I.)
,
da forma d e s c r i t a nos s u b - i t e n s s e g u i n t e s .111.2.7. AREAS E TABELAS DO SOCO UTTLTZADAS P E L O SMT
111.2.7.7. T a b e l a Ren o l v i d a de Anquivun LÓgican (TRAL)
. . .
2 c r i a d a p e l o E d i X o n de Redenenciaa ExXennan ( R E F E X )
,
quando g e r a o programa e x e c u t ã v e l ( p e l o 1nXenpneXadon P L T T ) a p a r t i r da s a í d a o b j e t o da CompiRadon PLTT. i? u t i l i z a d a p e l o 1- N1 ClAi.1 Z A D Ú R p a r a v e r i f i c a ç ã o e obtenção do tamanho do r e g i s t r o l ó g i c o .Cada elemento da TRAL c o r r e s p o n d e a um a r q u i v o l ó g i c o do programa e contém (FIGURA 111.1 .) : ( a ) i n s t r u ç ã o que c a r r e - ga o s e u i d e n t i f i c a d o r ; ( b ) um d e s v i o p a r a a TAF a t i v a a s s o c i a
-
da; ( c ) o tamanho do r e g i s t r o do a r q u i v o .111.2.7.2. T a b e l a de Anquivo F h i c o (TAF)
. . . .
c r i a d a p e l o C P R O G após a c a r g a do programa, com b a s e nos dados f o r n e c i d o s p e l o comando de execução do mesmo. É usa-
da p e l o PROCESSADOR D E TNTERRUPÇÕES p a r a r e c e b e r / t r a n s m i t i r o t e x t o , r e c e b i d o / t r a n s m i t i d o c a r a c t e r e a c a r a c t e r e ; p e l o TNTER- PRETADOR DE COMANDOS quando d a movimentação de t e x t o s p a r a a
2-
r e a d e l e i t u r a do programar e p e l o E X E C U T O R D E EIS q u e , quando do i n i c i o d e o p e r a ç ã o de s a í d a , move o t e x t o p a r a a TAF, d e i x a n
-
do a c a r g o do PROCESSADOR D E TNTERRUPÇÓES o término d a mesma.a . o t i p o da T A f ( t i p o do Arquivo ~ i s i c o ) ;
b . um d e s v i o p a r a a r o t i n a de E/S c o r r e s p o n d e n t e ao A r
-
q u i v o F i s i c o a s s o c i a d o ;c. um p o n t e i r o p a r a a próxima TA? c o n c a t e n a d a ;
d. informações a d i c i o n a i s que dependem do t i p o de A r - quivo F í s i c o . No c a s o de t e r m l n a i s , a s informações a d i c i o n a i s s ã o (FI
-
GURA 111.1.): a. e n d e r e ç o f i s i c o do t e r m i n a l( R i n h )
; b . formato d a t r a n s m i s s ã o ; c. v e l o c i d a d e de t r a n s m i s s ã o ; d . p o n t e i r o p a r a o Último c a r a c t e r e r e c e b i d o / t r a n s m i t i-
do (1 b y z e ) ;PROGRAMA - P L T I
O P DE E/S (ARQ. LOGICO 1 )
INSTRUÇAO QUE CARRE-
- 3 BYTES f 2BYTES f lB)'TEi
-ESMO
I
RQUIVO
--m TAF' s
1 DE E/S T A F DO
i
CARAC.I' T CORRESP. CONCATENA- LINK A
7
L I D O /o A
F DA CORRESF?
i
1
TRANSMOU TRANS/ D M I S S ~ O
k1BYTE.t B Y T < S ~ L ~ B Y T E S ~ ~ . . ~ BYTES/&~BYTES~-82 BYTES
1 I ! 1 1
OGICO
1 1 1 . 2 . 1 . 3 . . . . . N ú c l e o R e s h d e n X e ( N R E S )
O NRES é uma á r e a f i x a n a memória contendo uma s é r i e de informações de c o n t r o l e p a r a o SOCO, bem como algumas r o t i n a s a u x i l i a r e s muito usadas (FIGURA 111.2.)
.
O SMT u s a r á , do N R E S , algumas informações
já
e x i s t e n t e s e c r i a r á o u t r a s p a r a s e u p r ó p r i o c o n t r o l e .a .
Desvio p a r a o e n X h y - p o i n t do programa (Pos 35 a 37 Hex) usada p a r a c á l c u l o do e n d e r e ç o e tamanho d a5-
r e a de dados do programa p e l o I N I C I A L 1 ZAVOR.6. E X I T (Pos 38 a 55 Hex) a l t e r a d a p e l o I N I C I A L 1 ZAVOR, p a r a s e r wn d e s v i o p a r a o SMT p r o c e s s a r o f i m do programa v i r t u a l , quando e s t e r e c e b e r $FIM do t e r m i
-
na1.
R e s t a u r a d a p e l o F l NALI ZAVO R a o t é r m i n o do SMT. c . Endereços da T R A L e da TAF em uso (Pos 70 a 73 Hex) a t u a l - i z a d a p e l a r o t i n a a u x i l i a r TRATAF com o s ende- r e ç o s d a T R A L e da TAF em uso no momento.d . Endereço da A U V e U h e U do I n X e h p h e k u d o h P L T 1 (Pos 7 4 e 75 Hex) c r i a d o p e l o n ú c l e o do I n R e h p n e k u d o h P L T I
,
apontando p a r a a 6 U v e u h e u c u j o formatoé:
.
STATUS-
r e s u l t a d o ( r e t o r n o ) d a Última operação de E/S r e a l i z a d a ( m i c r o - r o t i n a 1 N T E S ) ;.
r e g i s t r a d o r e s 8, C , V , E , A , He
L , n e s t a ordem;.
e n d e r e ç o de i n i c i o e de fim p a r a opção VUMP de m e m ó r i a quando em uso o TRACE P L T I ;.
P h o g h u m C o u n R e h do 1 n t e h p h e R u d a h P L T I , s a l v o quan-
do o TRACE PLTI e s t i v e r em uso;.
P h o g h ~ m C a u n X e h da Última o p e r a ç ã o de E/S execu- t a d a p e l a m i c r o - r o t i n a I N T E S (apontando p a r a a p o s i ç ã o s e g u i n t e ao código da operação de E/S).
P o n t e i r o p a r a o n ú c l e o do T n k e n p n e k a d o n PLTT I n d i c a d o r de o v e n @ a w ( q u a l q u e r t i p o ) 7 9 78 P o n t e i r o p a r a h k a c k de SETIRESET do C o m p i l a d o n PLTI - - S a v e a n e a dos r e g i s t r a d o r e s : STATUS 8, C, V, E, A, H e L Endereço da TAF em uso (Última r e f e r e n c i a d a )
Endereço da TRAL em uso (Última r e f e r e n c i a d a ) N h e r o de l i n h a s d a t e l a do v í d e o ( c o n s o l e ) Número de c a r a c t e r e s d a l i n h a do vfdeo ( c o n s o l e ) ~ Ü m e r o de l i n h a s Ú t e i s e s c r i t a s no v í d e o ( c o n s o l e ) 76 7 4 72 70 6F 6E 6 D LAMPA 5E E n k h y - p o i n k do CPROG
Endereço em d i s c o onde e s t á o CPROG
5C 5A
I
~ Ü m e r o de b y t e s do CPROG 58 Endereço de c a r g a do C P R Ó G E X I T INCHL 28 56 - 3 8 Desvio p a r a o e n k n y - p o i n k do programa (JMP) ~ Ú m e r o de r e g i s t r o s l i d o s p e l o RATCH (CPROG) LUZES (Desvio p a r a LAMPA)P o n t e i r o p a r a o Último b y k e da á r e a l i v r e Endereço do d i r e t ó r i o do d i s c o 35 33 30 2E 2 C Data do d i a : DDMMAA ( 3 b y k e n ) 25 I N D E X 20 P o n t e i r o p a r a o s p a r â m e t r o s
I n d i c a d o r de parâmetro: f O tem p a r h e t r o ; = O não tem
1 E 1D
I
LDEND DECHLI o 8
1 8 STEND 1 0 INDDX 100Tamanho da memória (em b l o c o s de 2 5 6 b y k e h )
FIGURA 111.2. N ~ C L E O RESTDENTE DO S O C O (NRES)
1 7 1 . 2 . 2 . .
AREAS
E TABELAS CRIADAS P E L O . SMT, NA MEMORIA. .
l I 1 . 2 . 2 . l . T a b e l a de ~ a u á n i a a (TABUS)
A TABUS
6
c r i a d a p e l o módulo I N I C I A L I Z A D O R quando da o- c 0 r r ê n c i . a da p r i m e i r a o p e r a ç ã o de E / S , a t u a l i z a d a p e l o s m6dulos E X E C U T O R D E E I S , I N T E R P R E T A D O R D E C O M A N D O S , PROCESSADOR D E 1N- T E R R U P Ç Õ E S e F I N A L I Z A D O R , e u t i l i z a d a p e l o D T S P A T C H E R no c i c l o de b u s c a de programas v i r t u a i s p r o n t o s p a r a serem p r o c e s s a d o s . A TABUS contém: a . e n d e r e ç o f í s i c o do t e r m i n a l ( R i n h ),
usado p e l o P R O - CESSADOR D E I N T E R R U P Ç O E S p a r a l o c a l i z a r área de l e i-
t u r a / t r a n s m i s s ã o c o r r e s p o n d e n t e ao t e r m i n a l que cau s o u a i n t e r r u p ç ã o ;b .
a
uveatteu contendo Pnagnum CounXen do 'InXenpneX ado
n
P L T I ( P C ) ;c. e n d e r e ç o da á r e a e m d i s c o c o r r e s p o n d e n t e à á r e a de dados a s s o c i a d a ao programa v i r t u a l quando de s u a p r i m e i r a a t i v a ç ã o ;
d. r e t o r n o da o p e r a ç ã o de E/S (Última r e a l i z a d a ) ; e . p o n t e i r o p a r a a T A f que contém á r e a de r e c e p ç ã o /
t r a n s m i s s ã o c o r r e s p o n d e n t e ao programa v i r t u a l ;
.
e n d e r e ç o da á r e a de E/S p a r a a q u a l deve s e r movido o t e x t o quando da r e a l i z a ç ã o o p e r a ç ã o de l e i t u r a do t e r m i n a l ;g . e s t a d o do programa v i r t u a l , a t u a l i z a d o p o r v á r i o s m6dulos do SMT de acordo com autômato e m a t r i z de e s t a d o s c o r r e s p o n d e n t e s (FIGURA 1 1 1 . 4 . )
.
11 1.2.2.2. . . . . Pankeiha puna
a
ERemenkode
TABUSdo elemento c o r r e s p o n d e n t e ao Último programa v i r t u a l a t i v o . c r i a d o e a t u a l i z a d o p e l o DTSPATCHER quando da a t i v a ç ã o de pro- gramas.
1 11.2.2.3. . . . . Endeneça e Tamanha da Anea de Dadaa d a
Pna
-
gnama
0 Endetteço e o Tamanho da Atteu de Dados do Pttognama s ã o c r i a d o s p e l o 1NICTAL1ZADOR e usados p e l o D T S P A T C H E R p a r a s a l - v a r e a t u a l i z a r a á r e a de dados de cada programa v i r t u a l .
O Tamanha da Attea de Dadoi é guardado de s u a s formas: o tamanho e x a t o e o tamanho arredondado p a r a um número i n t e i r o de s e t o r e s (512 b y k e a ) de d i s c o , e s t e Último p a r a p o s s i b i l i t a r a gravação em d i s c o das á r e a s de cada programa v i r t u a l .
111.2.2.4. Saveanea da RoZhna E X Z T
A Saveanea da Rokina E X T T contém a p a r t e d e s t r u í d a p e l o SMT p a r a c r i a r um d e s v i o p a r a o mesmo p r o c e s s a r q u a l q u e r E X l T dado p e l o programa.
e
c r i a d a p e l o 7N1CTALTZADOR quando e s t e a 1-
t e r a a E X T T , e u t i l i z a d a p e l o F I N A L I Z A D O R p a r a r e c o n s t r u i r a E - X1T ao término do programa r e a l .117.2.2.5. PanXehna puna A m a Reaenva em Dhaco
. .
O Ponkehna puna Attea Reaettva em Disco t e m o endereço da á r e a de d i s c o que contém a imagem de á r e a de dados do programa quando da o c o r r ê n c i a d a p r i m e i r a operação de E/S.
e
c r i a d o pe- l o lN1ClALlZADOR e u t i l i z a d o p e l o TNTERPRETADOR D E COMANDOS pa- r a i n i c i a l i z a r a á r e a de dados de t e r m i n a l que t r a n s m i t a o co- mando $A71 V € .11 1.2.2.6. . . . . Ponkeina paha a PnÕxima Anea de D i a co D i a po
-
nzveRO Ponkeino puna a Phtxima Ahea de
Disca
Diapon~vek? con-t é m
o e n d e r e ç o d e á r e a de d i s c o a ser u t i l i z a d o p e l o INTERPRETA-
DOR D E C O M A N D O S p a r a g u a r d a r á r e a de dados do próximo t e r m i n a l que p e l a p r i m e i r a vez d e r o comando $AT1 V € .111.2.2.7. Tamanho d o Regiatno 1Õgico d o A q u i v o que uaa
o
SMTO Tumanho d a Regiakha 1Úgica d a Anquiva que uaa o SMT contém o tamanho do r e g i s t r o a ser e s c r i t o no t e r m i n a l ( i n c l u i - do o c a r a c t e r e de c o n t r o l e ) e o tamanho mais um (+ 1) do r e g i s - t r o a s e r l i d o do t e r m i n a l .
fi
c r i a d o p e l o 1N1CTALIZADOR e u t i - l i z a d o p e l o E X E C U T O R D E E / S e p e l o I N T E R P R E T A D O R D E COMANDOS n a r e a l i z a ç ã o , r e s p e c t i v a m e n t e , das o p e r a ç õ e s de s a í d a e de e n t r a - da.111.2.2. b . Saveanea Contendo PC Reaenva
O Saveahea contendo
a
PC Reaehva, que c o r r e s p o n d e àque- l e da p r i m e i r a o p e r a ç ã o de E / S , é c r i a d a p e l o lN1CIALIZADOR e-
u t i l i z a d a p e l o TNTERPRETADOR D E COMANDOS p a r a c r i a ç ã o do P C no-
e lemento de TABUS quando um programa v i r t u a l f o r a t i v a d o v i a co- mando $ ATI V € .111,Z. 3 .
AREAS
E TABELAS C R I A D A S P E L O S M T , EM D1SCO. . .
11 1.2,3.7. Anea de Dadoa de Pnoghamaa Vihkuain
. . . .
A Ãnea de Dadoa
,
e m d i s c o , uma (1) p a r a cada programa v i r t u a l a t i v o , é c r i a d a p e l o I N T E R P R E T A D O R D E COMANDOS p a r a ca- da t e r m i n a l que t r a n s m i t i r $ A T I V E ( t o r n a r - s e a t i v o ).
a c e s s a -da pelo I31SPATCff E17 quando passa o c o n t r o l e de um programa v i r - t u a l p a r a o u t r o , p a r a s a l v a r e a t u a l i z a r , respectivamente, a á- r e a de dados.
~ l é m dessas Aheun de Dudon acima, e x i s t e a Aheu de Da- don Renehvu, que serve p a r a ativação de programas v i r t u a i s , e é a p r i m e i r a á r e a do disco.
111.3. DIAGRAMA CONCEITUAL DO SMT
P a r a melhor compreensão da d e s c r i ç ã o l ó g i c a de c a d a mó- d u l o do SMT, a s e g u i r mostramos o diagrama c o n c e i t u a l do SMT
(FIGURA 111.3.)
,
que p r o c u r a m o s t r a r g r a f i c a m e n t e como s e pro-c e s s a o f l u x o de comunicações e n t r e o
InXehpheXadun
PLTZ, o p r o-
grama, e cada mÕdulo do SMT.1: OPER. DE E/S (READ OU WRITEI OUTRA OPER. DE E/S OUTRA OPER. DE E/S ÁREA LIVRE -ROM
-
FIGURA III. 3: ESTRUTURA DO SMT E LIGACÕES C/ PROGRAMA REAL1 1 1 . 4 . ESTADOS DE UM PROGRAMA VIRTUAL
Um programa v i r t u a l pode e s t a r em onze (11) e s t a d o s d i - f e r e n t e s , conforme a s e q u ê n c i a das o p e r a ç õ e s de E/§ o c o r r i d a s :
INATIVO ENTRADA PENDENTE ( INATI VO E P )
-
Programa v i r t u - a l não a t i v a d o , i s t o é, não f o i r e c e b i d o a i n d a o coman- do $ATIVE.TNATI VO FIM DE ENTRADA ( I N A T I VO FE)
-
Programa v i r t u a l i n a t i v o , após r e c e b e r uma mensagem a i n d a não a n a l i s a d a .ATIVO O K
-
Programa v i r t u a l p r o n t o p a r a ser e x e c u t a d o , a p a r t i r de um determinado PC.ATIVO SAfVA PENDENTE (ATIVO S P )
-
Programa c u j a Última o p e r a ç ã o de E/S f o i um WRITE que a i n d a não e s t á comple- t a d o , porém a o p e r a ç ã o já e s t á sendo e x e c u t a d a .A 7 1 VO ENTRAVA PENDENTE ( A 7 1 VO E P )
-
Programa v i r t u a l que s o l i c i t o u a o p e r a ç ã o de E/§ REAV, que a i n d a não f o i com-
p l e t a d a .ATIVO FIM DE ENTRADA (ATIVO FE)
-
Programa c u j a Última operação de E/S f o i um READ que já e s t á completado ( Cn r e c e b i d o ).
ZNATI VO TESTE ENTRADA PENDENTE (INATIVO TESTE E P )
-
T e r-
mina1 que ' p e d i u t e s t e do hundwune do s e u t e c l a d o ( d i g i - t o u $TESTE).
INATIVO TESTE FIM DE ENTRADA
r e c e b i d o de t e r m i n a l que e s t á
1NATl VO TESTE s A T D A PENDENTE
(INATIVO TESTE FE)
-
Texto t e s t a n d o s e u t e c l a d o .( I N A T I VO TESTE S P )
-
Texto sendo e n v i a d o de v o l t a a t e r m i n a l quee s t á
t e s t a n d o s e u t e c l a d o .INATIVO s A ~ v A PENDENTE (INATIVO S P J
-
Programa v i r t u a l i n a t i v o , com mensagem de e r r o a t r a n s m i t i r a i n d a nãocompletada.
INATIVO MENSAGEM PENDENTE (INATIVO MP)
-
Programa v i r-
t u a 1 i n a t i v o , com mensagem de a t i v a ç ã o sendo e n v i a d a ao t e r m i n a l que o a t i v o u .O autômato que d e s c r e v e a s mudanças d e e s t a d o d e cada programa v i r t u a l , em função da evolução do mesmo, i s t o é, o c o r - r ê n c i a de READS, WRITES, EXITS, i n t e r r u p ç Õ e s , e t c . , é a p r e s e n t a
-
do na ( F I G U R A 1 1 1 . 4 . ) a s e g u i r .QQ OUTRA COISA COISA
UQ
OUTRA COISA COISA INATIVO EP INATIVO FE ATIVO OK ATIVO SP ATIVO EP ATIVO FE INATIVO TESTE EPI
INATIVO TESTEFEI
81
9 INATIVO MP 11 - FIGURAm.
4: AUTOMATO E TABELA DE TRANSICÕES CORRESPONDENTES A MUDANCAS DE ESTADO DO PROGRAMA VIRTUAL.111.5. DESCRIÇÃO DA L ~ G I C A DO SMT
O diagrama c o n c e i t u a l do SMT (FIGURA 111.3.) mostrou g r a f i c a m e n t e a s i n t e r r e l a ç õ e s e n t r e o programa r e a l e o SMT com o s s e u s d i v e r s o s módulos e t a b e l a s . A s e g u i r
é
d e s c r i t o , p a s s o a p a s s o , o caminho que é s e g u i d o quando as o p e r a ç õ e s de E/S vão sendo a t e n d i d a s d u r a n t e a execução dos v á r i o s programas v i r t u - a i s .1 I I . 5 . 1 . . . . INTCIALIZAÇÃO DO SMT E PROGRAMAS VIRTUAIS
A p r i m e i r a o c o r r ê n c i a é a c a r g a p e l o C P R O G , n a memória, do programa r e a l e d a s r o t i n a s de E/S s o l i c i t a d a s p e l o comando de execução do programa, i n c l u s i v e o SMT, que, como j á dissemos, f a z p a r t e do grupo de r o t i n a s de E/S.
O c o n t r o l e é e n t ã o p a s s a d o p e l o C P R Ú G ao programa r e a l que s e i n i c i a , sendo e n t ã o e x e c u t a d a s t o d a s a s i n s t r u ç õ e s i n i
-
c i a i s , e n t e n d i d a s como sendo a q u e l a s e x e c u t a d a s a n t e s d a p r i m e i-
r a operação de E/S com t e r m i n a i s . T a i s i n s t r u ç õ e s , comuns a t o-
dos o s programas v i r t u a i s , s e r ã o e x e c u t a d a s uma Única vez e pe- l o programa r e a l .Ao s e r s o l i c i t a d a a p r i m e i r a o p e r a ç ã o de E / S , o c o n t r o - l e é passado ao SMT v i a d e s v i o s s u c e s s i v o s : do programa r e a l p a r a a TRAL ( C A L ) , da T R A L p a r a a p r i m e i r a TAF a s s o c i a d a ( J M P ) ,
e da TAF p a r a o módulo E X E C U T O R DE EIS do SMT ( J M P ) .
O E X E C U T O R DE EIS chamará a r o t i n a a u x i l i a r TRATAF, c u j a função é a t u a l i z a r o s campos T R A L e TAF e m uso no NRES e e m s e - g u i d a d e t e r m i n a r á que t a l o p e r a ç ã o de E/S é a p r i m e i r a a ocor- rer, passando imediatamente o c o n t r o l e ao módulo 1NIClALI Z A D Ú R .
O INICIAL1 ZADOR c r i a r á e n t ã o o s elementos de TABUS ( p a r
-
t e ) a p a r t i r dos dados de cada TAF a s s o c i a d a à T R A L , mensagem de a t i v a ç ã o de programa v i r t u a l p a r a a á r e a de E/S n a TAF, mo- vendo p a r a o campo E ~ k a d a d o Phaghumu VihXuaR de cada elementode TABUS, e s t a d o TNATl VO SP, e preparando o s i n t e r f a c e s p a r a a s o p e r a ç õ e s de E/S com a s l i n h a s de comunicação.
s e r á guardado também o PC do lnkenpnekudoh PLTT ( r e f e - r e n t e p r ó p r i a operação de E/S s o l i c i t a d a ) numa á r e a r e s e r v a do SMT p a r a f u t u r a s a t i v a ç õ e s de programas v i r t u a i s p o r t e r m i - n a i s que j á tenham s i d o d e s a t i v a d o s ($FIM) . e e s t e j a m s e r e a t i - vando ($ATIVE).
Em s e g u i d a , com b a s e na e s t r u t u r a p a d r ã o dos programas, o TNICTALT Z A D Ú R c a l c u l a r á o e n d e r e ç o e tamanho d a á r e a de dados do programa r e a l , que é l o c a l a cada programa v i r t u a l .
A á r e a de dados s e r á e n t ã o guardada em á r e a p r ó p r i a do SMT p a r a uso e m f u t u r a s a t i v a ç õ e s de programas v i r t u a i s , ã seme
-
l h a n ç a do que é f e i t o com o PC r e s e r v a .
O e n d e r e ç o da á r e a de dados, bem como s e u tamanho c a l c u
-
l a d o , s ã o guardados em á r e a p r ó p r i a do SMT p a r a uso p e l o DTSPAT-
C f f E R quando na passagem de c o n t r o l e a o s v á r i o s programas v i r t u - a i s p a r a s a l v a r e/ou a t u a l i z a r a s r e s p e c t i v a s á r e a s d-e dados.e
também guardado o tamanho da á r e a de dados, a r r e d o n - dando p a r a um número i n t e i r o de s e t o r e s do d i s c o p a r a p o s s i b i l i-
t a r a gravação d a s á r e a s de dados l o c a i s , c o r r e s p o n d e n t e s a o s programas v i r t u a i s , em d i s c o .B
v e r i f i c a d o p e l o TNTCIALTZADOR s e a á r e a d i s p o n í v e l em d i s c o comporta o n h e r o de t e r m i n a i s a s s o c i a d o s a o programa r e - a l , a t r a v é s de comparação do tamanho da á r e a d i s p o n i v e l ( e x i s - t e n t e no NRES) com a á r e a t o t a l s o l i c i t a d a . Em c a s o n e g a t i v o , o programa r e a l é c a n c e l a d o com mensagem c o r r e s p o n d e n t e .N e s t a p o s i ç ã o o SMT e s t á i n i c i a l i z a d o e o INTCIALTZADOR e x e c u t a r á s u a s t a r e f a s f i n a i s : a l t e r a r o i n i c i o - da r o t i n a E X T T
( 3 p r i m e i r o s bykes) p a r a serem um d e s v i o i n c o n d i c i o n a l p a r a o FINAL1 ZADOR e , p o r Último, c o l o c a r um d e s v i o no n ú c l e o do Tnkeh
-
phekadah PLTT p a r a o PROCESSADOR DE TNTERRUPÇÕES, fazendo com que a p a r t i r d e s t e momento s e j a m s i m u l a d a s a s i n t e r r u p ç õ e s .O Tnkehphekudon PLTT e n t ã o se e n c a r r e g a r á d e , a cada c o n j u n t o de i n s t r u ç õ e s PLT1 e x e c u t a d a s (no momento f i x a d o e m u- m a (1) i n s t r u ç ã o ) , p a s s a r o c o n t r o l e ao PROCESSADOR DE 7NT-ERRUP
Após c o l o c a r o d e s v i o no NRES, o INICTALIZADOR p a s s a o c o n t r o l e ao DISPATCHER.
A t é e s t e momento, t o d o s o s procedimentos s ã o comuns a
t o d o s o s programas v i r t u a i s , i s t o
6 ,
s ã o e x e c u t a d o s a n i v e l de programa r e a l e uma Única v e z , p o i s s ã o procedimentos de i n i c i a-
l i z a ç ã o .pós i s t o , o s procedimentos s ã o p a r t i c u l a r e s a c a d a p r o
-
grama v i r t u a l e ocorrem e m função da mudança de e s t a d o de cada um, de modo a s s h c r o n o , c o n t r o l a d o p e l o DISPATCHER, que sempre p e s q u i s a r á em TABUS o próximo programa v i r t u a l p r o n t o p a r a ser p r o c e s s a d o , segundo o e s t a d o em que cada um s e e n c o n t r e .l I I . 5 . 2 . L Ú G I C A DO PROGESSAMENTO DE UM PROGRAMA VIRTUAL
P a r a f a c i l i d a d e de entendimento s e r á d e s c r i t o daqui em d i a n t e o que o c o r r e com um (1) determinado programa v i r t u a l . Na r e a l i d a d e , tudo i s s o a c o n t e c e p a r a t o d o s o s programas v i r t u a i s , em p a r a l e l o , e , como já f o i d i t o , a s s i n c r o n a m e n t e , c o n t r o l a d o p e l o DTSPATCffERI que sempre r e i n i c i a r ã a p e s q u i s a do próximo programa v i r t u a l p r o n t o p a r a s e r p r o c e s s a d o a p a r t i r do elemen- t o de TABUS s e g u i n t e ao Último programa v i r t u a l que e s t a v a sen- do p r o c e s s a d o . I s t o a s s e g u r a r á uma d i s t r i b u i ç ã o uniforme de a- tendimento a t o d o s o s programas v i r t u a i s , em função da a t i v i d a - de p r ó p r i a de cada um.
Após a i n i c i a l i z a ç ã o do SMTI o DTSPATCffER, e s c r i t o e m PLTI de modo a p e r m i t i r a execução c o n c o r r e n t e com o PROCESSA
-
D O R DE TNTERRUPÇOES, e n t r a r á num c i c l o de b u s c a em TABUS a t é que algum t e r m i n a l s o l i c i t e a a t i v a ç ã o de um programa v i r t u a l v i a comando $ATIVE. I s t o s i g n i f i c a que o PROCESSADOR DE TNTERRUP- COES t e r á r e c e b i d o algum t e x t o completo, e mudado o e s t a d o do programa v i r t u a l a s s o c i a d o ao t e r m i n a l que e n v i o u o t e x t o p a r aT N A T T V O FE.
O DlSPA7CHER e n t ã o i d e n t i f i c a r á que e s t a ação o c o r r e u