Extensão do Motor de Execução para Problemas Interativos, Sandbox SQL e Isolamento Determinístico de Desempenho

Implementação de Interactive Run, Environment Setup Run (SQL) e estudo de determinismo com runguard, isolate, nsjail e cgroups v2

[object Object]
Feedback Formativo
Sem CEP
Data de Publicação

14/11/2026

Data de Modificação

14/11/2026

Código: TCC 04 · Trilha: Trilha 1: Sistemas e Juízes · Status: Disponível · Modalidade: Sistema / Sistemas Operacionais + Benchmark · Perfil: Individual · Complexidade: Alta · Regime Ético: Sem CEP (Computacional)

1. Contexto e Problema

O baseline WOKDEX opera apenas com execução padrão (stdin -> stdout) e scripts básicos de comparação. Isso impede seu uso em conteúdos essenciais de Engenharia de Computação — como Banco de Dados/SQL via Environment Setup Run e Algoritmos Interativos via Interactive Run — e compromete a confiabilidade dos cenários PERFORMANCE: em ambientes virtualizados ou compartilhados, variações de CPU (noisy neighbors) causam oscilação no tempo de parede (wall-clock), gerando falsos positivos de TLE ou instabilidade na modulação HMD.

Nos materiais arquivados da tese (cap04-implementacao-detalhada.tex), havia 6 modelos de Run Scripts e Compare Scripts avançados que ficaram fora do baseline congelado.

2. O que será feito (Objetivos Técnicos e Escopo)

  1. Investigar mecanismos modernos de sandboxing em Linux (runguard do DOMjudge, isolate, nsjail, cgroups v2 e contadores de hardware perf / instruções executadas) para reduzir a variância de medição em cenários PERFORMANCE;
  2. Implementar suporte no motor WOKDEX para ao menos dois novos Run Scripts arquivados em cap04-implementacao-detalhada.tex: Environment Setup Run (instância efêmera de SQLite/PostgreSQL para exercícios de SQL com cenários de erro conceitual de consultas) e Interactive Run (comunicação bidirecional via pipes com programa interactor);
  3. Implementar e validar Compare Scripts pedagógicos (tolerância de ponto flutuante, normalização de prompts interativos para CS1 e geração estruturada de judgement.txt);
  4. Avaliar determinismo (desvio padrão de tempo/instruções sob carga concorrente), sobrecarga de isolamento e taxa de detecção de falhas em suíte controlada.

3. Perguntas para você refletir

Se você se identifica com as questões abaixo, este tema pode ser uma boa escolha:

  • Por que medir “tempo de parede” (wall-clock) falha em ambientes multi-tenant ou conteinerizados, e até que ponto cgroups v2 ou contagem de instruções mitigam essa variância?
  • Como orquestrar comunicação bidirecional segura via pipes entre submissão e interactor evitando deadlocks e vazamento de recursos?
  • Como estruturar cenários MISCONCEPTION específicos para consultas SQL (ex.: ausência de GROUP BY, JOIN cartesiano acidental)?

4. Divisão Sugerida (TCC 1 e TCC 2)

  • TCC 1: Estudo comparativo de sandboxes (runguard, isolate, nsjail, cgroups v2), especificação dos Run/Compare Scripts e protocolo de experimento de determinismo.
  • TCC 2: Implementação dos executores/comparadores em ambiente Linux isolado e execução dos benchmarks de variância sob estresse de CPU/memória.

5. Entregáveis e Métricas de Avaliação

6. Pré-requisitos e Tecnologias Sugeridas

  • Base necessária: forte base em Linux, Sistemas Operacionais (processos, pipes, namespaces, cgroups), C/C++/Python e Banco de Dados SQL.
  • Tecnologias e conceitos envolvidos: runguard, isolate, nsjail, cgroups v2, perf, SQLite/PostgreSQL efêmero, testes de estresse.

7. Origem e Ponto de Partida

  • Origem na pesquisa WOKDEX:
    • apendices/arquivo-editorial/cap04-implementacao-detalhada.tex (6 Run Scripts: Interactive Run, Environment Setup Run, Chained Run e Compare Scripts);
    • cap05-implementacao.tex (JudgeHost / runguard / cgroups);
    • apendices/docs/wok-format/RUN_SCRIPTS.pt.md e COMPARE_SCRIPTS.pt.md.
  • Consulte também o guia de Metodologia e Ética.

8. Como demonstrar interesse

Antes de agendarmos uma conversa, prepare respostas curtas para:

  1. Por que esse tema chamou sua atenção?
  2. Qual frente você domina ou quer aprofundar mais: sandboxing/determinismo em Linux ou executores SQL/interativos?
  3. Qual sua disponibilidade semanal estimada para o TCC?
De volta ao topo