Skip to content

tectijuana/5miniloganalizer-ispaul19

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Review Assignment Due Date Open in Codespaces

Práctica 1

Implementación de un Mini Cloud Log Analyzer en ARM64

Modalidad: Individual Entorno de trabajo: AWS Ubuntu ARM64 + GitHub Classroom Lenguaje: ARM64 Assembly (GNU Assembler) + Bash + GNU Make


Introducción

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 | ./analyzer

Objetivo general

Diseñar e implementar, en lenguaje ensamblador ARM64, una solución para procesar registros de eventos y detectar condiciones definidas según la variante asignada.


Objetivos específicos

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.


Material proporcionado

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.


Variantes de la práctica

Variante A

Contabilizar:

  • respuestas exitosas (2xx)
  • errores del cliente (4xx)
  • errores del servidor (5xx)

Variante B

Determinar el código de estado más frecuente.


Variante C

Detectar el primer evento crítico (503).


Variante D

Detectar tres errores consecutivos.


Variante E

Calcular índice de salud:

Health Score = 100 - (errores × 10)

Compilación

make

Ejecución

cat logs.txt | ./analyzer

Entregables

Cada 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

Criterios de evaluación

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%

Restricciones

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

Competencia a desarrollar

Comprender cómo un problema de procesamiento de datos es implementado a nivel máquina mediante instrucciones ARM64.


Nota

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.

About

26aldi5pm-5miniloganalizer-tmpLDI-logs1 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Assembly 59.6%
  • Shell 25.4%
  • Makefile 15.0%