Overview
What this challenge is about.
Fork the xv6-riscv repository and implement MLFQ in proc.c with 3 priority queues, per-queue time slices (10ms / 20ms / 40ms), priority demotion on slice exhaustion, and a 100ms priority boost to prevent starvation. Add a sysinfo-style system call exposing per-process queue + runtime stats. Write 3 benchmarks: CPU-bound vs I/O-bound mix, interactive-typing simulation, and starvation regression. Deliver the git patch, benchmark scripts, and a 6-page report covering design choices, results, and a section honestly listing what your implementation does NOT handle.
The Brief
What you'll do, and what you'll demonstrate.
Implement and benchmark a Multi-Level Feedback Queue scheduler in the xv6 teaching kernel so students see real interactivity tradeoffs.
Earning criteria — what you'll demonstrate
- Implement preemptive, priority-based scheduling in a real kernel
- Reason about CPU-bound vs I/O-bound workload tradeoffs
- Use kernel data structures (proc table, run queues) safely under context switches
- Design benchmarks that isolate the variable you're actually measuring
Program Fit
Where this fits in your program.
Sharpens the same skills your degree expects you to demonstrate.
Skills
Skills you'll demonstrate.
Each one shows up on your verified credential.
Careers
Roles this prepares you for.
Real titles. Real skill bridges. Pick the one closest to your trajectory.
Career mappings coming soon.