2026-03-24 13:40:16 +00:00

5.3 KiB

< Voltar | Sumário | Adiante >

Eventos e Interrupções

1. Visão Geral

PROMETEU distingue claramente execução normal, eventos e interrupções.

Nada ocorre “fora do tempo”.

Nada interrompe o sistema sem custo.

Nada acontece sem um ponto bem definido no ciclo de execução.

Eventos são sinais. Interrupções são decisões da máquina.

Este capítulo define:

  • o que PROMETEU considera um evento
  • como interrupções são modeladas
  • quando elas podem ocorrer
  • como se relacionam com ciclos, CAP e determinismo

2. Filosofia de Eventos em PROMETEU

PROMETEU não utiliza callbacks assíncronos invisíveis.

Todo evento:

  • é registrado
  • é entregue em momento previsível
  • é tratado dentro do loop principal

Esse modelo evita:

  • concorrência implícita
  • race conditions ocultas
  • efeitos colaterais não determinísticos

PROMETEU favorece:

controle explícito sobre reatividade.


3. Eventos

3.1 Definição

Um evento em PROMETEU é um sinal lógico gerado pelo sistema ou pelo programa, que indica que algo ocorreu.

Exemplos de eventos:

  • fim de frame
  • timer expirado
  • troca de estado do sistema
  • erro de execução

Eventos não executam código automaticamente.

Eles apenas informam.


3.2 Fila de Eventos

PROMETEU mantém uma fila de eventos:

  • eventos são enfileirados
  • a fila é processada em ordem
  • o processamento ocorre em pontos definidos do frame

Eventos:

  • não interrompem execução arbitrariamente
  • não executam fora do loop

4. Interrupções

4.1 Definição

Uma interrupção é um evento especial, tratado pelo sistema como prioritário, que pode:

  • alterar o fluxo normal de execução
  • executar código específico do sistema
  • impactar ciclos e orçamento

Interrupções são raras e explícitas.


4.2 O que NÃO é uma interrupção

Em PROMETEU, não são interrupções:

  • input de botão
  • colisões
  • timers comuns
  • lógica de jogo

Esses são tratados como estado ou eventos normais.


5. Tipos de Interrupções em PROMETEU

PROMETEU define um conjunto pequeno e bem controlado de interrupções.

5.1 Interrupção de Frame (VBlank Conceitual)

O final de cada frame gera uma interrupção lógica de sincronização, responsável por:

  • swap de framebuffer
  • commit de áudio
  • sincronização de estado

Essa interrupção:

  • ocorre no SYNC
  • tem custo fixo
  • não executa código do usuário

5.2 Interrupção de Sistema

Gerada por condições excepcionais:

  • erro fatal de VM
  • violação de memória
  • instrução inválida

Resultado:

  • execução é interrompida
  • estado da VM é preservado
  • relatório detalhado é gerado

5.3 Interrupções Temporizadas (Timers)

PROMETEU pode oferecer timers do sistema, modelados como:

  • contadores baseados em frames
  • sinais gerados ao atingir zero

Timers:

  • não disparam código automaticamente
  • geram eventos consultáveis

Exemplo conceitual:

if (timer.expired(T1)) {
// tratar evento
}

6. Relação entre Eventos, Interrupções e o Loop

O fluxo completo pode ser representado assim:

FRAME N
──────────────
SAMPLEINPUT
PROCESS EVENTS
UPDATE
DRAW
AUDIO
INTERRUPT: VBLANK
SYNC
──────────────

Importante:

  • eventos são processados antes da lógica principal
  • interrupções ocorrem apenas em pontos seguros
  • nenhuma interrupção ocorre “no meio” de uma instrução

7. Custos e Orçamento

Eventos e interrupções:

  • consomem ciclos
  • participam do CAP
  • aparecem na certificação

Exemplo de relatório:

Frame 18231:
Event processing:120cycles
VBlank interrupt:80cycles

Nada é gratuito.


8. Determinismo e Reprodutibilidade

PROMETEU garante:

  • mesma sequência de eventos → mesmo comportamento
  • interrupções sempre no mesmo ponto do frame
  • timers baseados em frame count, não em tempo real

Isso permite:

  • replays confiáveis
  • debugging preciso
  • certificação justa

9. Boas Práticas

PROMETEU incentiva:

  • tratar eventos como dados
  • consultar eventos explicitamente
  • evitar lógica pesada em handlers
  • usar timers em vez de polling excessivo

PROMETEU desencoraja:

  • simular callbacks assíncronos
  • depender de ordem implícita
  • usar eventos como “atalho” para lógica complexa

10. Relação com Microcontroladores

O modelo reflete MCUs reais:

MCU PROMETEU
ISR Interrupção explícita
Loop principal Loop PROMETEU
Flags Eventos
Timers Timers por frame

Mas sem:

  • concorrência real
  • interrupções imprevisíveis

PROMETEU ensina o conceito, não o caos.


11. Implicações Pedagógicas

Este modelo permite ensinar:

  • diferença entre evento e interrupção
  • sincronização segura
  • controle de fluxo em sistemas reativos
  • impacto de decisões temporais

Tudo com ordem, clareza e mensuração.


12. Resumo

  • eventos informam, não executam
  • interrupções são raras e controladas
  • nenhuma execução ocorre fora do loop
  • custos são explícitos
  • comportamento é determinístico

< Voltar | Sumário | Adiante >