Você está na página 1de 19

ELE 1736 - Arquitetura de Computadores

Prof. Vinícius

Componentes do grupo:

• Leandro M. G. Ferreira 9216235-7


• Leonardo Pacheco 9114317-2
• Luiz Otávio C. Ribeiro 9215266-8
Application System/400 2

Arquitetura do IBM AS/400

Introdução

História

O AS/400 (AS de Application System) é a arquitetura empregada pela IBM para sistemas
de tamanho médio, onde não é possível se usar PC’s e também não é viável a utilização de
mainframes. O AS/400 foi criado em 20 de Junho de 1988 para substituir a sua família
System/3x. Na figura abaixo, vemos a história do AS/400.

Como seus predecessores, o AS/400 é um sistema multiusuário. Ao desenvolver o


AS/400, foram utilizadas as características de facilidade de operação do System/36, combinadas
com o a arquitetura avançada e a produtividade do System/38 e novas funções. Por isto, muitos
dos programas desenvolvidos para o System/36 e o System/38 podem ser migrados e usados nos
sistemas AS/400 apenas aplicando as ferramentas de migração disponíveis.
Nos últimos anos, a IBM tem transformado o AS/400 de um sistema “centrado em
servidor” para um sistema “centrado em aplicações”. No primeiro, têm-se terminais burros
conectados ao servidor, que tem todos os dados, programas, e o poder de execução deles. Já no
segundo, os dados e os programas podem estar em sistemas separados, e a aplicação (que é
composta dos dados e do programa) pode executar em outro sistema, sendo estes sistemas de
Application System/400 3

vários fabricantes diferentes. Por este motivo, hoje o AS/400 é muito utilizado como servidor de
bancos de dados, utilizando a filosofia cliente-servidor. Uma outra vantagem para utilizar o
AS/400 como servidor de bancos de dados é que ele já vem com uma versão do poderoso banco
de dados relacional DB/2 embutido em seu sistema operacional. O AS/400 também é muito
utilizado em redes de PC’s, uma vez que existem componentes para ligá-lo a praticamente
qualquer outro sistema, de PC’s a estações RISC com UNIX.

Família

Quatro modelos constituem a família do AS/400: o “Portable One”, o 9402, o 9404 e o


9406. Cada modelo destes pode estar subdivido em submodelos. Com estes modelos, temos
desde computadores que são do tamanho de uma pasta (“Portable One”) até minicomputadores.
O poder destes modelos varia: no “Portable One” podemos ter de 1 a 3 usuários, de 1 a 2 Gb de
disco, de 8 a 16 Mb de memória RAM e um máximo de 17.100 transações por hora. Já no 9406
modelo 320/2052 (o mais poderoso), podemos ter mais de 2000 usuários, até 260 Gb de disco,
até 1536 Mb de RAM e quase 500.000 transações por hora. Leia-se como número de transações
por hora, o número de pedidos por atividade de usuários.
À esquerda podemos ver
algumas fotos de modelos
AS/400. Temos desde o
“Portable One” (encima à direita)
até o 9402 modelo 200 (embaixo
à esquerda). Temos também
várias opções de expansão, que
vão de simples terminais,
modems e impressoras até
processadores criptográficos,
dispositivos de rede sem fio e
expansões de disco (como no
sistema 9406 mostrado na foto
abaixo à direita).
Os modelos AS/400 mais
avançados tem várias
características de segurança,
como replicação de dados em
hardware (RAID-5), reparo
concorrente (onde é possível o
conserto de unidades de disco e
até de fontes de alimentação com
o sistema em uso), a opção de
um processador criptográfico, e outras (todas dentro do sistema).
Application System/400 4

Hardware (Nível 0)

Organização

O AS/400 isola os usuários das características do hardware através de uma arquitetura de


camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,
entretanto um único sistema operacional suporta toda a linha de produtos. Isto significa que
programas podem ser rodados em qualquer sistema AS/400 e movidos entre sistemas sem
qualquer modificação.
In t e rf a c e d e M á q u in a
d e A lt o N ív e l

C ó d ig o I n t e r n o

A máquina é composta de 3 camadas, com uma interface de máquina de M ic ro p ro g ra m a ç ã o


alto nível separando o programador da implementação detalhada.
C ó d ig o I n t e r n o

P a l a v r a s d e C o n t r o le

H a rd w a re

Interface de Máquina (IM)

A interface de máquina é suportada pela camada superior do código interno, que contém
duas classes de suporte:

• funções do sistema operacional, como gerenciamento de armazenamento,


