Translate

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

terça-feira, 31 de março de 2026

🔥 SEUS DADOS NÃO MORAM NO DISCO… ELES VIAJAM PELO UNIVERSO DO z/OS 😳

 

Bellacosa Mainframe num mergulho no mundo storage do z/os

🔥 SEUS DADOS NÃO MORAM NO DISCO… ELES VIAJAM PELO UNIVERSO DO z/OS 😳

O guia proibido de Storage Management que revela como memória, disco e sysplex trabalham juntos (e quase ninguém entende)

Você acha que seu dataset “fica no disco”?

👉 Não fica.

No z/OS, dados:

  • sobem pra memória
  • descem pra disco
  • migram pra fita
  • aparecem em outro LPAR
  • e até existem fora do seu address space

💥 “No mainframe, dado não tem endereço fixo… tem estratégia.”

Se você quer sair do nível “usuário” e pensar como engenheiro de sistema, esse é o mapa completo 👊🔥


🧠 1. ADDRESS SPACE — O UNIVERSO DO PROGRAMA

Cada programa roda em um address space isolado.


🔥 O que isso significa?

  • memória protegida
  • ambiente independente
  • controle total do sistema

💡 Insight

cada address space é um “universo privado”


⚡ 2. 64-BIT ADDRESSING — MEMÓRIA INFINITA (QUASE)

Com 64 bits:

👉 até 16 EXABYTES


🔥 Evolução histórica

EraLimite
24-bit16MB 😱
31-bit2GB
👉 64-bit16EB 🤯

💡 Tradução Bellacosa

“acabou a desculpa de falta de memória”


🧠 Uso real

  • Java
  • Db2
  • middleware
  • grandes buffers

🧩 3. DAT — A MÁGICA DA TRADUÇÃO

DAT (Dynamic Address Translation):

👉 converte endereço virtual → real


🔥 Sem DAT:

  • programa quebraria
  • memória não funcionaria

💡 Tradução

“você nunca acessa memória real diretamente”


🧠 4. STORAGE REQUESTS — COMO A MEMÓRIA É PEDIDA

Programas pedem memória via:

  • GETMAIN
  • STORAGE OBTAIN

🔥 O sistema decide:

  • onde alocar
  • em qual subpool
  • com qual proteção

💡 Insight

memória é gerenciada, não livre


🧱 5. SUBPOOLS — ORGANIZAÇÃO INTERNA

Memória é dividida em:

👉 subpools


🔥 Exemplos:

  • SP0 → sistema
  • SP229 → usuário

💡 Tradução

“cada tipo de dado tem seu bairro”


🌍 6. DATA SPACES & HIPERSPACES — FORA DO ADDRESS SPACE

🔹 Data Spaces

  • dados fora do address space
  • acessados via AR

🔹 Hiperspaces

  • alta performance
  • acesso indireto

🔥 Tradução Bellacosa

“memória extra fora do seu universo”


🧠 Exemplo

Programa → usa Data Space → grande volume de dados

⚡ 7. PAGING — QUANDO A MEMÓRIA NÃO CABE

Se falta memória:

👉 dados vão para disco (paging)


🔥 Fluxo

Memória cheia

página vai para DASD

quando necessário → volta

💡 Problema

👉 excesso de paging = sistema lento 💀


💾 8. FLASH STORAGE — O TURBO MODERNO

Flash (SSD):

  • baixa latência
  • alta velocidade
  • ideal para OLTP

💡 Uso

  • Db2
  • logs
  • datasets críticos

🔗 9. PARALLEL SYSPLEX — MEMÓRIA COMPARTILHADA ENTRE SISTEMAS

Aqui fica poderoso 😄


🔥 O que é?

Vários z/OS trabalhando juntos:

👉 como um só sistema


💡 Elementos:

  • LPARs
  • Coupling Facility (CF)
  • links de comunicação

🧠 Exemplo

LPAR A → acessa dado
LPAR B → acessa o mesmo dado

💡 Tradução

“dados compartilhados em tempo real”


🧠 10. COUPLING FACILITY (CF) — O CÉREBRO COMPARTILHADO

🔹 Função:

  • lock management
  • cache
  • filas

🔥 Tipos:

  • Internal CF
  • External CF

💡 Tradução Bellacosa

“CF = memória compartilhada do sysplex”


⚡ 11. DUPLEXING — ZERO PERDA

🔥 O que faz?

  • duplica dados
  • garante disponibilidade

💡 Exemplo

CF primário → falha
CF secundário → assume

🧨 Curiosidade

Sistema continua rodando sem impacto 😳


🧠 12. CF OPERATIONS — O QUE ACONTECE POR TRÁS

CF gerencia:

  • locks
  • buffers
  • filas

💡 Uso real

  • Db2 data sharing
  • CICS
  • IMS

⚙️ 13. STORAGE + I/O + CPU — TUDO CONECTADO

Nada funciona isolado:

Memória → I/O → CPU → WLM → Storage

💡 Insight

performance é resultado do conjunto


🔄 14. PASSO A PASSO COMPLETO

Programa inicia

recebe address space

pede memória (GETMAIN)

DAT traduz endereço

usa data space se necessário

paging ocorre se faltar memória

dados vão para disco/flash

sysplex compartilha dados via CF

duplex garante disponibilidade

🧨 CURIOSIDADES (NÍVEL ROOT)

🤯 1. Você não controla diretamente onde o dado está


🔥 2. Dados podem estar fora do seu address space


💀 3. Paging excessivo mata performance


🧠 4. Sysplex permite vários sistemas compartilharem dados


⚡ 5. CF é o segredo da alta disponibilidade


🎯 RESUMO FINAL

✔ Address space = isolamento

✔ 64-bit = escala absurda

✔ DAT = tradução

