• Nenhum resultado encontrado

Publicações do PESC Estudo de um Supervisor para um Interpretaoor Cobol

N/A
N/A
Protected

Academic year: 2021

Share "Publicações do PESC Estudo de um Supervisor para um Interpretaoor Cobol"

Copied!
66
0
0

Texto

(1)

"ESTUDO DE UM S U P E R V I S O R PARA UM 1-NTERPRETADOR COBOL" B r u n o C o r r e i a da N Ô b r e g a Q u e i r o z T R E EM CIÊNCIAS (M. SC

.

)

.

A p r o v a d a p o r : d e n t e R I O DE J A N E I R O ESTADO DA GUANABARA

-

B R A S I L AGOSTO DE 1 9 7 4

(2)
(3)

AGRADECIMENTOS

-

Ao P r o f e s s o r M a r t i n A . Diamond p e l a p a c i e n t e o r i e n t a ç ã o da- d a a e s s e t r a b a l h o .

-

Aos f u n c i o n á r i o s da COPPE e da B i b l i o t e c a d a U F R J ,

-

A L u i s ~ Õ b r e g a d e Q u e i r o z p e l o a p o i o e c o l a b o r a ç ã o d.urante minha permanência no Rio d e J a n e i r o .

(4)

iii

Esse t r a b a l h o

6

um e s t u d o de um s u p e r v i s o r p a r a um i n

-

t e r p r e t a d o r COBOL, que tem p o r o b j e t i v o u t i l i z a r pouco e s p a ç o de m e

-

mória p r i n c i p a l .

Consta a i n d a d e uma d e s c r i ç ã o da linguagem u t i l i z a d a , d a forma i n t e r n a d a s i n s t r u ç õ e s e dos dados com t o d a s a s t a b e l a s que

(5)

ABSTRACT

This work consists of the design of the supervisor module for a COBOL interpreter.

The main goal of this interpreter is to use small

ammounts of main memory so that it can be implemented on a Mini- computer

.

A

description of the language, the inkernal form of

(6)

INDICE

Introdução

...

1

Forma interna das instruções

...

2

Fase de análise

...

3

Buffer

...

3

...

~reguência das instruções

4

Forma interna dos dados

...

4

...

Algoritmo de gestão das instruções 4

...

Algoritmo de gestão das variáveis 5

...

Subrotina das instruções 5 O Mini-COBOL

...

6

Identification division

...

6

Environment Division

...

7

Data division

...

7

Procedures division

...

8

A forma interna das instruções

...

10

~ u ~ d r u p l a s

...

10

código de operações

...

12

ADD

...

1 3 Ciose e Display

...

14

(7)

Divide. E x i t e Go To

...

15 Move e M u l t i p l y

...

1 6 Open. Read e S t o p

...

17 S u b t r a c t . Write e Perform

...

18 DeclaraçÕes de d e s v i o s

...

1 9 I F

...

20

...

Exemplo de

um

I F 2 1 CAPÍTULO IV

...

T a b e l a s u t i l i z a d a s p e l o s u p e r v i s o r 23 Tabela de v a r i á v e i s

...

23 Endereço na memória

...

2 4 Tipo-V

...

26 MUD

...

26 Ordem na t a b e l a

...

26 Tabela de ~ s p e c i f i c a ç õ e s

...

29 P i c t u r e s

...

2 9 Occurs

...

35 Desloc

...

36

tu ação

do supervisar

...

36 Tabela de L i t e r a i s

...

37

...

T a b e l a de V a r i á v e i s

emp porá rias

38 T a b e l a de Arquivos

...

39

Fase d e ~ n t e r p r e t a ç ã o e s u p e r v i s ã o

...

4 1

(8)

...

Tabela de

estão

de ~ernória 4 4

...

Algoritmo de

a estão

de ~ e m Ó r i a 45

estão

de variáveis

...

46

...

Algoritmo de

a estão

de ~ a r i s v e i s 51 ~ e l o c a ç ã o

...

53

estão

dos Literais

...

56

(9)

O o b j e t i v o d e s t e t r a b a l h o

é

d e s e n v o l v e r um i n t e r p r g t a d o r COBOL p a r a Mini-Computadores. Logo d e p o i s de s u a c r i a ç ã o e p o s t e r i o r d i v u l g a ç ã o , o COBOL passou a ser sem nenhuma d ú v i d a a m a i s i m p o r t a n t e e mais u t i l i z a d a linguagem d e programação p a r a f i n s co

-

m e r c i a i s . Segundo a r e v i s t a f r a n c e s a L'INFORMATIQUE em uma e n q u e t e recentemente l e v a d a a e f e i t o nos E s t a d o s Unidos, na q u a l foram v i s i

-

t a d ò s 3 . 0 0 0 nÜcleos d e computaqão, t o d o s com equipamentos da t e r c e i

-

r a g e r a ç ã o , a s l i n g u a g e n s d e a l t o n í v e l a p r e s e n t a r a m a s s e g u i n t e s p e r c e n t a g e n s de u t i l i z a ç ã o : COBOL 77% FORTRAN 19% PL1 4 % Em p a r a l e l o

5

r á p i d a d i f u s ã o do COBOL no mundo i n

-

t e i r o , o s mini-computadores foram sendo seguidamente a p e r f e i ç o a d o s e s u a u t i l i z a ç ã o nos mais d i v e r s o s t i p o s d e t r a b a l h o f o i c r e s c e n d o d e ano p a r a ano. Um d o s p r i n c i p a i s r e s u l t a d o s d a e v o l u ç ã o d o s ming computadores f o i a a c e n t u a d a queda do c u s t o d e s s e s equipamentos. 1s

-

s o t o r n o u p o s s í v e l que um grande número d e i n s t i t u i ç õ e s educacionais, f i r m a s c o m e r c i a i s , e t c que p o r r a z õ e s econômicas não podiam a d q u i

-

r i r computadores p a s s a s s e a t e r c o n d i ç õ e s d e comprá-los. V e r i f i c o u -

(10)

s e que a p e s a r da grande d i f u s ã o da linguagem COBOL, u m número r e l a

-

t i v a m e n t e e l e v a d o d e s s a s máquinas não tem compiladores ou i n t e r p r e

-

t a d o r e s d e s s a linguagem.

A i d e i a d e s t e t r a b a l h o s u r g i u b a s e a d a nos f a t o s a c i

-

ma. Deveria s e r c o n s t r u i d o um i n t e r p r e t a d o r COBOL p a r a o mini-com

-