gerenciamento de dados e suporte a entrada e saída (E/S);

• o tradutor, que converte instrusões da IM para instruções do nível da interface interna


de microprogramação (IIMP). A tradução feita pelo tradutor é análoga a um compilador
otimizador. Instruções individuais de IM são convertidas em uma ou mais instruções de
IIMP ou em chamadas a rotinas internas, que são conjuntos de instruções IIMP que
realizam funções requisitadas. Assim como seu sistema operacional, o conjunto de
instruções IM do AS/400 é orientada a objetos.
Application System/400 5

Interface Interna de Microprogramação (IIMP)

A IIMP é suportada por uma segunda camada de código interno que interpreta as
instruções IIMP. A IIMP também consiste em dois tipos de suporte que distribui algumas das
funções entre si.

• suporte às funções do sistema operacional, como gerenciamento de armazenamento,


segurança, integridade do banco de dados, envio de tarefas, fila de tarefas e mensagens e
processamento de E/S. Estas funções estão escritas em código interno vertical (CIV).

• funções computação, desvio, e instruções IIMP estendidas, que são interpretadas pelo
nível inferior de microprogramação, chamado código interno horizontal (CIH). A
interpretação é suportada por rotinas CIH consistindo de uma ou mais instruções CIH,
chamadas palavras de controle. O processador do sistema diretamente decodifica e
processa as palavras de controle do CIH. As instruções IIMP são um conjunto de
instruções de registrador, armazenamento e desvio.

Hardware do Sistema

O hardware do sistema inclui o processador e armazenamento principal, dispositivos de


entrada e saída e controladores, e os racks, cabos e conectores que compõe o sistema AS/400. O
projeto do hardware permite que componentes do sistema sejam espalhados pela organização de
forma a atender os requisitos do ambiente de trabalho. Componentes do sistema, como racks
adicionais, controladores de E/S, dispositivos de armazenamento e estações de trabalho, podem
ser adicionados incrementalmente sem reconfigurar todo o sistema.

Arquitetura do Barramento de E/S do Sistema

O sistema AS/400 é projetado em torno da arquitetura do barramento de E/S, que conecta


os processadores de E/S ao processador do sistema. Um processador de E/S se comunica com o
processador do sistema e controla os dispositivos ligados a ele. Cada processador de E/S deve ter
o devido código interno carregado para se comunicar com o programa OS/400.

Controle do Barramento

O barramento de E/S conecta o processador de serviço, o processador do sistema e os


processadores de E/S. Cada barramento tem um controlador de barramento, que controla a
arbitragem e a detecção e correção de erros no barramento.
Application System/400 6

P ro c e s s a d o r d e
O S /4 0 0
S e rv iç o

C ó d i g o I n te r n o C lo c k D a d o s V ita is
C o m m u n ic a tio n s P o r t
P ro c e s s a d o r d o
M ic ro p ro c e s s a d o r
S is te m a
P ro ces sad o r
C o n tro la d o r d e
BCU BCU BCU BCU E /S

P ro c e s s a d o r P ro ces sad o r
C o n tro la d o r d e C o n tro la d o r d e
E /S E /S

Tape D is k
B a r r a m e n to d e E /S 1

B a r r a m e n to d e E /S N W o r k s ta tio n

W o r k s t a ti o n W o r k s ta ti o n

A arquitetura de entrada e saída do barramento provê capacidade de expansão futura para


o sistema. Controladores e dispositivos adicionais de E/S são totalmente gerenciados pelo
processador do sistema para o usuário final. Quando um novo controlador de E/S é adicionado,
ele indica sua presença quando o sistema é iniciado, passando informações vitais de auto-
identificação. Se o controlador de E/S tem um adaptador ou dispositivo de E/S associado a ele,
sua presença é também indicada. Esta informação é passada ao sistema operacional, que
automaticamente inclui os dados vitais do novo equipamento à tabela de recursos do sistema,
durante a configuração automática. A arquitetura do barramento de E/S permite ao usuário
adicionar novos dispositivos à processadores de E/S existentes sem interromper a operação do
sistema.

Múltiplos Caminhos

A arquitetura de múltiplos caminhos de processador provê capacidade de expansão


permitindo a adição de múltiplos processadores. Processadores adicionais são transparentes ao
usuário porque eles gerenciam separadamente a carga dividindo o trabalho igualmente entre os
múltiplos processadores. Se um processador falha durante a inicialização do sistema, o sistema é
automaticamente configurado sem o processador em falha.
O projeto flexível da arquitetura do barramento de E/S, junto com o projeto inovativo e
distribuição de função entre o processador de E/S e as instruções programadas, e o processador
Application System/400 7

