Modalidad: Individual Entorno de trabajo: AWS Ubuntu ARM64 + GitHub Classroom Lenguaje: ARM64 Assembly (GNU Assembler) + Bash + GNU Make
Los sistemas modernos de cómputo en la nube generan continuamente registros (logs) que permiten monitorear el estado de servicios, detectar fallas y activar alertas ante eventos críticos.
En esta práctica se desarrollará un módulo simplificado de análisis de logs, implementado en ARM64 Assembly, inspirado en tareas reales de monitoreo utilizadas en sistemas cloud, observabilidad y administración de infraestructura.
El programa procesará códigos de estado HTTP suministrados mediante entrada estándar (stdin):
cat logs.txt | ./analyzerDiseñar e implementar, en lenguaje ensamblador ARM64, una solución para procesar registros de eventos y detectar condiciones definidas según la variante asignada.
El estudiante aplicará:
- programación en ARM64 bajo Linux
- manejo de registros
- direccionamiento y acceso a memoria
- instrucciones de comparación
- estructuras iterativas en ensamblador
- saltos condicionales
- uso de syscalls Linux
- compilación con GNU Make
- control de versiones con GitHub Classroom
Estos temas se alinean con contenidos clásicos de flujo de control, herramientas GNU, manejo de datos y convenciones de programación en ensamblador.
Se entregará un repositorio preconfigurado que contiene:
- plantilla base en ARM64
- archivo
Makefile - script Bash de ejecución
- archivo de datos (
logs.txt) - pruebas iniciales
- secciones marcadas con
TODO
El estudiante deberá completar la lógica correspondiente.
Contabilizar:
- respuestas exitosas (2xx)
- errores del cliente (4xx)
- errores del servidor (5xx)
Determinar el código de estado más frecuente.
Detectar el primer evento crítico (503).
Detectar tres errores consecutivos.
Calcular índice de salud:
Health Score = 100 - (errores × 10)
makecat logs.txt | ./analyzerCada estudiante deberá entregar en su repositorio:
- archivo fuente ARM64 funcional
- solución implementada
- README explicando diseño y lógica utilizada
- evidencia de ejecución
- commits realizados en GitHub Classroom
| Criterio | Ponderación |
|---|---|
| Compilación correcta | 20% |
| Correctitud de la solución | 35% |
| Uso adecuado de ARM64 | 25% |
| Documentación y comentarios | 10% |
| Evidencia de pruebas | 10% |
No está permitido:
- resolver la lógica en C
- resolver la lógica en Python
- modificar la variante asignada
- omitir el uso de ARM64 Assembly
Comprender cómo un problema de procesamiento de datos es implementado a nivel máquina mediante instrucciones ARM64.
Aunque este problema puede resolverse fácilmente en lenguajes de alto nivel, el propósito de la práctica es implementar cómo lo resolvería la arquitectura, no únicamente obtener el resultado.