OS Kernel Enhancements in xv6

A series of structured enhancements to the MIT xv6 teaching operating system to explore low‑level systems design trade‑offs and performance implications.

  • Virtual Memory: Added demand paging scaffold & page access accounting; experimented with copy‑on‑write fork semantics to reduce process creation overhead.
  • Scheduling: Prototyped multi‑level feedback queue (MLFQ) variant with aging + quantum adaptation; benchmarked CPU utilization & latency under mixed I/O/CPU workloads.
  • Signals: Implemented POSIX‑like signal delivery (termination, suspension, custom handlers) via a new system call layer.
  • Diagnostics: Kernel tracing hooks + minimal userspace profiler for syscall distribution.

Results: Reduced average fork() cost in microbenchmarks; improved responsiveness for interactive tasks under contention; gained practical insight into MMU interactions & scheduler fairness policies.

Tech: C, x86, QEMU, GNU toolchain.

Testing used deterministic workloads (spawn/mem pressure benchmarks) instrumented with timing counters to quantify gains.

View on GitHub →