do sistema, dão ao usuário uma melhor performance ao mesmo tempo que permite a operação
simultânea de muitos dispositivos.

Arquitetura do Sistema

A arquitetura do AS/400 distribui funções entre os elementos do sistema, incluindo como


o sistema organiza o trabalho e informações para facilitar as operações.

Com andos do C o m p ila d o re s


A p lic a ç õ e s
O S /4 0 0 e U tii li tá r i o s
P ro g ra m a s

O S /4 0 0

C o n ju n t o d e In s t ru ç õ e s d a
In t e rf a c e d e M á q u in a d e A lto N ív e l
M á q u in a d e
A lto N ív e l
C ó d ig o I n t e r n o

H a rd w a re

Com a interface de máquina proporcionada pelo código interno, o AS/400 pode se adaptar
facilmente a novas tecnologias de hardware e de software, sem tornar obsoletas as aplicações
existentes.

Orientação a Objeto

A arquitetura baseada em objetos da máquina é fundamental para o projeto global de


funções proporcionadas pelo AS/400. Cada tipo de objeto no AS/400 tem um propósito único
dentro do sistema. Cada um tem um conjunto de comandos associado, com o qual processa
aquele tipo de objeto. A arquitetura orientada a objetos proporciona um ambiente comum para
trabalho e tratamento de informação eficientes no sistema.
Usando esta orientação a objetos, as instruções de interface de máquina podem tratar tudo
de uma forma consistente. Cada objeto é reconhecido pelo sistema por seu tipo, que determina
como ele pode ser usado. Componentes complexos do sistema combinam diversos tipos de
objetos primários para criar objetos compostos. (Por exemplo, um comando complexo pode
chamar um programa consistindo de diversos comandos simples.) Estes objetos compostos são
construções geralmente invisíveis ao usuário; eles são mais fáceis de entender e controlar porque
a complexidade é tratada pelo sistema. Por exemplo, um arquivo físico é uma construção do
usuário que é formada por um espaço de dados e, opcionalmente, um objeto índice de espaço de
dados que permite acesso lógico aos registros armazenados no espaço de dados. Combinando
objetos primários a integridade do sistema pode ser mantida, já que são utilizadas funções já
testadas, e a performance do sistema pode ser melhorada pelo ajuste cuidadoso das funções mais
utilizadas.
Alguns objetos são embarcados com o sistema ou criados pelo OS/400. Estes incluem
objetos como a descrição do subsistema para trabalho interativo e comunicações, e descrições de
dispositivos criadas pelo sistema durante a configuração automática dos dispositivos detectados.
O sistema usa os objetos para acompanhar operações e gerenciar o trabalho submetido
Application System/400 8

diretamente pelo usuário ou por aplicações. O operador do sistema ou usuário pode gerenciar
estes objetos através de programas e da linguagem de comandos (LC).
Os usuários também podem criar objetos para auxiliar no gerenciamento de seu trabalho
no sistema. Estes incluem bibliotecas para organizar arquivos, programas para manipular estes
arquivos, e até verificadores de ortografia personalizados. As funções de gerenciamento de
objetos proporcionadas pelo sistema ajudam o usuário a gerenciar estes objetos.

Armazenamento

O sistema usa o armazenamento como espaço de trabalho para todas as tarefas


requisitadas pelo usuário ou por programas. O gerenciamento do armazenamento é realizado pelo
sistema. Conforme as requisições são feitas, os objetos são movidos para o armazenamento
principal.

Armazenamento de Nível Único

O AS/400 é um sistema de armazenamento compartilhado no qual todas as porções do


armazenamento principal e auxiliar são endereçados como se estivessem em uma única área (ou
nível). O sistema usa o nome do objeto para determinar onde ele existe no sistema. Isto quer
dizer que o usuário pode identificar objetos pelo nome, ao invés de pelo local de armazenamento.
Como as operações não podem ser efetuadas em um objeto que não esteja no armazenamento
principal, o sistema move parte ou todo o objeto para o armazenamento principal conforme
necessário, e move de volta para o armazenamento auxiliar quando ele não é mais necessário.
Esta transferência é controlada pelo sistema e não requer controle pelo usuário ou programador.

Áreas de Armazenamento

Sendo o AS/400 um sistema capaz de multiprocessamento, o armazenamento principal


