Operating Systems course project, Turin, Italy. January to February 2026.
Key contributions
- Modified core Linux 5.15 scheduler sources (fair.c, core.c, sched.h) to implement lottery scheduling, adding new system calls for user-space ticket management
- Designed a ticket-transfer mechanism to mitigate priority inversion, along with parent-child ticket sharing, a runtime-aging-based SJF approximation, and dynamic priority boosting for I/O-bound tasks
- Built a QEMU-based kernel test environment for quantitative validation; measured CPU allocation closely matched the theoretical lottery proportions