Portfolio

software

Turnstile

schedsim: a C++ CPU-scheduling simulation framework (RR/priority/MLFQ/CFS-lite) validated against real Linux 6.12.25 kernel benchmark data from a hand-patched round-robin scheduler.

completedLinux kernel (C)gccmakesysbenchstress-ngperfC++20CMakeCatch2

896.4 ms vs 1119.7 ms (fair scheduler)

perf sched latency (total, lower is better) — Round-Robin (real kernel)

15.37 MiB/s vs 11.34 MiB/s (fair scheduler)

sysbench fileio read throughput — Round-Robin (real kernel)

93.04 vs 76.82 (Round-Robin)

sysbench CPU events/s — fair scheduler (real kernel, higher is better)

133/133 assertions (24 test cases)

schedsim unit tests passing (Catch2)

1 concordant, 1 discordant, 2 not-comparable (see sim/README.md)

schedsim vs. real kernel: concordant/discordant/not-comparable findings

within 0.2% (3360 simulated vs. 3356 theoretical)

CfsLite proportional-share accuracy vs. theoretical calculation (nice-mix workload)

Started with a real Linux kernel (6.12.25, Kali Rolling 2025.2) recompiled with a hand-patched round-robin scheduler in kernel/sched/fair.c, benchmarked against the unmodified kernel using sysbench, stress-ng, and perf -- real, one-off, unrepeatable work, preserved unmodified under archive/original/ and validation/kernel-6.12.25/. Added schedsim: a reusable discrete-event C++ simulation framework implementing round-robin, fixed-priority (with aging), OSTEP-style MLFQ (with the exact allotment-based anti-gaming rule), and a classic-CFS approximation (Linux's real nice-to-weight table), whose scheduler-level findings (fairness, scheduling delay) are checked against the real kernel measurement using an explicit three-tier methodology (direct / qualitative-direction-only / not-comparable) -- including one honestly-reported discordant finding, not a forced match. Corrects a factual note from the original report: a 6.12 kernel's fair scheduling class is EEVDF-era, not classic CFS.