deve estar sempre disponível para processos que estejam rodando simultaneamente no sistema.
Para reduzir a interferência entre processos que estejam competindo por armazenamento
principal e prevenir que um processo muito grande use muito do espaço de armazenamento
principal, o armazenamento principal pode ser subdividido para uso por diferentes grupos de
processos. O armazenamento principal é dividido em áreas de armazenamento, que são
segmentos lógicos do armazenamento principal. Quando o sistema recupera um objeto do
armazenamento auxiliar para um processo, o objeto (ou uma parte do objeto que seja necessária)
é movido para a área de armazenamento no armazenamento principal que foi atribuída ao
processo que está executando.

Armazenamento Principal: Uma área de armazenamento provê uma quantidade restrita de


armazenamento principal para processos que executem dentro daquela área de armazenamento.
Uma área de armazenamento não é necessariamente uma partição contígua de armazenamento
principal. Ao contrário, ela é composta por blocos de 1024 bytes que estão disponíveis para
processos executando nela. Estes blocos podem estar em qualquer lugar no armazenamento
principal.
O AS/400 reserva algum armazenamento principal para os objetos de controle do sistema que
estão sempre presentes no sistema. Estes objetos não são paginados durante a operação do
sistema. Este armazenamento é alocado para o sistema quando este é iniciado. Outras funções do
sistema, não diretamente relacionadas com o controle do sistema, são paginados e usam uma área
Application System/400 9

de armazenamento que é atribuída ao próprio sistema (área da máquina). O OS/400 defina uma
outra área de armazenamento que automaticamente inclui todo o armazenamento principal que
não é atribuído a qualquer outra área de armazenamento.

Objetos Compartilhados: O compartilhamento de objetos por usuários individuais usando


simultaneamente o sistema proporciona uso eficiente do armazenamento principal. Quando um
objeto (como um programa ou arquivo de banco de dados) é usado ao mesmo tempo por mais de
um usuário do sistema, apenas uma cópia do objeto é colocada no armazenamento principal,
mesmo que diferentes usuário executem diferentes processos em áreas de armazenamento
diferentes. Qualquer número de usuários pode estar usando o objeto. O sistema sincroniza
requisições de usuários conforme necessário. Este compartilhamento de objetos reduz a
quantidade de paginação feita pelo sistema e reduz a necessidade de grandes áreas de
armazenamento quando os usuários estão compartilhando um objeto.

Gerenciamento de Armazenamento: A maior parte das funções de gerenciamento de


armazenamento são executadas e controladas pelo sistema operacional. O OS/400 proporciona os
comandos necessários para o programador determinar as áreas de armazenamento e atribuir
processos a elas, para garantir que processos executem eficientemente.

Interface de Máquina de Alto Nível (IMAN)

Acesso às funções do sistema é proporcionada por uma poderosa e consistente interface


de máquina de alto nível. O nível da linguagem de máquina é mais próximo das funções que um
programador ou outro usuário normalmente executa. Por exemplo, instruções de máquina podem
ser usadas para recuperar um registro de banco de dados, executar diversas tarefas de
programação, tratar gerenciamento de armazenamento, e até pesquisar um arquivo de banco de
dados. Em sistemas tradicionais, estas funções seriam tratadas por diversos programas. Uma
máquina de alto nível melhora a integridade e confiabilidade do sistema. Um programador
escreve menos instruções para completar uma tarefa, e quanto menos instruções, menor o número
de erros em potencial. Além disso, devido à ampla gama de funções disponíveis na interface,
uma máquina de alto nível reduz o custo de desenvolvimento para sistemas operacionais,
linguagens e utilitários. As funções disponíveis incluem:

Funções de Linguagem de Programação: Aqui estão incluídas conversões de tipos, alocação


de armazenamento, gerenciamento de procedimentos e primitivas de programação embutidas.

Depuração de Programas Simbólicos: O programador pode incorporar pontos de parada no


código-fonte. O programa pode ser executado em modo de depuração, parando nos pontos de
parada para permitir ao programador testar os valores de variáveis e campos. Esta operação pode
ser feita independentemente de outros usuários no sistema, mesmo aqueles que possam estar
utilizando os programas ou arquivos ao mesmo tempo.

Funções de Supervisão ou Controle: Estas permitem que várias linguagens de alto nível sejam
utilizadas para produzir uma aplicação. Por exemplo, as rotinas de entrada de dados podem ser
escritas em COBOL e as de manipulação de dados em Pascal. O fluxo entre o controle pelas
aplicações e o controle pelas funções do sistema poderia ser gerenciado pela linguagem de
controle do OS/400.
Application System/400 10

