Translate

Mostrar mensagens com a etiqueta arquitetura IBM Z. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta arquitetura IBM Z. Mostrar todas as mensagens

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, 6 de fevereiro de 2026

🔥 SE O z/OS NÃO SOBE… NADA EXISTE 💀O guia proibido do IPL que todo dev COBOL deveria entender (mas quase ninguém entende)

 

Bellacosa Mainframe fala sobre a iniacialização do ambiente operacional

🔥 SE O z/OS NÃO SOBE… NADA EXISTE 💀

O guia proibido do IPL que todo dev COBOL deveria entender (mas quase ninguém entende)

Você escreve COBOL… compila… roda…
👉 e acha que o sistema “tá lá pronto”.

Errado.

Antes do seu programa existir, acontece um ritual quase místico chamado:

IPL — Initial Program Load

E aqui vai a verdade estilo Bellacosa:

💥 “Se o IPL falhar… o mainframe inteiro simplesmente NÃO EXISTE.”

Hoje você vai entender isso como um padawan do mainframe, mas com visão de Jedi 👊🔥


🧠 O QUE É O IPL (O NASCIMENTO DO SISTEMA)

O IPL é o momento em que:

  • o hardware ganha vida
  • o z/OS é carregado
  • os primeiros address spaces são criados

👉 Segundo o material, ele:

  • carrega o sistema do disco
  • inicializa o kernel
  • cria o ambiente completo

🔥 Tradução Bellacosa

“IPL é o Big Bang do z/OS.”


🧱 OS DATASETS QUE FAZEM O MILAGRE ACONTECER

Sem eles… não tem sistema. Simples assim.


🔥 SYS1.NUCLEUS — o coração

Contém:

  • NIP (Nucleus Initialization Program)
  • RIM (Resource Initialization)
  • módulos básicos do kernel

👉 É literalmente o “cérebro inicial”.


🔥 SYS1.LPALIB — a memória compartilhada

  • módulos do sistema
  • SVCs
  • rotinas críticas

👉 Vai parar dentro da LPA (já já explico 👀)


🔥 SYS1.LINKLIB — o arsenal

  • programas do sistema
  • inclui o Master JCL

👉 Aqui começa a execução de verdade.


🔥 SYS1.PARMLIB — o cérebro de configuração

Define:

  • como o sistema vai funcionar
  • performance
  • segurança

👉 É o /etc do z/OS… só que turbinado.


🔥 SYS1.PROCLIB — automação

  • procedures (START, etc.)
  • inicialização de subsistemas

🔥 Outros importantes

  • PAGE DATASETS → memória virtual
  • SMF → estatísticas
  • DUMP → análise de erro

💡 Insight de ouro

“z/OS não sobe com código… sobe com DATASETS.”


⚙️ I/O CONFIG — O MAPA DO MUNDO

Antes do sistema usar qualquer coisa, ele precisa saber:

  • quais devices existem
  • onde estão
  • como acessar

🔹 Quem faz isso?

👉 HCD + IOCDS + IODF


🔥 Durante o IPL:

  • cada device gera um UCB (Unit Control Block)
  • o sistema passa a reconhecer discos, fitas, etc.

🧨 Easter Egg

Se o device não está no IODF… ele NÃO EXISTE pro sistema.


🧠 PARMLIB — ONDE VOCÊ DOMINA O SISTEMA

🔹 O que é?

Um conjunto de membros tipo:

  • IEASYSxx
  • LOADxx
  • outros

🔥 Função

Define:

  • memória
  • subsistemas
  • comportamento do sistema

💡 Dica de Jedi

Nunca mexa direto no default:

IEASYS00 → base
IEASYS01 → custom

👉 Se quebrar, você volta.


⚡ LOADXX — O DNA DO IPL

Esse cara decide:

  • qual nucleus usar
  • qual configuração carregar
  • qual PARMLIB seguir

🔹 Estrutura mental

LOADxx

aponta para:
- NUCLEUS
- PARMLIB
- CONFIG

🧨 Curiosidade

Um LOADxx pode subir vários sistemas no sysplex 😳


🚀 NIP — O CONSTRUTOR DO UNIVERSO

🔹 Nucleus Initialization Program

Ele:

  • inicializa memória
  • cria control blocks
  • cria address spaces

🔥 Resultado

transforma hardware em z/OS funcional


🧩 LINK PACK AREA (LPA) — ONDE TUDO FICA PRONTO

🔹 Tipos:

  • FLPA → fixo
  • MLPA → modificado
  • PLPA → paginável

💡 Tradução

LPA = “biblioteca carregada na memória para todo mundo usar”


👥 ADDRESS SPACES — O SISTEMA GANHA VIDA

🔥 Primeiro criado:

👉 MASTER (001 👀)


Depois:

  • JES
  • SMF
  • RSM
  • GRS
  • TRACE
  • DUMP

💡 Insight

Tudo nasce no IPL. Nada existia antes.


⚙️ PASSO A PASSO DO IPL (SIMPLIFICADO)

1. Power on
2. CPU lê DASD (SYSRES)
3. Carrega IPL text (IEAIPL00)
4. Carrega NUCLEUS
5. Executa NIP
6. Lê PARMLIB
7. Configura I/O (IODF)
8. Cria address spaces
9. Inicia subsistemas

👉 Boom 💥 sistema vivo


🔧 TUNING (onde os Jedi brilham)

🔥 Onde ajustar:

  • PARMLIB
  • LPA
  • PAGE datasets

💡 Exemplos:

  • mais memória → melhor performance
  • LPA otimizada → menos I/O
  • configuração errada → desastre

💀 TROUBLESHOOTING (quando tudo dá errado)

🔥 Problemas clássicos:

  • dataset não encontrado
  • erro no PARMLIB
  • device inexistente
  • LOADxx incorreto

🧨 Sintoma clássico:

👉 Disabled Wait Code


💡 Tradução

“Deu ruim antes do sistema existir.”


🧨 CURIOSIDADES QUE POUCOS SABEM

🤯 1. O sistema começa praticamente “cego”

Sem PARMLIB → nada funciona


🔥 2. O primeiro address space é 001

Nunca 000 (pegadinha de prova)


💀 3. IPL falha sem log amigável

Você ganha código e reza 😄


🧠 4. Tudo gira em torno de control blocks

Criados desde o início pelo NIP


🎯 RESUMO FINAL (nível padawan → jedi)

✔ IPL = nascimento do sistema

✔ SYS1 datasets = base de tudo

✔ PARMLIB = cérebro

✔ LOADxx = DNA

✔ NIP = construtor

✔ LPA = memória compartilhada

✔ Address spaces = vida


💥 FRASE FINAL

“Você acha que executa programas…
mas primeiro o z/OS precisa nascer — e esse nascimento é uma obra de engenharia absurda.”