Translate

Mostrar mensagens com a etiqueta memória principal. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta memória principal. Mostrar todas as mensagens

sexta-feira, 13 de abril de 2007

O que é Address Space?

 

Bellacosa Mainframe e o conceito de address space

O que é Address Space?

Se existe um conceito que todo estudante de Mainframe precisa compreender logo no início, esse conceito é o Address Space.

Ele é uma das bases do funcionamento do z/OS e explica como milhares de programas conseguem executar ao mesmo tempo no IBM Z sem interferirem uns nos outros.

Embora o nome pareça complicado, a ideia é bastante simples.


Definição simples

Um Address Space (Espaço de Endereçamento) é uma área de memória virtual exclusiva onde um programa, um subsistema ou um serviço do z/OS é executado.

Cada Address Space possui:

  • sua própria memória;

  • seus próprios programas;

  • suas próprias variáveis;

  • seus próprios controles;

  • sua própria proteção.

Em outras palavras:

Cada programa executa em um "ambiente privado", sem acessar diretamente a memória dos outros programas.


Uma analogia simples

Imagine um grande prédio comercial.

Cada empresa possui um escritório próprio.

Dentro do escritório existem:

  • computadores;

  • documentos;

  • funcionários;

  • armários.

Os funcionários de uma empresa não entram livremente nas salas das outras.

No z/OS acontece exatamente isso.

Cada programa trabalha dentro do seu próprio escritório, chamado Address Space.


O que significa Address Space?

Em português:

Espaço de Endereçamento.

É o conjunto de endereços de memória que um programa pode utilizar durante sua execução.


Por que ele existe?

Imagine que dois programas estejam executando ao mesmo tempo.

Programa A:

Calcula salários

Programa B:

Processa PIX

Se ambos utilizassem a mesma memória física sem controle, um poderia sobrescrever os dados do outro.

O resultado seria:

  • corrupção de memória;

  • perda de dados;

  • travamentos;

  • ABENDs.

O Address Space evita esse problema.


Como funciona?

Imagine três programas.

COBOL
CICS
DB2

Cada um recebe seu próprio espaço.

+------------------+
| Address Space A  |
| Programa COBOL   |
+------------------+

+------------------+
| Address Space B  |
| CICS             |
+------------------+

+------------------+
| Address Space C  |
| DB2              |
+------------------+

Cada ambiente é isolado.


Memória Virtual

Os Address Spaces utilizam memória virtual.

Isso significa que o programa acredita possuir um enorme espaço de memória.

Na realidade, o z/OS faz o gerenciamento automaticamente.


Isolamento

Uma das maiores vantagens é a proteção.

Programa A

não consegue alterar

Programa B

Isso aumenta muito a segurança.


Quantos Address Spaces existem?

Depende do ambiente.

Um grande banco pode possuir milhares deles simultaneamente.

Exemplo:

  • JES2;

  • CICS;

  • DB2;

  • IMS;

  • MQ;

  • TCP/IP;

  • aplicações COBOL;

  • utilitários;

  • Started Tasks.

Cada componente normalmente executa em seu próprio Address Space.


O que existe dentro de um Address Space?

Normalmente encontramos:

  • programa executável;

  • memória de trabalho;

  • pilhas (Stacks);

  • buffers;

  • tabelas;

  • bibliotecas carregadas;

  • áreas de controle.

Tudo isso pertence apenas àquele Address Space.


Quem cria o Address Space?

O próprio z/OS.

Sempre que um JOB ou uma Started Task inicia, o sistema operacional cria automaticamente um novo espaço de endereçamento.


JOB Batch

Quando um JOB COBOL começa:

JES2

↓

Inicia JOB

↓

z/OS cria Address Space

↓

Programa executa

↓

JOB termina

↓

Address Space é removido

Started Tasks

Serviços permanentes normalmente possuem Address Spaces próprios.

Exemplos:

  • JES2;

  • VTAM;

  • TCP/IP;

  • DB2;

  • CICS;

  • RACF;

  • OMVS.

Esses espaços permanecem ativos durante muito tempo.


Address Space e CICS

Normalmente existe um Address Space para cada região CICS.

Dentro dele podem existir milhares de transações simultâneas.

As transações compartilham recursos internos do CICS, mas continuam protegidas pelo gerenciamento da região.


Address Space e DB2

O Db2 utiliza diversos Address Spaces.

Exemplo:

MSTR

DBM1

IRLM

DIST

Cada um possui funções específicas.


Como o z/OS protege a memória?

O hardware do IBM Z trabalha em conjunto com o sistema operacional.

Se um programa tentar acessar memória que não lhe pertence:

resultado:

Protection Exception

Ou outro tipo de ABEND.

Essa proteção é um dos pilares da confiabilidade do mainframe.


Benefícios

Segurança

Programas não interferem entre si.


Estabilidade

Um erro em uma aplicação normalmente não afeta as demais.


Escalabilidade

Milhares de programas podem executar simultaneamente.


Organização

Cada aplicação possui seu próprio ambiente de execução.


Quem trabalha com Address Spaces?

Diversos profissionais lidam com esse conceito:

  • Programadores COBOL;

  • Desenvolvedores PL/I;

  • Administradores CICS;

  • DBAs;

  • Sysprogs;

  • Operadores Mainframe;

  • Especialistas em Performance.


Curiosidades incríveis

1. O z/OS pode manter milhares de Address Spaces ativos

Grandes ambientes executam milhares de aplicações simultaneamente sem comprometer a estabilidade.


2. Cada região CICS normalmente possui seu próprio Address Space

Isso facilita o isolamento entre ambientes de produção, homologação e testes.


3. O Db2 utiliza vários Address Spaces

Cada um desempenha uma função específica, como gerenciamento, processamento de banco de dados, bloqueios e conexões distribuídas.


4. O conceito existe desde os primeiros sistemas de memória virtual da IBM

Ele evoluiu ao longo das décadas e continua sendo um dos principais motivos da alta confiabilidade do IBM Z.


Erros comuns de iniciantes

"Address Space é apenas memória RAM"

Não.

Ele representa um espaço de memória virtual, administrado pelo z/OS e mapeado para a memória física conforme necessário.


"Todos os programas compartilham a mesma memória"

Não.

Cada aplicação executa em seu próprio Address Space, garantindo isolamento e proteção.


"Quando um programa termina, o Address Space continua existindo"

Nem sempre.

Nos jobs batch, o Address Space normalmente é encerrado quando o processamento termina.

Já serviços permanentes, como CICS e Db2, permanecem ativos enquanto o subsistema estiver em execução.


Quando aprender Address Space?

Esse conceito deve ser estudado logo após compreender:

  • z/OS;

  • memória virtual;

  • Storage;

  • processamento Batch;

  • Started Tasks.

Ele servirá de base para entender CICS, Db2, IMS, desempenho, gerenciamento de memória e arquitetura do IBM Z.


Conclusão

O Address Space é um dos conceitos mais importantes do z/OS. Ele fornece um ambiente de memória virtual isolado para cada programa, job ou subsistema, permitindo que milhares de aplicações executem simultaneamente com segurança, estabilidade e alto desempenho.

Sem os Address Spaces, o IBM Mainframe não conseguiria oferecer o nível de confiabilidade, disponibilidade e escalabilidade que faz dele a plataforma escolhida por bancos, seguradoras, governos e grandes empresas em todo o mundo.