Funções de Gerenciamento de Dados: As funções usadas pela maior parte dos programas para
acessar e manipular dados incluem declarar, apagar, recuperar, agrupar e corrigir, assim como
suporte a dicionário de dados. O dicionário de dados, que pode ser acessado por todos os
programas, contem informações sobre os dados como significado, relação com outros dados,
origem, uso e formato.
Application System/400 11

Linguagem de Máquina (Nível 1)

Apresentação

O AS/400 foi projetado para ser uma máquina de alto nível, de fácil uso e programação.
Foi projetado também para ser independente de tecnologia, permitindo o porte de seu sistema
operacional e aplicativos existentes para qualquer máquina da família, independentemente do
processador e de mudanças na arquitetura de hardware.
Este objetivo foi alcançado através de uma interface de máquina de alto nível. Esta
interface esconde todo o hardware que há por trás dela e disponibiliza pros usuários e
programadores uma “máquina virtual” com instruções de máquina de alto nível. Estas instruções
são o nível mais baixo que se consegue atingir em programação no AS/400, caracterizando-se
como sua “linguagem de máquina”.
Não há, portanto, uma linguagem de máquina no AS/400 como a que encontramos em
outras plataformas. As instruções da máquina de alto nível são de nível elevadíssimo, orientadas
a objeto, com instruções poderosas que somente podem ser aplicadas aos objetos corretos
(fortemente tipada).
Outra consequência do projeto peculiar do AS/400 é a dificuldade de se obter
documentação sobre sua “linguagem de máquina”, já que dificilmente se programa em nível tão
baixo nesta plataforma. Nosso grupo conseguiu um guia de referência com todas as instruções da
máquina de alto nível, e o principal da informação obtida é exposto nos próximos tópicos, mas a
informação não era detalhada e alguns tópicos ficaram obscuros.

Tipos de Operandos

Cada instrução precisa de zero a quatro operandos. Cada operando pode consistir de um
ou mais campos que contém um operando nulo, um valor imediato de dado ou uma referência a
um objeto ODT. O tamanho do operando depende da versão do gabarito de programa. Se o
número da versão é 0, o tamanho do cammpo de operando é 2 bytes. Se o número de versão é 1,
o tamanho do campo de operando é 3 bytes.

Operandos Nulos

Certas instruções permitem que certos operandos sejam nulos. Em geral, um operando
nulo significa que alguma função opcional da instrução não deve ser realizada, ou que uma ação
default deve ser executada pela instrução.

Operandos Imediatos

O valor deste tipo de operando está codificado no operando de instrução. Operando


imediatos podem assumir os seguintes valores:

• binário com sinal – representando um valor binário de -4096 a 4095.


• binário sem sinal – representando um valor binário de 0 a 8191.
• byte – representando um único byte, com valor de 0x00 a 0xFF.
Application System/400 12

• número de instrução absoluto – representando um número de instrução na faixa de 1 a


8191.
• número de instrução relativo – representando um deslocamento de uma instrução em
relação a instrução em que operando aparece. Este valor de operando pode identificar um
deslocamento de instrução de -4096 a 4095.

Referências a Objetos ODT

Este tipo de operando contem uma referencia (possivelmente qualificada) para um objeto
na ODT. Operandos que sejam referências a objetos ODT podem ser operandos simples ou
operandos compostos.

Operando Simples

O valor codificado no operando referência um objeto específico definido na ODT.


Operandos simples consistem em um único operando de 2 bytes.

Operandos Compostos

Um operando composto consiste em um operando primário (2 bytes) e uma série de uma


a três operandos secundários. O operando primário é uma referência ODT para o objeto base,
enquanto que os operandos secundários servem como qualificadores para o objeto base.
Um operando composto pode ter os seguintes usos:
• Referência a subscript
Um elemento individual de um array de objetos de dados, um array de ponteiros, ou
uma lista de definição de instruções podem ser referênciados por um subscript em um
operando composto. O operando consiste em uma referência primária ao array e um
operando secundário para especificar o valor de índice para um elemento do array.
• Referência a substring
Uma porção de um objeto de dados caracter pode ser referenciado como um
operando de instrução através de um operando composto de substring. O operando
consiste de um operando primário para referenciar o objeto string base e referências
secundárias para especificar o valor de um índice (posição) e o valor de um
comprimento pra substring.
• Referências de base explícitas
Um operando de instrução pode especificar uma sobrecarga explícita para o ponteiro
de base para um objeto de dados com base ou um objeto de endereçamento com base.
O operando consiste em um operando primário referenciando o objeto com base e um
operando secundário referenciando o ponteiro no qual basear o objeto para este
operando. O deslocamento implícito na definição na ODT do operando primário e a
endereçabilidade contida no ponteiro explícito são combinados para determinar um
endereço para o operando.
A base explícita pode ser combinada com o operador composto de subscript ou de
substring para determinar um operando composto de subscript ou de substring com base.
Application System/400 13

