| Bellacosa Mainframe explica o CALL em COBOL Parte VII |
☕💥 A Jornada do Padawan COBOL – Parte 7
Desvendando o Universo dos CALLs no Mainframe
BALR, BASR, BASSM, SVC, PC, TCB, SRB, Cross Memory, zIIP e os Segredos dos Sysprogs Jedi do IBM Z
Ou como descobrir que, por trás de um simples CALL COBOL, existe um universo de instruções Assembly capaz de processar bilhões de transações por dia
Por Vagner Bellacosa – Bellacosa Mainframe
O dia em que o Padawan descobre que COBOL é apenas uma ilusão confortável
Até agora descobrimos:
✔ Static CALL
✔ Dynamic CALL
✔ Binder
✔ LE
✔ CICS
✔ APIs
✔ MQ
✔ REST
Mas existe algo que poucos desenvolvedores COBOL enxergam.
Quando você escreve:
CALL 'SUBPGM'
O hardware IBM Z não entende COBOL.
Ele entende.
Instruções Assembly
E é aqui que começa a verdadeira aventura.
O que existe por trás do CALL
Imagine:
Programa COBOL
↓
Compilador
↓
LE
↓
Assembler
↓
CPU z16
O processador executa algo semelhante a:
BALR R14,R15
ou
BASR R14,R15
BALR
Branch and Link Register
O avô do CALL.
Exemplo
BALR 14,15
O que faz?
Salva endereço retorno.
Desvia execução.
Visualmente
MAIN
00010000
BALR
↓
SUBPGM
00025000
EXECUTA
RETORNA
BASR
Mais moderno.
Branch and Save Register
Mesmo conceito.
Melhor otimização.
BASSM
Território Jedi.
Poucos entram.
Branch And Save And Set Mode
Troca modo.
24 bits.
31 bits.
64 bits.
Exemplo
BASSM R14,R15
Por que existe?
Compatibilidade.
Programas antigos.
AMODE mistos.
O conceito de Supervisor
Padawan acredita.
Programa faz tudo.
IBM sorri.
Usuário
não faz quase nada.
Sistema faz.
SVC
Supervisor Call
Programa pede ajuda.
Exemplo
SVC 99
Sistema operacional assume.
Executa.
Retorna.
Exemplos famosos
SVC 13
ABEND
SVC 99
Dynamic Allocation
SVC 19
OPEN
O Program Call
PC Instruction
Mais rápido.
Mais seguro.
Cross Memory.
Muito usado por:
RACF
DB2
JES2
SAF
Cross Memory
Território dos Sysprogs.
Endereço A
fala com
Endereço B
Visualmente
USER SPACE
↓
PC
↓
DB2 SPACE
↓
RETORNA
TCB
Task Control Block
Representa.
Uma tarefa.
CICS
Muitos TCBs.
Batch
Normalmente um.
SRB
Service Request Block
Mais leve.
Mais rápido.
Menos overhead.
Muito usado.
RMF
SMF
DB2
TCB versus SRB
| Característica | TCB | SRB |
|---|---|---|
| Peso | Médio | Leve |
| CPU | Normal | Melhor |
| WAIT | Sim | Não |
| Performance | Boa | Excelente |
zIIP
O sonho do financeiro.
Specialty Engine
Pode executar:
XML
Java
MQ
DRDA
REST
Analytics
CPU geral agradece.
HiperDispatch
Poucos conhecem.
IBM adora.
Mantém afinidade.
CPU cache.
Melhora latência.
LE Internals
Language Environment.
Controla.
Heap
Stack
Condition Handler
Exceptions
Threads
Storage
O Condition Handler
Exemplo
ON EXCEPTION
LE intercepta.
Processa.
Retorna.
Como nasce um S0C4
Programa
↓
CALL
↓
LE
↓
Assembler
↓
PSW
↓
Address Exception
↓
ABEND
O PSW
Program Status Word
Coração do processador.
Guarda
Modo
Estado
Máscaras
Endereço
IPCS mostra.
Registradores
IBM Z possui
16 registradores
R14
Retorno
R15
Entrada
R13
Save Area
Veteranos decoram.
Save Area
Mágica antiga.
Assembler
STM 14,12,12(13)
Salva contexto.
Retorna depois.
Porque COBOL parece mágico
O compilador faz.
Tudo isso.
Automaticamente.
Padawan escreve
CALL 'PAGTO'
IBM executa.
Milhares.
De instruções.
Dicas Bellacosa
Dica 1
Nunca ignore PSW.
Dica 2
Aprenda registradores.
Dica 3
Entenda LE.
Dica 4
Conheça SVC99.
Dica 5
Estude TCB.
Dica 6
SRB é ouro.
Dica 7
zIIP economiza dinheiro.
Easter Egg Mainframe
Existe um grupo de profissionais.
Que olha isto.
BALR 14,15
E imediatamente sabe.
AMODE.
RMODE.
PSW.
TCB.
Offset.
Storage Key.
Cross Memory.
PC Bit.
SRB.
São conhecidos pelos desenvolvedores COBOL como:
Os Sysprogs Jedi
Checklist Jedi da Parte 7
✅ Entender BALR
✅ Entender BASR
✅ Conhecer BASSM
✅ Saber SVC99
✅ Estudar LE
✅ Aprender TCB
✅ Aprender SRB
✅ Conhecer Cross Memory
✅ Entender PSW
✅ Conhecer IPCS
✅ Aproveitar zIIP
✅ Ler Assembly sem medo
A Filosofia Jedi do CALL – Parte 7
O Padawan iniciante acredita:
COBOL chama COBOL.
O desenvolvedor intermediário pensa:
COBOL usa LE.
O especialista entende:
COBOL é uma linguagem elegante construída sobre décadas de engenharia do z/Architecture, Assembly, supervisão do z/OS e mecanismos extremamente otimizados de gerenciamento de contexto.
E o Mestre Mainframe compreende algo ainda mais profundo:
Um simples
CALL 'SUBPGM'é apenas a ponta visível de uma cadeia tecnológica refinada ao longo de mais de cinquenta anos, permitindo que um IBM Z execute bilhões de instruções por segundo com níveis de disponibilidade, segurança e eficiência que ainda hoje servem de referência para toda a indústria.
Próxima aventura do Padawan COBOL – Parte 8
"As Últimas Runas do Mainframe: DLLs Avançadas, Metal C, Callable Services, SAF, RACF, PC-Bit, APF, Dataspaces, Hiperspaces, Coupling Facility e os segredos que poucos profissionais IBM Z dominam."