p u t a d o r MITRA-15, c o n s t r u i d o p e l a C 1 1 (Compagnie I n t e r n a t i o n a l e pour L ' I n f o r m a t i q u e ) . No e n t a n t o a i d é i a i n i c i a l f o i abandonada d e v i d o à f a l t a d e p e r i f é r i c o s n e c e s s ~ r i o s p a r a um t r a b a l h o d e s s a ordem ( p r i n c i p a l m e n t e memÕria a u x i l i a r ) no MITRA-15 i n s t a l a d o n a COPPE. F i c o u e n t ã o r e s o l v i d o que s e r i a d e s e n v o l v i d a a e s t r u t u r a & um i n t e r p r e t a d o r capaz d e s e r f a c i l m e n t e implementado e m q u a l q u e r modelo de mini-computador, desde que e s t e s e j a d o t a d o dos p e r i f é r i

-

tos n e c e s s á r i o s .

E s s e t r a b a l h o f o i e n t ã o d i v i d i d o e m duas t e s e s d e Mestrado na COPPE, uma t r a t a n d o do i n t e r p r e t a d o r p r o p r i a m e n t e d i t o e a segunda d e um s u p e r v i s o r capaz d e comandar o i n t e r p r e t a d o r . O segundo t r a b a l h o c i t a d o acima

é

e s t a tese e o o u t r o

6

:"Estudo d e um I n t e r p r e t a d o r COBOL p a r a um Mini-Computador".

Apresentamos a s e g u i r um resumo do e s t u d o do S n t e r - p r e t a d o r .

a

-

FORMA INTERNA . DAS I N S T R U Ç ~ E S

I n i c i a l m e n t e f o i p e s q u i s a d a uma forma i n t e r n a p a r a a s i n s t r u ç õ e s do programa f o n t e . P o r s e r mais c o n v e n i e n t e p a r a o u s o e m l i n g u a g e n s do t i p o do COBOL, a e s c o l h a r e c a i u s o b r e a s

QUA-

(11)

campo, com um comprimento de uma p a l a v r a e o s

três

campos s e g u i n t e s fornecem a s informações sobre o s operandos. Essas informações são:

a-1 a t a b e l a que deverá s e r consultada a-2 o t i p o da PICTURE

a- 3 s e e x i s t e s u b s c r i t o s no operando ou não a- 4 um apontador para a t a b e l a indicada em a-1

Todas a s quádruplas são alocadas em memória a u x i l i a r ( d i s c o ) de modo que cada parágrafo f i q u e r e s i d e n t e em um s e t o r que tem normalmente uma dimensão de 128 p a l a v r a s . Quando um p a r á g r a f o

é

maior do que um s e t o r , a Ültima quádrupla do s e t o r

6

um s i n a l que i n d i c a que o parágrafo continua no s e t o r seguinte.

A f a s e de a n á l i s e (estudada em d e t a l h e s em "Estudo de

um I n t e r p r e t a d o r COBOL p a r a Mini-Computadores" ) s e r á encarregadade g e r a r e a l o c a r a s quádruplas no d i s c o , bem como de montar a s tabelas i n d i s p e n s & e i s ao sistema. s e r ã o n e c e s s á r i a s p a r a o supervisor t a - b e l a s de v a r i á v e i s , l i t e r a i s , arquivos e parágrabos.

C

-

BUFFER

0. sistema contará com um 'BUFFER' com um tamanho i- gual ao de um s e t o r do d i s c o , ou s e j a , com 128 p a l a v r a s .

Como cada quadrupla ocupa um t o t a l de q u a t r o p a l a

-

v r a s , s e r á p o s s i v e l a l o c a r nesse 'BUFFER' 3 2 d e l a s .

(12)

d

-

FREQUÊNCIA DAS INSTRUÇÕES

Foi feito

um

estudo para estimar as instruções que a-

parecem com maior frequência nos programas COBOL. Para fazer a con

tagem, foi escrito um programa FORTRAN que após a leitura de uma pi

lha de cartões COBOL informa a percentagem de ocorrência das ins-

truções.

e

-

FORMA INTERNA DOS DADOS

A representação interna dos dados foi feita com a pre

-

ocupação de utilizar um mínimo possível de memória. A s especifica-

ções das variáveis e as tabelas de literais e arquivos serão aloca-

das em memória auxiliar. A maior parte desse trabalho foi desenvol

-

vido no "Estudo de um Interpretador COBOL para um Mini-Computador".

f

-

ALGORITMO DE GESTÃO DE ROTINAS

Para controlar quais as subrotinas das instruções de-

vem ser colocadas ou retiradas da memória principal, foi construido um algoritmo de gestão de memória.

mod 1

-

Depois que o operador de uma quádrupla

6

identificado, o a1

-

goritmo inicia sua tarefa. Esse algoritmo exerce o controle da alo

-

caqão na memória principal das subrotinas para execução das instru-

(13)

A s v a r i á v e i s quando são alocadas na memória p r i n c i p a l ficam em uma t a b e l a chamada Tabela de v a r i á v e i s em Uso. Para con- t r o l a r a s entradas e s a í d a s de v a r i á v e i s n e s t a t a b e l a , f o i cons

-

t r u i d o um algoritmo c u j a descrição resumida é a seguinte:

g-1

-

Procura saber quando a t a b e l a de v a r i á v e i s em uso e s t á cheia

g-2

-

V e r i f i c a q u a i s a s Ultimas v a r i á v e i s que entraram na memó

-

r i a

g-3

-

Escolhe a s v a r i & e i s que serão r e t i r a d a s

g-4

-

Reloca a s v a r i ã v e i s que permanecerão na memôria para a

-

b r i r espaços para novas v a r i á v e i s .

O estudo das subrotinas para executar a s i n s t r u ç õ e s f o i f e i t o em t r a b a l h o p a l a l e l o (Vide Tese de M.Sc. COPPE

-

"Estu- do de um I n t e r p r e t a d o r COBOL para um Mini-Computador").

(14)

O MINI

-

COBOL

O MINI-COBOL a ser utilizado

6

um sub-conjunto do C0

-

BOL-65, capaz de ser implementado em computadores que tenham uma

configuração de memória de pelo menos 8.000 bytes.

Um dos objetivos desejados

é

de que o mini-COBOL se-

ja compativel com a grande maioria dos compiladores existentes,dei

-

xando claro que as diferenças residem apenas nas restrições que

serão apresentadas mais adiante. Por essa razão, para a escolha do conjunto de instruções para compor o Mini-COBOL, foi tomado por base o COBOL normalizado (ANS) do IBM/360.

Os formatos do mini-COBOL são os seguintes:

IDENTIFICATION'DIVISION

PROGPZAM-ID nome do programa

AUTHOR = ' nome (s) do (s) autor (es)

INSTALLATION nome do Departamento

DATE-WRITTEN data em que o programa foi feito

DATE-COMPILED data em que o programa foi rodado

< I

SECURITY comentários

(15)

ENVIRONMENT D I V I S I O N CONFIGURATION SECTION.

SOURCE-COMPUTER

.

n o m e do c o m p u t a d o r OBJECT-COMPUTER, n o m e do c o m p u t a d o r INPUT-OUTPUT SECTION

SELECT n o m e do arquivo-1 ASSIGN n o m e do pe r i f é r i c o - SELECT n o m e do arquivo-n A S S I G N n o m e do pe riférico- DATA D I V I S I O N . , F I L E SECTION* F D n o m e do a r q u i v o [BLOCK n P i n t e i r o RECORDS]

DATA RECORDS n o m e do arq-1

...

n o m e do arg-n n o m e de dados número de n í v e l F I L L E R caracteres

EALUE

i i t e r a g

I

ECCURS

i n t e i r o TIMES] PICTURE cadeia de

WORKING-STORAGE SECTION

n o m e d e dados n ú m e r o de n í v e l

F I L L E R

PCCURS

i n t e i r o TIMES] PICTURE cadeia de

caracter ~ U li- E t e r a l

1

(16)

PROCEDURE D I V I S I O N

.

nome do parágrafo.

sentença kentença]

.

.

.

.

nome do parágrafo contendo EXIT

.

EXIT.

nome do parágrafo,