Grupos de Instruções

Funções Básicas

• Instruções de Computação e Desvio


• Instruções de Dia, Hora e Timestamp
• Instruções de Endereçamento de Ponteiros e Resolução de Nomes
• Instruções de Endereçamento de Espaço
• Instruções de Gerenciamento de Espaço
• Instruções de Gerenciamento de Heap
• Instruções de Gerenciamento de Programas
• Instruções de Execução de Programas
• Instruções de Controle de Criação de Programas
• Instruções de Índice Independente
• Instruções de Gerenciamento de Fila
• Instruções de Gerenciamento de Trancamento de Objetos
• Instruções de Gerenciamento de Exceções
• Instruções de Gerenciamento de Espaço de Fila

Funções Estendidas

• Instruções de Gerenciamento de Contexto


• Instruções de Gerenciamento de Autorização
• Instruções de Gerenciamento de Processos
• Instruções de Gerenciamento de Recursos
• Instruções de Gerenciamento de Espaço de Dump
• Instruções de Observação de Máquina
• Instruções de Funções de Suporte de Interface de Máquina

Interface de Suporte à Instruções

• Especificação de Exceções
Application System/400 14

Sistema Operacional

Descrição

O AS/400 possui um sistema operacional proprietário, denominado Operational


System/400 (geralmente chamado de OS/400). O OS/400 possui funções integradas que possuem
multiprogramação, sistemas interativos e batch. Isto inclui gerenciamento de banco de dados
(inclui o DB/2), manutenção de access paths, codificação para read-only, gerenciamento de
workstation, control language, dados descritos externamente, programa de desenvolvimento on-
line, gerenciamento de tarefas, segurança, auxílio na recuperação de dados, mensagens,
comunicação de dados remota, funções distribuídas de escritório, etc.
Por ser um sistema proprietário, o OS/400 praticamente complementa a LIC (linguagem
de máquina do AS/400). Com isto, a linguagem de máquina fica invisível ao programador, que
só tem acesso à API do OS/400. Por este motivo, a LIC não é difundida pela IBM. Isto diferencia
o AS/400 de outros sistemas tradicionais, onde o programador trabalha na linguagem de máquina
do sistema.
Apesar do OS/400 ser um sistema operacional simples de se usar, ele tem muitas funções
e características complexas, entre elas:

• suporte à banco de dados: existe um DB/2 embutido na arquitetura do OS/400.


• suporte à comunicações: as facilidades embutidas no OS/400 permitem a um AS/400
bem equipado se comunicar com estações de trabalho remotas (em LAN’s ou WAN’s),
com PC’s, System/390, System/3x, Macintosh e outros AS/400. Em todos estes casos,
existe uma grande variedade de protocolos que podem ser usados. Existem também
algumas extensões do OS/400, que permitem a participação em ambientes de rede OSI,
TCP/IP, e outras.
• interoperabilidade baseada em padrões abertos: suporte a padrões como o SQL ANSI, o
Distributed Relational Database Architecture (DRDA) da IBM, o Open Database
Connection (ODBC) da Microsoft, e a Data Access Language, da Apple.
• portabilidade com UNIX/C: o AS/400 suporta 70 por cento da POSIX 1003.1 API,
junto com soquetes BSD, TCP/IP e UNIX Spec 1170. Isto e mais algumas outras
características fazem com que quase todas as aplicações UNIX/AIX sejam portáveis para
o AS/400.
• compatibilidade com System/3x: quase todos os programas escritos para o System/36 e
o System/38 podem ser migrados para o AS/400 com pouca ou até nenhuma
modificação.. Isto é conseguido pois o OS/400 tem múltiplas API’s: a nativa AS/400, a
API System/38 e a API System/36. Como o AS/400 é baseado no System/38, os
programas deste podem ser rodados quase sem perda de performance no AS/400. Já no
caso do System/36, há uma redução de performance.
Application System/400 15

Estrutura