✔ Subpools = organização

✔ Data space = expansão

✔ Paging = fallback

✔ Flash = velocidade

✔ Sysplex = escala

✔ CF = coordenação

✔ Duplexing = resiliência


💥 FRASE FINAL

“No z/OS, dados não ficam armazenados… eles são orquestrados entre memória, disco e múltiplos sistemas em tempo real.”

domingo, 8 de fevereiro de 2026

🔥 SEU PROGRAMA NÃO “ENXERGA” MEMÓRIA… ELE NEGOCIA COM O z/OS 😳 O guia proibido da Addressability que separa dev COBOL de engenheiro de sistema

 

Bellacosa Mainframe em uma viagem ao Addressability do z/os

🔥 SEU PROGRAMA NÃO “ENXERGA” MEMÓRIA… ELE NEGOCIA COM O z/OS 😳

O guia proibido da Addressability que separa dev COBOL de engenheiro de sistema

Você acha que seu COBOL acessa memória direto?

👉 Não acessa.

No mainframe, nada é direto.
Tudo passa por:

  • tradução
  • autorização
  • tabelas
  • registradores
  • controle do sistema

Se você não entende isso…
👉 você nunca vai dominar dump, performance ou abend 💀


🧠 O QUE É ADDRESSABILITY (SEM ENROLAR)

Addressability é:

a capacidade de um programa acessar dados — onde quer que eles estejam


💡 Tradução Bellacosa

“Addressability é o GPS + chave + autorização da memória.”


⚙️ 1. DISPATCHING WORK — ONDE TUDO COMEÇA

Quando sua task roda:

  • dispatcher escolhe
  • CPU assume
  • CR1 é carregado

👉 CR1 aponta para o address space ativo


🔥 Insight

CR1 define “qual mundo você está enxergando”


🌍 2. VIRTUAL STORAGE — O UNIVERSO NÃO É REAL

Cada usuário tem:

👉 seu próprio universo de memória


🔹 Características:

  • até 16 exabytes 😳
  • isolado
  • protegido

💡 História

MVS = Multiple Virtual Storage

👉 desde os anos 70 já fazia isso


🧨 Easter Egg

Você acha que está acessando memória real…

👉 está acessando endereço virtual traduzido


🧩 3. ADDRESS SPACE — SUA “BOLHA”

Tudo roda dentro de:

👉 um address space


🔹 Tipos:

  • Batch
  • TSO
  • Started Task

💡 Insight

cada programa vive isolado


🔗 4. CROSS MEMORY — QUEBRANDO A BOLHA

Mas… o sistema permite sair dela.


🔹 O que é?

Acessar outro address space


🔥 Exemplo real

COBOL → chama serviço → DB2 → retorna

👉 são address spaces diferentes


💡 Estados:

  • Home → origem
  • Primary → execução
  • Secondary → dados

🧨 Curiosidade

Se são diferentes:

👉 você está em cross-memory mode


🚀 5. PROGRAM CALL (PC) — O TELEPORTE DO z/OS

🔹 O que faz?

  • troca de address space
  • mantém controle
  • permite retorno

🔥 Fluxo real

User → LLA → VLF → módulo → volta

👉 tudo invisível


💡 Tradução

PC é um “portal controlado”


🧱 6. LINKAGE STACK — A MEMÓRIA DA EXECUÇÃO

Sempre que um programa chama outro:

👉 estado é salvo automaticamente


🔹 Salva:

  • registradores
  • PSW
  • access registers

💡 Vantagens

  • menos erro
  • suporte a reentrância
  • debug mais limpo

🧨 Curiosidade

Substitui os antigos save areas


⚙️ 7. ACCESS REGISTERS — O PODER ESCONDIDO

🔹 O que são?

  • 16 registradores
  • permitem acessar outros espaços

🔥 Funcionamento

AR → qual espaço
GR → qual dado

💡 Tradução Bellacosa

AR = endereço do universo
GR = endereço dentro do universo


🧠 8. ACCESS LIST / ALET / ALE — CONTROLE DE ACESSO

Nada é livre.


🔹 Processo:

  1. obter S-token
  2. ALESERV
  3. criar ALE
  4. gerar ALET
  5. carregar AR

💡 Insight

acesso exige autorização formal


🧨 Curiosidade

Sem isso:

👉 proteção de memória bloqueia acesso


⚡ 9. ADDRESSABILITY MODES

🔹 AMODE

  • 24-bit
  • 31-bit
  • 64-bit

🔹 RMODE

  • onde o programa carrega

💡 História

Compatibilidade com décadas de software


🔄 10. PASSO A PASSO COMPLETO

Task é despachada

CR1 define address space

Programa executa

Se precisar:
→ PC (outro space)
→ AR (outro data space)

Linkage stack salva estado

Retorno

💀 ONDE ISSO APARECE NA VIDA REAL?

🔥 Dump (IPCS)

Você vê:

  • PSW
  • registers
  • ARs
  • linkage stack

🔥 Abend clássico

👉 S0C4 = erro de addressability


🔥 Performance

  • cross memory custa
  • LPA melhora

🧨 CURIOSIDADES (NÍVEL JEDI)

🤯 1. Um programa pode acessar vários universos ao mesmo tempo


🔥 2. Memória é totalmente virtual


💀 3. Um erro de ponteiro quebra tudo (S0C4)


🧠 4. O sistema controla TUDO via tabelas


🎯 RESUMO FINAL

✔ Addressability = acesso controlado

✔ Address space = isolamento

✔ Cross memory = comunicação

✔ PC = chamada entre espaços

✔ AR = acesso avançado

✔ Linkage stack = estado


💥 FRASE FINAL

“No mainframe, memória não é um lugar… é um privilégio concedido pelo sistema.”

 

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.