Sistemas · Bloque II · SYS-L-202 · Laboratorio · EC
Observar jobs, señales, prioridad y /proc
Un contenedor genera un pequeño árbol de workers con comportamientos de señal distintos y carga acotada.
Contenido de la actividad
EC · Contenedor rootless desechable con límite de CPU y PIDs.
Capacidad
Observar el ciclo de vida y elegir señales proporcionales con evidencia.
Enunciado
Sigue el árbol preparado, cambia estados con señales no destructivas primero y documenta qué interfaz demuestra cada transición.
Estado inicial
- Launcher con attempt-id.
- Tres workers ficticios y carga limitada.
- Sin PID namespace compartido ni mounts del host.
Límites del sandbox
- Extrae el paquete fuera del checkout y usa Podman rootless, Docker rootless o Docker Desktop.
- No uses sudo, no montes rutas del host y no retires contenedores ajenos al attempt-id.
- Antes de reset o destroy, comprueba la etiqueta y el identificador exacto creados por el launcher.
Fases de trabajo
1. Preparar
Validar aislamiento.
- Ejecuta preflight.
- Arranca el intento.
- Conserva etiqueta y límites.
./lab preflight
./lab start2. Observar
Construir el árbol real.
- Consulta ps/pstree.
- Lee status y cmdline en /proc.
- Compara jobs cuando proceda.
3. Señalizar
Observar transiciones proporcionadas.
- Predice antes de cada señal.
- Detén y continúa un worker.
- Solicita terminación al worker indicado y verifica.
4. Prioridad y cierre
Interpretar nice y probar reinicio.
- Compara nice sin prometer CPU.
- Reinicia el fixture.
- Destruye solo el intento.
Evidencia que debes conservar
- Árbol con PID/PPID/PGID.
- Timeline de señal, estado esperado y observado.
- Explicación de nice y evidencia de limpieza.
Criterios de aceptación
- El contenedor está limitado y no comparte namespace PID con el host.
- Relaciona al menos dos procesos por PPID y grupo.
- Distingue detener, continuar, solicitar terminación y forzarla.
- Interpreta nice como preferencia de planificación, no como reserva.
- Recrea el estado inicial sin afectar procesos externos.
Decisiones abiertas
- Elegir formato de ps.
- Usar pstree como apoyo, no como única evidencia.
- Seleccionar la señal inicial más proporcionada.
Materiales
- Paquete de laboratorio SYS-L-202Contenedor, launcher y workers sin solución.
- Expediente SYS-L-202Plantilla para árbol y timeline.
Se guarda solo en este navegador. Puedes descargarlo para enviarlo a Codex junto con los materiales que hayas completado.
Sin borrador guardado.
Revisión y reinicio
Revisión: Codex debe comparar la evidencia con estos criterios, señalar primero el supuesto no demostrado y proponer una sola comprobación siguiente. No hay una solución oficial publicada.
Reinicio: El launcher recrea únicamente el contenedor etiquetado con el attempt-id; destroy valida nombre y etiqueta.
Pistas graduadas
Pista 1 · kill envía
- El nombre histórico no describe todos los efectos.
- Observa disposición y resultado de la señal.
Pista 2 · /proc pertenece al namespace
- Compara PID observado dentro y fuera.
- No asumas que todos ven la misma numeración.
Pista 3 · nice es relativo
- No es un porcentaje reservado.
- Interpreta junto con carga y política.