Na memória do AS/400, são armazenados objetos, que podem ser de vários tipos
diferentes, entre eles classes, comandos, dispositivos, arquivos e programas. Cada objeto tem
dois componentes: descrição e parte funcional. Na descrição, temos atributos como nome,
biblioteca, tipo, atributos, datas de alteração, tamanho, etc. Na parte funcional, temos os
membros de arquivos físicos (registros de dados), os membros de arquivos lógicos (access paths)
e o código do programa.
Existem também bibliotecas, que são meios de organizar os objetos. Os objetos não
podem ter um mesmo nome e tipo em uma biblioteca, eles devem ser únicos. Resumindo, as
bibliotecas são espécies de diretórios. Uma biblioteca contém o nome, o tipo e o enderço do
objeto (que é gerenciado pelo sistema e transparente para o usuário). Vale notar que as próprias
bibliotecas são objetos, que residem numa biblioteca especial denominada QSYS. Além da
QSYS, existe uma outra biblioteca do sistema, denominada QGPL, que é uma biblioteca de uso
genérico, que contém filas de spool, arquivos de programas fonte, etc. Estas bibliotecas não
podem ser deletadas ou renomeadas e pertencem ao administrador do sistema. Já no caso de
bibliotecas de usuário, existem dois tipos: de produção (default) e de teste (para ambiente de
testes).
O OS/400 possui vários objetos que trabalham juntos para processar informações de jobs,
como mostrado na figura abaixo.

SYSTEM NETWORK
OS/400
VALUES ATTRIBUTES

SUBSISTEMA SBSD

WORK JOBD
JOB ENTRIES

ROUTING CLASS
ENTRIES

PROGRAMAS

POOLS

Um subsistema é um ambiente especializado para tratamento de funções. Eles podem ser


desenhados para tratar, de modo eficiente, tipos específicos de tarefas, podendo existir vários em
funcionamento ao mesmo tempo. Os jobs devem ser executados em subsistemas.
Pools de Memória são áreas lógicas da memória principal onde os jobs são executados.
Eles podem ser de dois tipos: shared ou private, onde no primeiro, vários subsistemas podem ter
acesso, enquanto no segundo apenas um subsistema pode acessá-lo. Um ponto importante é que,
no caso do OS/400, a paginação é restrita à pool. Existem 3 pools principais. São eles:
Application System/400 16

• *MACHINE: pool de memória utilizada pelas rotinas dp microcódigo e funções do


OS/400. Nenhum job de usuário é executado neste pool. É sempre o pool #1.
• *BASE: contém toda a memória principal que não está sendo alocada. Qualquer
subsistema pode utilizá-lo. É sempre o pool #2.
• *INTERACT: utilizado por jobs interativos.
Quando o tamanho de um pool qualquer é aumentado, a memória adicional é tirada de
*BASE. Quando é diminuído, esta memória retorna a *BASE.

Jobs são as unidades básicas de processamento no OS/400 (equivalente ao que


costumamos chamar de processos). Existem vários tipos de jobs, separados entre jobs do sistema
e do usuário. Entre os de usuário podemos ter, por exemplo, jobs interativos, batch, de
comunicação, etc. Os jobs batch utilizam um subsistema já definido no OS/400, que é o
QBATCH.
Existem comandos que permitem o redirecionamento de jobs, podendo ser trocado seu
pool, sua classe e até seu subsistema.

Gerenciamento de memória

O OS/400 trata todos os pedidos de I/O com uma simples instrução de máquina:
Performing Page Request (PPR). O número de páginas transmitidas são determinadas pela
função de request. Sempre que o sistema reconhece que um arquivo de dados está sendo
processado na ordem de chegada, as tarefas de I/O irão automaticamente preencher um segundo
buffer de registro. Este processo é conhecido como um Adaptative Look Ahead Bring.
Na paginação, os programas são trazidos para a memória principal em segmentos de 4Kb,
onde o movimento de um segmento para outro causa um page fault.
Application System/400 17

Linguagens de Programação e Banco de Dados

Como o próprio nome sugere ( Application System/400 ), o AS/400 é um sistema voltado


para o desenvolvimento de aplicativos, que visa, através de suas funcionalidades como a
arquitetura baseada em objetos do sistema OS/400, o banco de dados próprio do sistema e o
armazenamento em único nível de memória, aumentar a produtividade do programador de
aplicativos.

O sistema AS/400 provê uma extensa variedade de ferramentas e linguagens de


programação para auxiliar o desenvolvimento de aplicativos. Com o AS/400, o programador
pode escolher entre as seguintes linguagens de programação e usar os comandos de CL para
chamar funções de sistemas e ligar os vários programas:

