| Bellacosa Mainframe explorando address spaces & tasks |
☕ O Segredo Mais Importante do z/OS Que Quase Ninguém Explica: Address Spaces & Tasks (O “Multiverso” do Mainframe)
🧙♂️ Padawan, aproxime-se.
Se você entender profundamente Address Spaces e Tasks, você atravessa a porta de entrada do mundo Sysprog. Sem isso, z/OS parece magia. Com isso, vira engenharia.
Pegue seu café. Vamos abrir o capô do mainframe. ☕
🌌 Capítulo 1 — O z/OS Não Executa Programas. Executa Universos.
Em um PC comum você pensa:
“Vou rodar um programa.”
No z/OS, o raciocínio é outro:
⭐ “Vou criar um ambiente isolado onde programas poderão existir.”
Esse ambiente é o:
🏢 Address Space
Ele contém:
- Memória virtual privada
- Identidade de segurança
- Recursos
- Estruturas de controle
- Tasks (unidades de execução)
- Programas rodando
👉 Tudo roda dentro de um address space.
Exceto funções internas do kernel — e isso é assunto para um Jedi Master.
🔎 Como ver o “multiverso” ao vivo
Abra o SDSF:
SDSF → DA
Cada linha é um universo independente:
- MASTER
- JES2
- TCPIP
- IBMUSER
- CICS
- Jobs batch
- Processos UNIX
Um sistema real pode ter centenas.
🥚 Easter Egg #1:
O MASTER é sempre ASID 1.
Se ele cair… você tem problemas maiores do que um dump.
🔒 Capítulo 2 — O Isolamento Que Salvou o Mainframe
Cada address space tem memória privada.
Um programa em A NÃO pode acessar a memória de B.
Isso evita:
- Corrupção entre aplicações
- Vazamento de dados
- Quedas sistêmicas
- Caos total
🧠 Mas há um truque genial…
Cada espaço acha que possui toda a memória.
Sim. Toda.
🧭 Virtual Memory — A Ilusão Controlada
Dois programas podem usar o mesmo endereço:
x'2795'
E acessar memórias físicas diferentes.
Isso ocorre graças à:
⭐ DAT — Dynamic Address Translation
Virtual → Page Tables → Real Memory
👉 Daí o nome Address Space.
Cada universo tem seus próprios endereços.
🤝 Compartilhamento? Só com permissão
Quando necessário:
- Common Storage (CSA/ECSA)
- Cross-memory services
- Program Call
- Serviços autorizados
Exemplo clássico:
CICS falando com DB2.
🧵 Capítulo 3 — Dentro do Universo: Tasks
Um address space sozinho não executa nada.
Quem executa são:
🧵 Tasks (TCBs ou SRBs)
⭐ Task = menor unidade despachável
O dispatcher agenda tasks nos CPUs.
⚡ Paralelismo real
Se houver 10 CPUs → até 10 tasks executando simultaneamente.
Mas…
🥚 Easter Egg #2:
A maioria das tasks está esperando algo — não executando.
Porque sistemas corporativos são I/O-bound.
⏳ Estados típicos
🟢 Running
No CPU agora
🟡 Ready
Quer CPU, mas aguarda
🔴 Waiting
Esperando evento:
- I/O
- Lock
- Resposta externa
- Timer
- Memória
📦 Uma task pode executar vários programas
Mas:
❗ Apenas um por vez
Exemplo COBOL clássico:
MAIN
CALL VALIDATE
CALL CALCULATE
CALL UPDATE
CALL PRINT
STOP RUN
Tudo na mesma task.
⚙️ Quer paralelismo? Crie novas tasks.
ATTACH → nova TCB
Exemplo batch paralelo:
Task A → Arquivo1
Task B → Arquivo2
Task C → Arquivo3
🐧 Padawans vindos do UNIX
Boa analogia:
| z/OS | UNIX |
|---|---|
| Address Space | Process |
| Task (TCB) | Thread |
E sim:
⭐ Cada thread USS é uma task.
👑 Capítulo 4 — A Task Raiz: RCT
Quando um address space nasce:
- Cria-se a Region Control Task (RCT)
- Outras tasks são iniciadas
- Programas executam nelas
Hierarquia:
Address Space
└── RCT
├── Task A
└── Task B
🥚 Easter Egg #3:
Se a RCT terminar… o address space inteiro termina.
Sem órfãos. Sem bagunça.
⚡ Capítulo 5 — O Primo Ninja: SRB
Existem dois tipos de tasks:
🧵 TCB — normal
Aplicações, batch, TSO, etc.
⚡ SRB — especial
Serviços do sistema.
Diferenças fundamentais:
| TCB | SRB |
|---|---|
| Pode esperar | Geralmente não |
| Longo prazo | Curto |
| Local | Pode ser cross-memory |
| Aplicações | Sistema |
SRBs são criados via:
SCHEDULE
Não automaticamente.
🧠 Capítulo 6 — Memória Compartilhada entre Tasks
Dentro do mesmo address space:
👉 Tasks compartilham memória.
Isso permite cooperação rápida.
Mas também risco.
Programas autorizados podem proteger áreas — aplicações comuns raramente fazem isso.
🏛️ Capítulo 7 — Como Address Spaces Nascem
Criados quando surge um workload independente:
- IPL do sistema
- START de serviço
- Logon TSO
- Job batch selecionado pelo JES
- Processo UNIX iniciado
❌ NÃO quando:
- Um programa começa
- Um comando TSO é digitado
- Uma subrotina é chamada
🥚 Easter Egg #4:
Criar address space é caro. z/OS evita fazer isso sem necessidade.
🧾 Capítulo 8 — ASCB, ASID e Jobname
Cada address space é registrado por um:
⭐ ASCB — Address Space Control Block
Contém:
- ASID (ID interno)
- Jobname (nome visível)
- Ponteiros para TCBs
- Estado
- Dados de gerenciamento
Operador vê:
👉 JOBNAME
Sistema usa:
👉 ASID
👨💼 Capítulo 9 — Administração na Vida Real
Operadores controlam address spaces, não tasks.
Comandos típicos:
S TCPIP
P CICS
C JOB123
F JES2,QUIESCE
Tasks só entram em cena quando algo dá errado.
💥 Capítulo 10 — Por Que Isso Faz o Mainframe Ser o Mainframe
Essa arquitetura permite:
✔ Escalabilidade massiva
✔ Isolamento forte
✔ Alta disponibilidade
✔ Throughput absurdo
✔ Recuperação controlada
✔ Multi-tenant seguro
🏆 O Insight Jedi
🏢 Address Space = Ambiente
🧵 Task = Execução
💻 Program = Código executado
Ou, no idioma Bellacosa:
“O z/OS não roda programas.
Ele mantém universos onde programas vivem.”
☕ Missão do Padawan
Se você entendeu este artigo, já ultrapassou 80% dos iniciantes em mainframe.
O próximo passo é dominar:
- Dispatching e WLM
- Storage Manager
- JES internals
- Subsystems architecture
- Dump analysis
💬 Último conselho
🧙♂️ “Quem entende Address Spaces e Tasks não apenas usa o z/OS… começa a pensar como ele.”
Sem comentários:
Enviar um comentário