Proyectos

Seis proyectos más un bono. Los proyectos en C (P0, P1, P4) vienen de ostep-projects (University of Wisconsin–Madison). Los proyectos de kernel se hacen sobre xv6-riscv: P2 es un proyecto propio del curso y P3, P5 y el bono son laboratorios de MIT 6.1810. Las fechas oficiales están en el calendario del SYLLABUS.

# Proyecto Enunciado Dónde Semanas
P0 Utilidades Unix initial-utilities C en Linux 1 → 3
P1 Shell wish processes-shell C en Linux 3 → 6
P2 Planificador por lotería Enunciado del curso xv6-riscv 5 → 8
P3 Tablas de páginas Lab pgtbl xv6-riscv 8 → 10
P4 Compresión en paralelo concurrency-pzip C + hilos 10 → 13
P5 Archivos grandes y enlaces simbólicos Lab fs xv6-riscv 13 → 16
Bono fork con copy-on-write Lab cow xv6-riscv 11 → 16

Alternativas

Si en algún dictado conviene cambiar algún proyecto, estos encajan en el mismo lugar del calendario:

En lugar de Alternativa Comentario
P0 initial-reverse Más corto, un solo programa.
P4 concurrency-webserver Pool de hilos + productor/consumidor; más trabajo de red.
P4 concurrency-mapreduce Más exigente; bueno para grupos avanzados.
P3 Lab traps del MIT Traps, backtrace y alarmas de usuario en xv6-riscv.
P5 Lab mmap del MIT Más largo; une memoria virtual y sistema de archivos.
Bono Lab lock del MIT Reducir la contención de locks en el kernel.

Reglas de entrega

  • Se entrega en la semana indicada en el calendario, por el medio que indique el docente.
  • El código debe compilar sin warnings dentro del contenedor del curso (gcc -Wall -Werror en los proyectos en C; el Makefile de xv6 ya usa -Werror).
  • Incluir un README.md corto: integrantes, qué funciona, qué no, y decisiones de diseño.
  • Los tests públicos se corren con test-*.sh (P0, P1, P4 y P2) o make grade (P3, P5 y bono). Además habrá tests privados.

Criterios de revisión

  • Tests públicos.
  • Tests privados.
  • Calidad del código: claridad, manejo de errores, sin fugas de memoria.
  • README y explicación del diseño.

En los proyectos en xv6 puede haber una defensa oral breve durante el laboratorio.