[ [ d e ~ l a r a ~ ã o imperativa

]

[declaraSão imperativa

I I

. .

.

condicional

r

NOTE cadeia de c a r a c t e r e s

1

...

L IF i d e n t i f i c a d o r THEN declarações GREATER THAN

'i

LESS THAN EQUAL TO imperativas i d e n t i f i c a d o r

i

"""I

1

J declarações OTHERWISE imperativas

rsE

1

READ nome do arquivo.

ADD

{

l i t e r a l - 1 l i t e r a l - 2

G I V I N G i-

i d e n t i f i c a d o r dentificador-n

SUBTF!ACT

rt

era'

)

Ptexa1

GIvING

i d e n t i f i c a d o r i d e n t i f i c a d o i d e n t i f i c a d o r , MuLTIpLy

{

l i t e r a l

}

. B y f i t e r a l

1

G I V I N G i d e n t i f i c a d o r i d e n t i f i c a d o r identificador,, ' D I V I D E

literal

i d e n t i f i c a d o r

)

ti

1

GIvING i d e n t i f i c a d o r i d e n t i f i c a d o r ,

(17)

l i t e r a l MOVE TO i d e n t i f i c a d o r , i d e n t i f i c a d o r

I

l i t e r a l não numérico DISPLAY i d e n t i f i c a d o r BEFORE

1

WRITE nome do arquivo i n t e i r o

AFTER nome do arquivo, OUTPUT

CLOSE nome do arquivo. GO TO nome de parágrafo,

PERFORM nome de parágrafos

[THRU

nome de pará-

EXIT

grafol

(18)

Em t o d o s o s compiladores e i n t e r p r e t a d o r e s , p o r r a - zões de economia d e e s p a ç o s na m e m ó r i a e f a c i l i d a d e de implementa- ç ã o , o programa f o n t e é i n i c i a l m e n t e t r a d u z i d o p a r a uma forma i n

-

t e r n a i n t e r m e d i á r i a . Como nos i n t e r p r e t a d o r e s não

é

n e c e s s á r i o a g e r a ç ã o de um código a s i n s t r u ç õ e s s ã o e x e c u t a d a s na pró- p r i a forma i n t e r n a . . P a r a o i n t e r p r e t a d o r e s t u d a d o f o i e s c o l h i d o o t i p o de forma conhecida p o r q u â d r u p l a s . A forma g e r a l d e uma quã- d r u p l a

é

a s e g u i n t e :

onde <operando-l> e <operando-2>

,

e s p e c i f i c a m o s argumentos e < r e s u l t a d o s > o r e s u l t a d o da o p e r a ç ã o

.

Houve porem uma l i g e i r a m o d i f i c a ç ã o . n a e s t r u t u r a d a q u á d r u p l a a p r e s e n t a d a acima. <operando-L>, <operando-2> e C r e s u l

-

t a d o s > e s t ã o d i v i d i d o s em q u a t r o campos que contzm a s s e g u i n t e s informações :

a ) t a b e l a que d e v e r á ser c o n s u l t a d a b ) o t i p o d a p i c t u r e

c ) se uma d e t e r m i n a d a v a r i á v e l

6

imdexada ou não d ) um a p o n t a d o r p a r a t a b e l a c o r r e s p o n d e n t e .

(19)

Neste s i s t e m a , cada q u á d r u p l a ocupa q u a t r o p a l a v r a s d e 16 b i t s . A p a l a v r a d e s t i n a d a a o o p e r a d o r f i c a r á com a l g u n s b i t s p e r d i d o s porque o s v a l o r e s do cÕdigo de o p e r a ç ã o s e r ã o sempre meno

-

6 r e s do que 2

.

Cada uma d a s três p a l a v r a s s e g u i n t e s s e r ã o d i v i d i d a s d a s e g u i n t e maneira:

19 campo

-

composto de 3 b i t s informa q u a l d a s t a b e l a s d e v e r a ser c o n s u l t a d a . S e o v a l o r c o n t i d o n e s t e campo

6

i g u a l a :

a ) 000

-

e s t á sendo i n d i c a d o que o s campos s e g u i n t e s contêm o pró- p r i o v a l o r d e um l i t e r a l i n t e i r o , logo não

será

n e c e s s á r i o con- s u l t a r nenhuma d a s t a b e l a s montadas na a n à l i s e .

b) 001

-

d e v e r á ser c o n s u l t a d a a t a b e l a d e v a r i á v e i s . c ) 010

-

d e v e r á ser c o n s u l t a d a a t a b e l a de l i t e r a i s .

d) 011

-

d e v e r á s e r c o n s u l t a d a a t a b e l a de v a r i á v e i s t e m p o r á r i a s . e ) 100

-

d e v e r á s e r c o n s u l t a d a a t a b e l a de a r q u i v o s .

2 9 campo

-

e s t e campo também

é

composto p o r 3 b i t s e informa o t i p o d a p i c t u r e d a s v a r i á v e i s e l i t e r a i s . O s v a l o r e s c o n t i d o s n e s

-

se campo

t ê m

o s s e g u i n t e s s i g n i f i c a d o s : O00 i n d i c a um i t e m grupo 001 i n d i c a um i t e m e l e m e n t a r a l f a b é t i c o 010 i n d i c a um i t e m e l e m e n t a r a l f a n u m é r i c o 011. i n d i c a um i t e m e l e m e n t a r numérico 100 i n d i c a um i t e m e l e m e n t a r alfanurn&ico d e e d i ç ã o 1 0 1 i n d i c a um i t e m e l e m e n t a r numérico de e d i ç ã o - 1 110 i n d i c a um i t e m e l e m e n t a r num6rico d e edição-2

(20)

3 9 campo

-

E s t e campo contém um Único b i t e informa quando se t r a t a de v a r i á v e i s s e a mesma

é

indexada ou não.

4Q campo

-

E s t e campo

é

composto de 9 b i t s e i n d i c a o des- locamento em r e l a ç ã o a o i n í c i o de uma t a b e l a , onde s e e n c o n t r a o operando, ou onde o mesmo

é

d e s c r i t o .

A p a l a v r a d e s t i n a d a a o o p e r a d o r tem um campo con- t e n d o o c ó d i g o de o p e r a ç ã o que i d e n t i f i c a a s i n s t r u ç õ e s . Como a s s u b r o t i n a s e s t ã o agrupadas em b l o c o s , o s d o i s p r i m e i r o s b i t s d e s - t e campo informam o número de b l o c o s que a s u b r o t i n a e s t á c o n t i d a , enquanto que a s q u a t r o s e g u i n t e s indicam o número de ordem d a sub

-

r o t i n a no b l o c o . O código de o p e r a ç õ e s

6

o s e g u i n t e : MOVE WRITE ADD PERFORM m A D STOP MULTIPLY DIVIDE OPEN CLOSE DISPLAY

(21)

O0 1011 SUBTRACT O0 1100 EXIT o0 1101 GO TO O0 1110 D I O0 1111 D S Z O 1 0000 DSMZ 0 1 0001 DSME 01 0010 D S M I Z O 1 O011 DSME I Todas a s i n s t r u ç õ e s a p a r t i r do código 11 0011 s ã o u s a d a s na i n s t r u ç ã o I F

,

i s t o será d i s c u t i d o m a i s a d i a n t e . A r e p r e s e n t a ç ã o ern forma d e q u 6 d r u p l a s d e s s a s i n s - t r u ç õ e s s e r á mostrada a b a i x o . P a r a cada i n s t r u ç ã o s e r á f e i t o um

-

e xemplo de como s e u s a no programa f o n t e s e g u i d o de s u a forma i n t e r

-

n a .

~ s t á

sendo assumido e m t o d o s o s c a s o s que a forma i n t e r n a co- meça no e n d e r e ç o 1000

.

3 . 1

-

ADD

-

FORMA DO PROGRAMA FONTE

i d e n t i f i c a d o r - l

}

f d e n t i f i c a d o r - 2 1 c d e n t i f i c a d o r - 3

.

.

.

l i t e r a l - 1 l i t e r a l - 2 l i t e r a l - 3

i d e n t i f i c a d o r - n

...

I

G I V I N G i d e n t i f i c a d o r - m l i t e r a l - n

(22)

FORMA INTERNA

3 . 2

-

CLOSE

CLOSE

ENDEREÇO

1000

00 0010, ident (n-1)

,

temp (n-2)

,

temp (n-1) 00 0000, temp(n-1)

,

,

ident-m

FORMA DO PROGRAMA FONTE

nome do arquivo

FORMA INTERNA

CÕDIGO

00 1001

,

endereço do arquivo

3 . 3

-

DISPLAY

FORMATO DO PROGRAMA FONTE

literal não numérico

DLSPLAY

identificador

F O W 4 INTERNA

ENDEREÇO CÕDIGO

(23)

3.4

-

D I V I D E

FORMATO DO PROGRAMA FONTE

C

l i t e r a l - 1 D I V I D E i d e n t i f i c a d o r - 1 G I V I N G i d e n t i f i c a d o r - 3 FORMA I N T E R N A ENDEREÇO C ~ D I G O 00 0111

,

i d e n t - 1 , i d e n t - 2 , temp 00 0000

,

temp

,

,

i d e n t - 3 3.5

-

-

E X I T

FORMATO DO PROGRAMA FONTE nome do p a r á g r a f o . E X I T

FORMA I N T E R N A E N D E W Ç O C ~ D I G O

3.6

-

GO T O

FORMA DO PROGRAMA FONTE GO T O nome de r ó t u l o

(24)

FORMA I N T E R N A

ENDEREÇO C ~ D I G O

1000 00 1101

,

e n d e r e ç o do p a r á g r a f o no d i s c o 3.7

-

MOVE

FORMA DO PROGRAMA FONTE

MOVE

{

i d e n t i f i c a d o r - 1 T O i d e n t i f i c a d o r l i t e r a l - 1 FORMA I N T E R N A ENDEREÇO C ~ D I G O 3 . 8

-

M U L T I P L Y

FORMA DO PROGRAMA FONTE

i d e n t i f i c a d o r - 2 i ~ e n t i < i c a ~ o r - ~

]

yy

{

]

MULTIPLY G I V I N G l i t e r a l - 1 l i t e m l - 2 i d e n t i f . FORMA I N T E R N A ENDEREÇO &DIGO 00 0110

,

i d e n t - 1 , i d e n t - 2 , temp 00 0000, temp,

,

i d e n t - 3

(25)

3 . 9

-

OPEN

-

FORMA DO PROGRAMA FONTE O P E N , I N P U T , ARQ-1, ARQ-2,

...,

ARQ-N

OUTPUT, ARQS-1, ARQS-2,

...,

ARQS-N FORMA INTERNA

ENDEREÇO C ~ D I G O

1 0 0 0 0 0 1 0 0 0 , - ENDARQ-1

0 0 1 0 0

,

ENDARQ-N

3 - 1 0

-

READ

FORMA DO PROGRAMA FONTE

READ nome do arquivo

FORMA INTERNA

ENDEREÇO CÓDIGO

1 0 0 0 0 0 0 1 0 0 , endereço do arquivo

3 . 1 1

-

S T O P

FORMA DO PROGRAMA FONTE S T O P RUN

FORMA INTERNA

ENDEREÇO C ~ D I G O

(26)

3.12

-

SUBTRACT

FORMA DO PROGRAMA FONTE

identificador-l identificador-2

S u B T R A c T

}

I ? R O M [

,'

G I v I N G

literal-1 literal-2 iden-tif

.

FORMA INTERNA

ENDEREÇO CÕDIGO

1000 00 1011, ident-1, ident-2, temp

1004 00 0000, temp,

,

ident

3.13

-

WRITE

FORMA DO PROGRAMA FONTE

WRITE nome do registro

FORMA INTERNA

ENDEREÇO CÓDIGO

1000 00 0001

,

endereço do registro

3.14

-

PERFORM

FORMATO DO PROGRAMA FONTE

PERFORM nome do parágrafo-1 THRU nome do par~gralo-2 nÜ

mero inteiros T I M E S

.

FORMA INTERNA

ENDEREÇO C ~ D I G O

(27)

Com a s i n f o r m a ç õ e s d a q u á d r u p l a acima, a s u b r o t i n a PERFORM se e n c a r r e g a de montar uma p i l h a c o n t e n d o a s s e g u i n t e s in

-

formações: a ) i n i c i o d o PERFORM b ) f i m do PERFORM c) e s t a d o c o r r e n t e d ) número de v e z e s e) e n d e r e ç o d e r e t o r n o E s t e procedimento p e r m i t e a e x i s t ê n c i a d e um PERFORM d e n t r o do o u t r o . A p i l h a v a i s e n d o a t u a l i z a d a à medida q u e um n i

-

nho d e PERFORMts v a i sendo e x e c u t a d o .

A e s t r u t u r a d a p i l h a montada p e l o PERFORM

6

a se

-

g u i n t e : 3.15

-

DECLARA~ÕES DE DESVIOS Todas a s d e c l a r a ç õ e s d e d e s v i o s D I

-

d e s v i o i n c o n d i c i o n a l DSZ

-

d e s v i a se i g u a l a z e r o DSMZ

-

d e s v i a se maior d o q u e z e r o

(28)

DSMIZ

-

desvia se maior ou igual a zero DSMEI

-

desvia se menor ou igual a zero têm o mesmo tipo de forma interna ou seja

OPERANDO, ENDEREÇO logo :

FORMA INTERNA ENDEREÇO C ~ D I G O 1000 00 1110

,

endereço 1000 00 1111

,

endereço 1000 01 0000

,

endereço 1000 01 0001

,

endereço 1000 01 0010

,

endereço 1000 01 0011

,

endereço

-

D I

-

DSZ

-

DSMZ

-

DSME

-

D S M I Z

-

DSMEI FORMA DO'PROGRAMA F O W E r identificador-2 I F identificador-1 EQUAL T O

THEN declarações imperativas-1

[{~~:iRwIsE

}

declarações imperativas-2

FORMA INTERNA

A declaração I F será desdobrada em

um

conjunto

(29)

IF não tem uma forma interna própria, porém deverá surgir uma das instruções de desvios listadas acima no conjunto das instruções em

que ela será desdobrada: DI, DSZ, DSMZ, DSME, DSMIZ, DSMEI

.

O desdobramento da declaração IF

6

dividido em du

-

as fases: a primeira delas faz a comparação entre o identificado-1

e o identificador-2 ou um literal.

6

nessa fase que aparece uma

das instruções de desvio já citadas acima. A segunda fase execu-

ta a declaraqão ou o conjunto de dec3iaraçÕes para o qual foi fei- to o desvio da primeira fase.

Uma declaração IF desenvolvida em quádruplas apre

-

senta a seguinte estrutura:

ENDEREÇO

da declaração

C~DIGO

OP, ident-1, ident-2, temp

OP, lO80, I temp

OP, ident-3, ident-4, temp-1 OP, ident-5, ident-6, temp-2

serã apresentado agora

um

exemplo do desdobramento

IF

,

cuja forma no programa fonte

6

a seguinte:

IF

I

GREATER THAN J

-

THEN ADD B, C GIVING E, SUBTRACT C

FROM D GIVING F, MULTIPLY E BY F

,

ADD K, F GIVING

I<

-

ELSE ADD 1, I GIVING I

(30)

ENDEREÇO C ~ D I G O 1000 00 1011

,

I

,

J

,

temp-1 (SUBTRACT) 00 0000 ,temp-2, r E (MOVE ) 00 0000 ,temp-3, I F (MOVE) 00 0000

,

temp-5, (MOVE )

(31)

TABELAS U T I L I Z A D A S PELO SUPERVISOR

Na f a s e de a n á l i s e s e r ã . montado um c o n j u n t o de t a

-

b e l a s onde f i c a r ã o a s v a r i á v e i s , l i t e r a i s , a r q u i v o s e v a r i á v e i s t e n p o r a i s . Todas e s s a s t a b e l a s s ã o guardadas em memória a u x i l i a r e somente um pequeno número d e e n t r a d a s

.e

e n c o n t r a d o n a memória p r i n

-

c i p a l em um determinado i n s t a n t e . * ~arnbém s e r ã o montadas p e l o ana

-

l i s a d o r t a b e l a s que s e r ã o u t i l i z a d a s p e l o s u p e r v i s o r p a r a a p r o n t a r o s operandos a n t e s d a execução de uma determinada i n s t r u ç ã o . O s u

-

p e r v i s o r u s a r á e s s a s t a b e l a s p a r a v e r i f i c a r s e o s operandos e s t ã o na memória p r i n c i p a l . Se e l e s não e s t ã o , o s u p e r v i s o r u s a as t a b e l a s p a r a l o c a l i z â - 1 0 s no d i s c o . N e s t e c a p i t u l o s e r á f e i t a uma d e s

-

c r i ç ã o d e s s a s t a b e l a s começando p e l a t a b e l a de v a r i á v e i s .

E s t a t a b e l a t o r n a p o s s í v e l o endereçamento d e v a r i & e i s no d i s c o e na memória p r i n c i p a l , e tambêm f o r n e c e o e n d e r e ç o de uma t a b e l a guardada no d i s c o que contém..todas a s e s p e c i f i c a ç Õ e s de uma determinada v a r i á v e l . A e s t r u t u r a g e r a l d e s t a t a b e l a

é

a s e g u i n t e :

(32)

Logo, todas a s informações sobre uma determinada v a r i á v e l são guardadas em uma palavra de 1 6 BITS.

.

'ENDEREÇO NA M E M ~ R I A TIPO-V

A função dos campos que dividem uma palavra des- MUD pp -1 B I T 9 B I T S I- t a t a b e l a

6

a seguinte:

l? CAMPO : ENDEREÇO NA MEMÓRIA

-

Este campo i n d i c a s e a va

-

ORDEM NA TABELA

5 B I T S 1 B I T

r i á v e l e s t á na memória ou não, e , s e e s t á , fornece o seu endereço. Dependendo da informação de um dos campos das quádruplas, que i n - d i c a s e a v a r i á v e l é indexada ou não, o campo "ENDEREÇO NA M E M ~ R I A " pode s e r i n t e r p r e t a d o de duas maneiras:

l? CASO

Quando uma v a r i á v e l não é'indexada, e s t e endereço representa o deslocamento em relação a uma á r e a de memória onde a s v a r i á v e i s são colocadas. Esta á r e a s e r á chamada " t a b e l a de v a r i s v e i s em uso". No c a p i t u l o seguinte s e r á apresentado um algoritmo que f a r á a ges-

t ã o dessas v a r i á v e i s , escolhendo a s que devem s e r r e t i i a d a s e r e l o

-

cando a s que devem permanecer. Como o campo 'ENDEREÇO NA M E M ~ R I A ' contém 9 b i t s pode-se concluir que o comprimento da t a b e l a de v a r i

-

á v e i s em uso é i g u a l a 312 bytes. A s entradas d e s t a t a b e l a não t e - rão comprimento f i x o e serão formadas por d o i s campos. Estes cam- pos são os seguintes:

l? CAMPO

-

( t a b e l a de v a r i h e i s e m uso)

-

Este campo tem um tama

-

nho de 1, 2 ou 4 bytes dependendo do t i p o da PICTURE. Se a PICTURE

(33)

6

de um byte. Se a P I C T U R E

6

numérica sem edição, o comprimento

6

de 4 bytes. O s t i p o s das 'PICTURES' são fornecidos p e l a s quá

-

druplas.

2 9 CAMPO

-

( t a b e l a de v a r i á v e i s e m uso)

-

Este campo tem um tama- nho v a r i á v e l , indicado p e l a PICTURE do campo a n t e r i o r . Neste cam po

é

guardado o p r ó p r i o v a l o r da v a r i ã v e l .

2 0 CASO

Quando a v a r i ã v e l é indexada, o campo "ENDERECO DE M E M ~ R I A " apon- t a para uma l i s t a . A primeira e n t r a d a d e s t a l i s t a ocupa 1, 2 ou 4 b y t e s dependendo do t i p o da PICTURE fornecida p e l a s g u ~ d r u p l a s . As considerações p a r a e s t a e n t r a d a s ã o a s mesmas do primeiro cam- po da t a b e l a de v a r i á v e i s em uso.

A s o u t r a s e n t r a d a s são formadas por d o i s campos

,

sendo que o primeiro fornece o deslocamento da v a r i á v e l em r e l a ç s ao i n i c i o do r e g i s t r o que contém a mesma. O segundo campo contém o próprio v a l o r da v a r i á v e l .

Quando urna v a r i á v e l indexada aparece em um progra- ma, calcula-se seu deslocamento em r e l a ç ã o ã v a r i á v e l de n i v e l 0 1

à q u a l a mesma pertence (Vide 1 )

.

Com o deslocamento encon

-

t r a d o , pesquisa-se a l i s t a sequencialmente. Se o deslocamento far

encontrado, a v a r i á v e l em questão se encontra na memÕria p r i n c i

-

p a l . Caso c o n t r á r i o , procura-se a v a r i á v e l no d i s c o e coloca- s e na l i s t a . Como procurar a v a r i á v e l s e r á v i s t o mais a d i a n t e .

(34)

a dez, enquanto que o número de l i s t a s v a i apenas a três. Logo

,

s e r á p r e c i s o que o supervisor faça uma gestão para e s t a s l i s t a s

.

Quando uma l i s t a e s t á totalmente ocupada deverão s e r r e t i r a d a s a 1

-

gurnas entradas para alocação de o u t r a s entradas que s e encontram no disco. Quando a s t r ê s l i s t a s e s t ã o ocupadas e aparece mais u- ma v a r i á v e l indexada no programa, uma dessas l i s t a s deve s e r t o

-

talmente desocupada para alocação da nova v a r i á v e l . Esta gestão s e r á v i s t a no ~ a p f t u l o V

.

29 CAMPO

-

TIPO V

-

Este campo informa s e a v a r i á v e l que e s t á con

-

t i d a no respectivo endereço tem o n í v e l 0 1 ou não. Deste campo

3

pende o s i g n i f i c a d o do campo ORDEM NA TABELA como veremos abaixo.

3 0 CAMPO

-

MUD

-

E s t e campo composto de 1 b i t informa s e a respec

-

t i v a v a r i á v e l f o i a l t e r a d a ou não. E s t a informação s e r á usada na gestão de memória.

4 0 CAMPO

-

ORDEM NA TABELA

-

Este campo tem a s seguintes f i n a l i d a

-

des :

1) Determinar o endereqo do r e g i s t r o no disco.

2 ) Determinar o endereço onde as especificações da v a r i á v e l s e encontram no disco.

A s especificaçÕes indicam a PICTURE e um desloca

-

mento. Esse deslocamento

6

usado para encontrar o endereço do va

-

l o r da v a r i á v e l em o u t r o s e t o r no disco (endereço do r e g i s t r o no d i s c o

+

deslocamento fornecidos nas especificações = endereço da v a r i á v e l no d i s c o ) . A Figura 1 mostra os apontadores fornecidos

(35)
(36)

p e l a t a b e l a de v a r i á v e i s e f a c i l i t a a compreensão do campo "ORDEM NA TABELA".

O s i g n i f i c a d o de 'ORDEM NA TABELA' depende do cam- po TIPO-V. Se o campo TIPO-V i n d i c a gue a v a r i s v e l tem nxvel 0 1 , ou s e j a , s e a v a r i á v e l

e

um r e g i s t r o , e s t e campo i n d i c a o .numero de ordem de e n t r a d a do r e g i s t r o da DATA D I V I S I O N . E s t e número de ordem

é

a posição das especificaçÕes p a r a o r e g i s t r o . Para o n-6

. .

-

simo r e g i s t r o d e f i n i d o na DATA D I V I S I O N , e s t e campo tiem o número n

,

indicando que o n-ésimo s e t o r da t a b e l a de e s p e c i f i c a ç õ e s con

-

têm

a s e s p e c i f i c a ç õ e s d e s t e r e g i s t r o . Como o número de ordem na 'DATA D i - V I S I O N '

ê

i g u a l ao número do s e t o r que contém a s è s p e c i f i

-

cações de um r e g i s t r o , para cada r e g i s t r o e x i s t e

um

s e t o r c o r r e s - pondente contendo a s especificaçÕes do mesmo.

Se o TIPO-V i n d i c a que o número de n í v e l não é 01, 'ORDEM NA TABELA' i n d i c a a ordem da v a r i á v e l em r e l a ç ã o ao i n í c i o do r e g i s t r o . E s t e v a l o r tem duas f i n a l i d a d e s . Primeiro aponta pa

-

r a e n t r a d a da t a b e l a d e v a r i á v e i s que contém a s informaqões sobre

' .

a v a r i á v e l de n i v e l 0 1 a q u a l a v a r i á v e l em questão pertence. A segunda u t i l i d a d e

6

encontrar a posi'ção da v a r i á v e l d e n t r o do se- t o r da t a b e l a de e s p e c i f i c a ç õ e s . Logo o procedimento p a r a encon- t r a r a s especificaçÕes de uma.variáve1 no d i s c o quando a mesma n% tem n í v e l 0 1

é

o s e g u i n t e :

i ) Usa-se o v a l o r do campo 'ORDEM NA TABELA' p a r a achar a e n t r a d a da v a r i á v e l de n í v e i 0 1 , da q u a l a v a r l á v e l em questão faz p a r t e .

(37)

em i ) como apontador para o s e t o r da t a b e l a de especificaçÕes correspondente. Coloca-se e s t e s e t o r na memória p r i n c i p a l .

iii) Encontra-se o deslocamento no s e t o r das especi £icações que

é

i g u a l a 4 vezes o conteúdo do campo 'ORDEM NA TABELA!.

Aqui kermina a discursão sobre a t a b e l a de v a r i á

-

veis. Como a t a b e l a de especificaçÕes

6

muito ligada

5

t a b e l a de v a r i á v e i s , serão apresentados os campos d e s t a t a b e l a antes das con

-

siderações sobre as t a b e l a s de l i t e r a i s , v a r i á v e i s temporárias e arquivos.

4 . 2

-

TABELA DE ESPECIFICAÇ~ES

As especificações de uma determinada v a r i á v e l são encontradas e m uma t a b e l a totalmente alocada no disco. Como

f o i v i s t o , as especificações de cada v a r i á v e l de n i v e l 0 1 e s t ã o a- locadas em um s e t o r do d i s c o , ou s e j a , em cada s e t o r serão coloca- das especificações de apenas um r e g i s t r o . A forma g e r a l d e s t a t a - bela

é

a seguinte:

12 PALAVRAS

I

1 PALAVRA

I

1 PALAVRA

1

P I C T U R E

4 . 2 . 1

-

PICTURF:

Uma descrição completa das ' P I C T U R E S ' das variáveis s e encontra nas duas pr&meiras palavras da t a b e l a de espècificações.

OCCURS

. .

(38)

E s t a representação da 'PICTURE' f o i desenvolvida e m 1

.

Se a s informações sobre o t i p o das 'PICTURES' nas quádruplas contêm 0 0 0 , 0 0 1 ou 010 apenas um byte das duas palavras

s e r á u t i l i z a d o . Se a quádrupla contém 0 1 1

,

d o i s b y t e s s e r ã o u t i - l i z a d o s . E s e a quádrupla contém 1 0 0 , 1 0 1 ou 1 1 0

,

todos o s 4 by- t e s s e r ã o u t i l i z a d o s . Para os s e t e casos, a s informações contidas na PICTURE tem os s e g u i n t e s s i g n i f i c a d o s :

4 . 2 . 1 . 1

-

000

-

O byte contém o tamanho do item grupo

4 . 2 . 1 . 2

-

0 0 1

-

O byte contém o número de ' A ' s e x i s t e n t e s na P I C T U R E , t r a t a - s e da PICTURE a l f a b é t i c a .

4.2.1.3

-

0 1 0

-

O byte contém o número de ' X ' s e x i s t e n t e s na PICTURE, t r a t a - s e da PICTURE a l f anumérica.

4 . 2 . 1 . 4

-

0 1 1

-

Trata-se da PICTURE numérica e são n e c e s s á r i o s 1 6 dos 32 b i t s p a r a sua d e s c r i ç ã o .

A p a l a v r a de 1 6 b i t s e s t ã devidida em s e i s campos da s e g u i n t e maneira:

19 campo

-

Formado po 1 b i t i n d i c a como a v a r i á v e l

6

armazenada (USAGE). Se o v a l o r armazenado no b i t

6

zero, a v a r i á v e l s e r á guardada numa representação decimal e x t e r n a ( D I S P L A Y ) . Se o v a l o r armazenado

é

1, a v a r i á v e l s e r á guardada em h i n á r i o (COMPUTACIONAL). 20 campo

-

E s t e campo i n d i c a o s i n a l do número I ) ' =

+

e '1' =

-

.

3 9 campo

-

E s t e campo

é

formado por 5 b i t s e fornece o número de

d i g i t o s da p a r t e i n t e i r a do v a l o r da v a r i á v e l .

(39)

decimal.

5 9 campo

-

Fornece o número de P ' s

,

i s t o

5 ,

o número de z e r o s que s e r ã o i n s e r i d o s 5 esquerda ou à d i r e i t a , dependendo do v a l o r do campo s e g u i n t e .

6 0 campo

-

Informa em 1 b i t s e o número de zeros s e r ã o i n s e r i d o s à esquerda ou à d i r e i t a .

4.2.1.5

-

1 0 0

-

Quando o t i p o

6

i g u a l a 1 0 0 , t r a t a - s e do item

-

e lementar alfanumérico de edição. Para a d e s c r i ç ã o des- t a PLCTURE s e r ã o n e c e s s á r i o s todos os primeiros 32 b i t s da t a b e l a alocada no d i s c o . E s t a PICTURE pode d e s c r e

-

v e r c a r a c t e r e s alfab&ticos, alfanum&icos, zeros e bran

-

COS

.

O s 3 2 b i t s e s t ã o d i v i d i d o s basicamente em d o i s cam

-

pos, sendo um de 2 b i t s e um de 3 0 b i t s que por sua vez

d i v i d i d o em çub-campos de dimensão e numero v a r i a d o s . No primeiro campo de d o i s b i t s temos a informação de co

-

mo s e r ã o d i s t r i b u x d o s o s sub-campos do segundo campo.

0 0

-

Se o s d o i s primeiros b i t s

t ê m

o v a l o r zero, o segundo campo s e r á formado de 5 sub-campos de 6 b i t s cada um. O s d o i s p r i

-

meiros b i t s de cada sub-campo determinam o t i p o do c a r a c t e r . Se

-

es

t á carregado com

00 = A

o 1

= X 1 0 = ZERO 11 = BMNCO

(40)

O s demais b i t s determinam a quantidade dos r e s p e c t i v o s c a r a c t e r e s .

.

0 1

-

Se os d o i s p r i m e i r o s b i t s têm o v a l o r 0 1 , o segundo campo s e r á d i v i d i d o e m 6 sub-campos de 5 b i t s onde o s d o i s primei- r o s b i t s informam o t i p o do c a r a c t e r (como no caso 0 0 ) e o s s e g u i 2 t e s a quantidade d e l e s .

1 0

-

Se o s d o i s p r i m e i r o s b i t s têm o v a l o r 1 0

,

o segundo campo s e r 5 d i v i d i d o em 3 sub-campos de 1 0 b i t s cada um. O s d o i s primeiros b i t s dos sub-campos informam o t i p o do c a r a c t e r (como no caso 0 0 ) e o s o i t o r e s t a n t e s a s r e s p e c t i v a s quantidades.

11

-

Se o v a l o r dos d o i s b i t s

6

i g u a l a 11, o segundo cam- po s e r á d i v i d i d o em 3 sub-campos de 6 b i t s e um de 1 2 b i t s . Ta-m

-

bém aqui o s d o i s primeiros indicam o t i p o do c a r a c t e r e o s demais o n h e r o d e l e s .

4 . 2 . 1 . 6

-

1 0 1

-

Quando o t i p o da PICTURE f o r 1 0 1 , teremos um

f -

tem elementar numérico de e d i ç ã o 1

.

Para a d e s c r i ç ã o d e s s a PICTURE s e r á necess&ia uma p a l a v r a dupla ( 3 2

b i t s ) d i v i d i d a em campos.

19 campo

-

Composto por um b i t informa s e haverá ou não i n s e r ç ã o do ponto decimal no item.

2 0 campo

-

~ambém composto por um b i t informa s e haverá i n s e r ç ã o de v i r g u l a s no Item.

30 campo

-

Composto de

três

b i t s , informa s e haverá i n s e r ç ã o dos c a r a c t e r e s CB ( c r é d i t o ) , DB ( d é b i t o )

,

(+), ou ( - ) .

O

(+) e o

(41)

po e s t á armazenado o v a l o r : O00 s e r á i n s e r i d o CB ( c r e d i t o ) O01 s e r á i n s e r i d o DB ( d é b i t o ) 0 1 0 s e r á i n s e r i d o

+

( 5 d i r e i t a ) O 1 1 s e r á i n s e r i d o

+

(2 esquerda) 1 0 0 s e r á i n s e r i d o

-

(2

d i r e i t a ) 1 0 1 s e r 5 i n s e r i d o

-

( à esquerda) 1 1 0 nada a s e r i n s e r i d o

4 9 campo

-

contém um Ünico b i t , informa s e haverá inserção f i x a do simbolo d ó l a r .

59 campo

-

Composto de d o i s b i t s , informa a quantidade de espaços em branco que e x i s t e depois do primeiro simbolo ou antes do Ú l t i - mo.

6 9 campo

-

Composto de 1 b i t , informa s e o s espaços e m branco do campo a n t e r i o r s e encontram respectivamente

5

esquerda ou

5

d i

-

r e i t a do número.

70 campo

-

contém 3 b i t s e determina s e na PICTURE e x i s t e algum d e

t i p o s Z

,

*

,

$ mÚltiplos e (+) ou

(-1

mÚltiplos, obedecendo a

se

guinte convenção:

O00 Z supressão de zeros

O01

*

( s u b s t i t u i ç ã o de zeros por a s t e r i s c o s ) O10 $ múltiplos ( s u b s t i t u i ç ã o de zeros por dÓ-

l a r e s ) O 1 1

+

múltiplos ( s u b s t i t u i ç ã o de zeros por +) 1 0 0

-

múltiplos ( s u b s t i t u i ç ã o de zeros por -)

(42)

89 campo

-

Composto de 4 bits,determina a quantidade de um dos

s f m

-

bolos que aparecem no campo 7

.

99 campo

-

Composto de 4 b i t s , determina o número de noves na PICTURE. 109 campo

-

contém 4 b i t s que fornecem o número de algarismos da par

-

t e decimal.

ll? campo

-

Composto de 4 biits, informa a quantidade de zeros mais

5

d i r e i t a da PICTURE.

4.2.1.7

-

1 1 0

-

Quando o t i p o da PICTURE

é

1 1 0 , t r a t a - s e do i t e m numêrico de edição-Z. Para descrição d e s t a PICTURE.será também necessário u t i l i z a r os 3 2 b i t s da t a b e l a de espe- c i f i c a ç 6 e s . Com e s t a PICTURE pode-se descrever o s c a r a s t e r e s numéricos zeros e brancos.

O s 3 2 b i t s e s t ã o divididos em d o i s campos, sendo um de d o i s b i t s e um de t r i n t a que por sua vez

é

d i v i d i d o em sub-campos de dimensão e número variados. No primei- r o campo e s t ã o d i s t r i b u í d o s os sub-campos do segundo cam po, obedecendo a seguinte convenção:

0 0

-

Se os dois primeiros h i t s têm o v a l o r 0 0 , o segundo cam

-

po s e r á formado por 5 sub-campos de 6 b i t s cada um. O s d o i s primei- r o s b i t s de cada sub-campo determinam o t i p o do c a r a c t e r . S e e s t á carregado com

0 0 = 9 1 0 = ZERO 11 = BRANCO

(43)

0 1

-

Se os d o i s p r i m e i r o s b i t s

t ê m

o v a l o r O 1

,

o segunr do campo s e r á d i v i d i d o em 6 sub-campos de 5 b i t s onde os d o i s p r i

-

meiros b i t s informam o t i p o do c a r a c t e r , como no caso 0 0 , e o s s e

-

g u i n t e s a quantidade d e l e s .

1 0

-

Se o s d o i s p r i m e i r o s b i t s

t ê m

o v a l o r 1 0

,

o segundo campo s e r á d i v i d i d o em 3 sub-campos de 1 0 b i t s cada um. O s d o i s p r i m e i r o s indicam o t i p o do c a r a c t e r e o s r e s t a n t e s a quantidade d e l e s .

11

-

Se o v a l o r do d o i s primeiros b i t s

é

i g u a l a 11, o se-

gundo dampo d i v i d i d o em 3 sub-campos de 6 b i t s e um de 12 b i t s . ~ambém a q u i o s d o i s p r i m e i r o s indicam o t i p o do c a r a c t e r e o s se-

g u i n t e s a quantidade d e l e s .

I s t o completa o t i p o da PICTURE. O a s s u n t o seguin

-

t e s e r e f e r e à d e s c r i ç ã o dos o u t r o s campos da t a b e l a de e s p e c i f i - cações OCCURS e DESLOC

.

4 . 3

-

OCCURS

A p a l a v r a q u e segue a d e s c r i ç ã o d a s PICTUFES n a t a

-

b e l a de especificaçÕes in£ormará o número de vezes que uma d e t e r - minada v a r i á v e l ou e s t r u t u r a será r e p e t i d a . Cada v a r i á v e l poderá s e r r e p e t i d a a t é um número i g u a l a 21°

,

ou s e j a , 1 0 2 4 v e z e s , O s Últimos s e i s b i t s da p a l a v r a não s e r ã o u t i l i z a d o s .

(44)

4 . 4

-

DESLOC

E s t e campo u t i l i z a apenas 1 0 ou 1 2 dos s e u s 1 6 b i t s . Quando'as e s p e c i f i c a ç õ e s são para uma v a r i ã v e l com n í v e l 01 s e r ã o usados 1 2 b i t s , sendo que o s o i t o primeiros fornecem o nÜme

-

r o da t r i l h a e o s q u a t r o s e g u i n t e s o número do s e t o r onde o r e g i s

-

t r o e s t á armazenado. Se a s espeGificaçÕes são p a r a uma v a r i á v e l de nzvel d i f e r e n t e de 0 1 s e r ã o u t i l i z a d o s 1 0 b i t s . E s t e s 1 0 b i t s fornecem o deslocamento da v a r i á v e l em r e l a ç ã o ao i n i c i o do s e t o r onde a mesma e s t á a l o c a d a . Quando s e t r a t a de v a r i á v e i s s u b s c r i t a s , o deslocamento

6

a posição da

variável

com i n d i c e s i- guais a 1 (Vide 1 )

.

A T U A Ç ~ O DO SUPERVISOR

Para completar a d i s c u r s ã o sobre a s t a b e l a s de va- r i á v e i s , segue um resumo da atuação do s u p e r v i s o r quando uma de

-

terminada v a r i á v e l

6

s o l i c i t a d a numa quádrupla.

O primeiro passo

é

v e r i f i c a r s e a v a r i á v e l está n a memória. Se a v a r i h e l não e s t á na memória, são l i d a s s u a s espe-

c i f i c a ç õ e s no d i s c o u t i l i z a r i d o o s apontadores dos campos 'ORDEM NA TABELA'. Na t a b e l a de especificaçÕes (no d i s c o ) obtem-se a

I P I C T U R E 1 , um endereço de um r e g i s t r o e um deslocamento. A 'PIC-

TURE'

6

u t i l i z a d a no primeiro campo da t a b e l a de v a r i á v e i s em u- s o ou no primeiro campo de uma das l i s t a s p a r a v a r i á v e i s s u b s c r i - t a s . Obtem-se o endereço da v a r i á v e l no d i s c o somando-se o ende- r e ç o do r e g i s t r o com o deslocamento. (Quando s e t r a t a de v a r i ã

-

(45)

v e i s s u b s c r i t a s , e s t e deslocamento

6

uma função do deslocamento fornecido p e l a s e s p e c i f i c a ç Õ e s ) . Encontrado o endereço, a v a r i - á v e l

6

l i d a e armazenada junto

5

PICTURE.

Seguem a s considerações para a s t a b e l a s de v a r i á - v e i s temporárias, l i t e r a i s e arquivos.

4.6

-

TABELA DE LITERAIS

E s t a t a b e l a guarda apontadores para todos o s l i t e -

4,6.1

-

END MEM

-

E s t e campo

é

composto d e ' 8 b i t s e i n d i c a o en- dereço do l i t e r a l quando o mesmo s e encontra na memória.

r a i s não numéricos e os l i t e r a i s numéricos que não são i n t e i r o s . O s l i t e r a i s i n t e i r o s t e r ã o seus v a l o r e s nas quádruplas. O s valo- r e s dos l i t e r a i s f i c a r ã o alocados no d i s c o e a t a b e l a que f i c a na memória tem a s e g u i n t e e s t r u t u r a :

4 . 6 . 2

-

ENDE?&EÇO D I S C O

-

E s t e campo

é

composto de 20 b i t s , sendo 8 b i t s para o endereço da t r i l h a , 4 b i t s p a r a o s e t o r e o s o i t o

END MEM 8 b i t s

r e s t a n t e s fornecem o deslocamento em r e l a ç ã o ao i n i c i o do s e t o r .

4.6.3

-

-

TIPO

-

Este campo composto de um b i t i n d i c a s e o l i t e r a l é numérico ou não numérico.

ENDEREÇO DISCO 20. b i t s TIPO 1 b i t PICTURE 11 b i t s NUM; -VEXES 8 b i t s i

(46)

4 . 6 0 4

-

PICTURE

-

Se o campo a n t e r i o r i n d i c a que a PICTURE

é

nu- m é r i c a , o 19 b i t d e s t e campo i n d i c a r á o s i n a l do numero, o s o u t r o s dez fornecem o numero de nomes, sendo 5 p a r a a p a r t e i n t e i r a e 5 p a r a a d e c i m a l . Se a PICTURE

6

a l f a n u m ê r i c a , o s 11 b i t s informam o número de X ' s

.

4.6.5

-

NUMERO DE VEZES

-

E s t e campo i n d i c a o número d e v e z e s que

um l i t e r a l

é

s o l i c i t a d o em um programa. I s t o

6

u t i l i z a d o na: ges- t ã o dos l i t e r a i s .

4 . 7

-

TABELA DE

VARIAVEIS

TEMPOR~~,RIAS

E s t a t a b e l a guarda o v a l o r d a s v a r i á v e i s temporã

-

r i a s c r i a d a s d u r a n t e a execução d a s o p e r a ç õ e s a r i t m é t i c a s . A s

i 2

formações n e s t a t a b e l a s e r ã o armazenadas e m 1 0 p a l a v r a s cada uma, sendo uma p a r a a PICTURE e a s o u t r a s p a r a o v a l o r da v a r i á v e l . Se

-

r á

r e s e r v a d a uma á r e a d e 50 p a l a v r a s , p o r t a n t o

é

p o s s i v e l que a t é c i n c o v a r i á v e i s t e m p o r á r i a s fiquem na memória no mesmo i n s t a n t e

.

A e s t r u t u r a d e s t a t a b e l a

6

a s e g u i n t e :

PICTURE

u

4.7.1

-

P1CTUR.E

-

No campo d e s t i n a d o à 'PICTURE', o p r i m e i r o b i t i n d i c a r á o s i n a l do número. D a s b i t s s e g u i n t e , 8 informam a guan

-

(47)
(48)

4 . 8 . 3

-

ENTRADA/SA~DA

-

Este campo, composto de 1 b i t , i n d i c a s e o r e g i s t r o

é

de e n t r a d a ou de s a í d a .

4 . 8 . 4 -;ENDEREÇO NO DISCO

-

E s t e campo contém 1 2 b i t s , onde o i t o informam a t r i l h a e q u a t r o o s e t o r do d i s c o .

4.8.5

-

T I P O DE ORGANIZAÇÃO

-

E s t e campo contém 4 b i t s e informa q u a l s e r á o t i p o da organização em que os arquivos e s t ã o d i s p o s

-

t o s . A organização pode s e r :

0 0

-

sequencial

01

-

acesso d i r e t o

1 0

-

indexado s e q u e n c i a l

Cada e n t r a d a d e s t a t a b e l a usa 2 9 dos 32 b i t s r e s e r

-

vados

.

N o próximo c a p i t u l o s e r á considerada a gestão de memõria apresentando métodos de g e s t ã o para a s s u b r o t i n a s do i n

-

t e r p r e t a d o r , v a r i á v e i s e o s l i t e r a i s . A s v a r i á v e i s temporárias são r e s i d e n t e s na memÕria p r i n c i p a l e não precisam de gestão. A s v a r i á v e i s dos arquivos são t r a t a d a s como v a r i & e i s comuns, não sen

-

do consideradas como um caso d i f e r e n t e .

(49)

E s t e c a p i t u l o c o n s t a de um estudo de um supervisor e um conjunto de s u b r o t i n a s que s ã o capazes de e x e c u t a r a s i n s t r u

-

çÕes do MINI-COBOL. Todas e s s a s s u b r o t i n a s s e r ã o alocadas em me- mória a u x i l i a r , e

2

medida em que s e r ã o s o l i c i t a d a s s e r ã o a l o c a

-

das na memÕria p r i n c i p a l .

JS

f o i v i s t o nos c a p í t u l o s a n t e r i o r e s que o a n a l i - sador fornece como s a í d a o programa f o n t e em forma de quádruplas. Essas quádruplas são alocadas no d i s c o de maneira que todo p a r a

-

g r a f o f i q u e no i n í c i o de um s e t o r . O d i s c o que e s t á sendo consi- derado

6

composto de 256 t r i l h a s , c a d a uma com 1 6 s e t o r e s de 128 p a l a v r a s de 1 6 B I T S . Logo, cada s e t o r tem capacidade para aloca- ção de 3 2 quádruplas. Quando aparece um parágrafo composto de um número de quádruplas s u p e r i o r a 3 2 , a Última quádrupla do s e t o r

-

on de o parágrafo e s t á alocado

6

um s i n a l avisando que o parágrafo continua no s e t o r s e g u i n t e e assim sucessivamente.

Todas a s q u ~ d r u p l a s do programa f o n t e alocadas no d i s c o s e r ã o admitidas na memória p r i n c i p a l a t r a v é s de um BUFFER. E s t e " b u f f e r " t e r á uma dimensão i g u a l a 128 p a l a v r a s , ou s e j a , o tamanho de um s e t o r do d i s c o c i t a d o acima. Com o BUFFER do tama- nho de um s e t o r do disco', a programação do s u p e r v i s o r s e r á f a c i l i

-

t a d a porque p a r a c a r r e g a - l o b a s t a que um s e t o r i n t e i r o s e j a movi- do para a memória p r i n c i p a l .

(50)

Depois que o BUFFER e s t á carregado, o s u p e r v i s o r

-

i n i c i a a execução d a s i n s t r u ç õ e s c o n t i d a s no mesmo. Para cada i n g t r u ç ã o v e r i f i c a - s e s e o s operandos são v á l i d o s . Se s i m , o super- v i s o r apronta o s operandos e a s r o t i n a s do i n t e r p r e t a d o r que s e

-

r ã o usadas. E s t e processo requer uma g e s t ã o de memória. Nas p r ó

-

ximas seções s e r á d i s c u t i d a e s t a g e s t ã o .

Depois que o operador de uma quâdrupla é i d e n t i f i - cado, o algoritmo de gestão de memória i n i c i a a sua t a r e f a . E s t e algoritmo c o n t r o l a a alocação na memória p r i n c i p a l das s u b r o t i n a s u t i l i z a d a s p a r a a execução das i n s t r u ç õ e s . Uma á r e a de memÔria de

2 0 0 0 b y t e s f o i reservada para a alocação das s u b r o t i n a s c i t a d a s

-

a cima. O número de bytes n e c e s s á r i o s para a alocação de cada uma das s u b r o t i n a s c i t a d a s acima aproximadamente o seguinte:

MOVE WRITE ADD PERFORM READ STOP MULTIPLY D I V I D E OPEN CLOSE DISPLAY NÚMERO DE BYTES

(51)

SUBTRACT E X I T GO TO D I D S Z DSMZ DSME D S M I Z DSMEI

A soma dos comprimentos de todas a s s u b r o t i n a s e i g u a l a 3800 b y t e s . Como a á r e a de memória reservada para e s s a s s u b r o t i n a s não u l t r a p a s s a 2 0 0 0 b y t e s , e s t á c l a r o que não s e r á pos

-

s i v e l a l o c a r todas e s s a s s u b r o t i n a s em um mesmo i n s t a n t e na memó- r i a p r i n c i p a l . Para r e s o l v e r e s s e problema f o i n e c e s s á r i o um e s - tudo para saber q u a i s a s s u b r o t i n a s que devem permanecer ou serem r e t i r a d a s da memÕria em um determinado i n s t a n t e .

A

medida que uma determinada i n s t r u ç ã o

6

s o l i c i t a - d a , o s u p e r v i s o r s e encarregará de colocá-la na memoria. Como a á r e a reservada para a alocação das s u b r o t i n a s

é

2 0 0 0 b y t e s e a s o

-

ma t o t a l dos seus comprimentos

6

i g u a l a 3800,

é

p o s s í v e l que em um determinado programa s e j a n e c e s s á r i o r e t i r a r algumas s u b r o t i

-

nas p a r a alocação de uma nova.

Para a execução desse algoritmo s e r á organizada u- ma t a b e l a com a s e g u i n t e e s t r u t u r a :

(52)

TABELA DE GESTÃO DE MEMÕRIA MOVE WRLTE . ADD PERFORM READ S T O P MULTIPLY D I V I D E OPEN CLOSE DI S P L A Y SUBTRACT E X I T GO T O D I DSZ DSMZ D S M I Z D S M E I 1 b i t 10 b i t s 12 b i t s 1 2 b i t s 1 2 b i t s

(53)

O primeiro campo d e s t a t a b e l a informa s e a s u b r o t i

-

na s e encontra na memória ou não. O segundo campo i n d i c a o número. de bytes n e c e s s k i o s para alocação da s u b r o t i n a . O t e r c e i r o campo informa o numero de vezes que uma s u b r o t i n a f o i chamada na execu

-

ção de um programa. O s d o i s campos r e s t a n t e s fornecem r e s p e c t i v a - mente o s endereços na memória e no d i s c o .

Quando a á r e a d e s t i n a d a à alocação das s u b r o t i n a s e s t á c h e i a e uma f o i s o l i c i t a d a , s e r á i n i c i a l m e n t e

f e i t a uma pesquisa sequencial no campo "número de vezes". E s t a peç

-

q u i s a i n d i c a q u a l f o i a v a r i á v e l menos u t i l i z a d a . F e i t o isso,com

-

para-se o campo 'COMPRIMENTO DA SUBROTINA" da s u h r o t i n a que v a i en

-

t r a r com a s u b r o t i n a que v a i s a i r . Se o espaço a b e r t o permite a alocação, s e r á i n i c i a d a uma relocação na memória e em seguida . a

s u b r o t i n a s e r á alocada. Caso não s e j a . s u f i c i e n t e , i n i c i a - s e uma nova pesquisa no campo "NUMERO DE VEZES".

Em resumo, e s t e algoritmo f a z o s e g u i n t e :

a ) Testa o campo

'ESTA

NA MEMÓRIA" : s e o v a l o r

6

1, v a i pa r a F ; s e o v a l o r

6

zero, procura-se o endereço no d i s c o no campo d e s t i n a d o para i s s o e v a i para B

.

h ) I d e n t i f i c a o campo 'COMPRIMENTO DA SUBROTINA' da s u b r o t i na s o l i c i t a d a e soma-se e s t e v a l o r com o comprimento t o t a l das suh

-

r o t i n a s alocadas. Vai para C

.

c ) Testa a soma encontrada em B com 2 0 0 0 .

Se maior, v a i p a r a D ; s e menor, v a i p a r a E

.

d) Pesquisa o campo 'NUMERO DE VEZES' para e n c o n t r a r a sub- r o t i n a menos usada.

(54)

d.1- R e t i r a a m e n o s u s a d a da m e m o r i a e coloca o v a l o r 4 0 9 6 no c a m p o 'NUMERO DE BYTES

'

d . 2 - Faz a relocação e v a i para B

.

e ) A l o c a nova s u b r o t i n a na m e m ó r i a e a t u a l i z a a t a b e l a . V a i para F

.

f ) S u b r o t i n a

e s t á

p r o n t a para execução.

Para f a z e r ti relocaqão c i t a d a e m d - 2 , i n i c i a - s e u m

contador 'BYTES ELIMINADOS' c o m zeros e e m s e g u i d a executa-se o s s e g u i n t e s passos.

A

-

T e s t a o c a m p o 'NUMERO DE V E Z E S ' da t a b e l a d e gestão. Se o c a m p o c o n t é m o v a l o r 4 0 9 6 , s o m a - s e 'COMPRIMENTO DA SUBROTINA' a 'BYTES ELIMINADOS' e v a i para a p r ó x i m a e n t r a d a . Se o c a m p o não c o n t é m e s t e v a l o r , v a i para B

.

B

-

S u b t r a i 'BYTES ELIMINADOS' do c a m p o 'ENDEREÇO MEMORIA' para o b t e r o novo endereço da s u b r o t i n a . A t u a l i z a o c a m p o 'ENDE

-

REÇO MEMÕRIA' e reloca a v a r i g v e l .

C

-

C o l o c a zeros e m todos os c a m p o s 'NUMERO DE V E Z E S ' .

A ~ Õ S a i d e n t i f i c a ç ã o do operador e da execução do a l g o r i t m o de gestão de m e m ó r i a deixando alocada na m e m ó r i a p r i n c i

-

p a l a s u b r o t i n a que

será

chamada para e x e c u t a r a i n s t r u q ã o , o su-

Referências

Documentos relacionados

As mulheres travam uma história de luta por reconhecimento no decorrer do tempo sistematicamente o gênero masculino dominava o feminino, onde prevalecia a hierarquização do sexo

O presente estudo visa identificar a correlação entre os componentes da síndrome metabólica e a taxa de filtração glomerular estimada baseada nos níveis séricos

DECORAÇÃO DE VEÍCULOS SISTEMAS DE SINALÉTICA INTERIOR E EXTERIOR SINALIZAÇÃO DE EMERGÊNCIA E SEGURANÇA SISTEMAS DE SINALIZAÇÃO AMOVÍVEL.. GPS E SISTEMAS DE NAVEGAÇÃO

Neste capítulo estão apresentados os materiais utilizados para a execução dos ensaios e as adições minerais estudadas: cinza de casca de arroz, metacaulim,

Os resultados deste estudo mostram que entre os grupos pesquisados de diferentes faixas etárias não há diferenças nos envoltórios lineares normalizados das três porções do

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

Os casos foram julgados ainda de acordo com o Artigo 19 do Código Brasileiro de Autorregulamentação Publicitária que afirma que: “Toda atividade publicitária deve

Para realização das coletas de sedimento, foram realizadas quatro campanhas nos meses de Junho, Julho, Agosto, Setembro de 2011 em 12 pontos amostrais ao longo do estuá- rio do