AS/400 BASIC
AS/400 Pascal
AS/400 PL/I
C/400
COBOL/400
RM/COBOL-85
FORTRAN/400
Procedures Language 400/REXX
RPG/400

Programas CL: A CL (Control Language) é uma linguagem de controle que atua como
interface entre o usuário e o sistema operacional OS/400. Um programa em CL é constituido por
uma série de comandos CL. Estes podem criar, abrir, copiar ou apagar arquivos, criar libraries,
criar arquivos de banco de dados ou outros objetos e muitas outras funções. Estes comandos são
compilados em um programa que pode ser chamado sempre que as funções por ele definidas
forem necessárias. As vantagens do uso de programas CL incluem:

• O usuário que roda o programa não precisa digitar os comandos CL individualmente.


• Usar programas CL é mais rápido que digitar e rodar os comandos individualmente,
porque os comandos estão compilados e armazenados de tal forma que podem ser
executados imediatamente.
• Programas CL podem executar diversas funções dependendo dos parâmetros utilizados.
• Alguns comandos CL não podem ser executados individualmente, precisando fazer
parte de um programa CL.
• Programas CL podem ser testados e “debugados” como programas de outras linguagens
de alto nível.
Application System/400 18

Programas CL podem ser usados para diversos tipos de aplicativos. Por exemplo, eles
podem ser utilizados para:

• Prover uma interface para o usuário de um aplicativo interativo. Isto permite ao


usuário requisitar funções ao aplicativo sem entender os comandos usados pelo programa.
• Prover procedimentos pré-definidos para funções constantemente utilizadas, como
procedimentos de inicialização de subsistemas, cópias de backup de arquivos e outras.
Isto reduz o número de comandos usados frequentemente e garante a consistência dessas
funções.

Além dos próprios comandos CL, os programas CL utilizam funções que não estão
disponíveis quando os comandos são executados individualmente. Estas incluem:

• Funções de controle do tipo if then else.


• Operações sobre dados
• Uso de variáveis e parâmetros para passagem de informações entre comandos em um
programa e entre programas

Programas em CL provêm a flexibilidade necessária para possibilitar ao usuário escolher


as operações que ele deseja executar e rodar os programas necessários para isto.

Procedures Language 400/REXX:

REXX é uma implementação para o AS/400 da linguagem procedural SAA (Systems


Application Architecture),que é um ambiente no qual programas são desenvolvidos de modo a
executar consistentemente na maioria dos sistemas computacionais da IBM. Os ambientes SAA
são o MVS, VM (CMS), o OS/400 e o OS/2. REXX oferece funções poderosas de manipulação
de strings, extensa capacidade matemática e a possibilidade de executar comandos em ambientes
fora do REXX.. Isto possibilita que comandos CL sejam executados de dentro do REXX. Ela é
uma linguagem interpretada e não compilada. Como resultado, programas REXX podem ser
escritos,testados e colocados em produção mais rapidamente que o normal em linguagens
compiladas. Entretanto, programas REXX podem não rodar tão rápido quanto um equivalente
compilado.

Banco de Dados

O AS/400 possui um banco de dados DB2/400 integrado ao sistema operacional. O que


diferencia o sistema AS/400 dos sistemas tradicionais neste aspecto é o fato do banco de dados
estar integrado ao sistema operacional OS/400 e ao nível de linguagem de máquina (Licensed
Internal Code). Não há necessidade de se instalar um gerenciador de banco de dados separado.
O banco de dados integrado possui vantagens de produtividade e processamento automático em
relação aos sistemas tradicionais. Além disto,o AS/400 disponibiliza funções de DRDA
( Distributed Relational Database Architecture) permitindo acesso ao banco de dados distribuído.
Application System/400 19

Bibliografia:

Manuais da IBM

• AS/400 System Concepts - Version 2


• AS/400 System Introduction - Version 2
• AS/400 Machine Interface Functional Reference
• AS/400 Languages: Integrated Language Environment - Concepts - Version 2
• AS/400 Application Development By Examples - Version 2

Livros

• AS/400 Architecture & Application


Jill T. Lawrence - QED Publishing Group
• IBM AS/400 - A Business Perspective
Jim Hoskins - John Wiley & Sons

Apostilas do Centro Educacional da IBM Brasil

• AS01 - Conceitos e Recursos


• AS23 - OS/400 Estrutura e Controles Básicos
• AS20 - AS/400 Control Language

Outros

• Foram consultadas algumas páginas na Internet no site da IBM em Rochester, MN


• Foi consultada uma revenda AS/400 no Rio de Janeiro

Você também pode gostar