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 -Werroren los proyectos en C; elMakefilede xv6 ya usa-Werror). - Incluir un
README.mdcorto: integrantes, qué funciona, qué no, y decisiones de diseño. - Los tests públicos se corren con
test-*.sh(P0, P1, P4 y P2) omake 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.