// the find
CSE-OperatingSystems/mini-bg-scheduler
A multi-threaded background job scheduler in C implementing FIFO, SJF, and Priority policies.
A university lab assignment implementing FIFO, SJF, Priority, MLQ, and aging-based job scheduling in C with pthreads. Built by three students at HCMUT for an OS course. Not a production library — it's a teaching artifact with generated workloads and a benchmark harness.
The aging implementation is a nice touch for a lab project — it actually addresses starvation rather than just describing it. The workload generator is separate from the scheduler, which means you can stress-test with different input shapes without hardcoding. The Makefile includes a `run_all` target that exercises every policy automatically, so reproducing the benchmark results is one command. Header files are split cleanly by concern (dispatcher, job, scheduler, worker), which is more disciplined than most student C projects.
Zero stars, zero forks, and a last push in May 2026 — this is a completed assignment, not an active project. The job runtimes are simulated with `sleep()` or similar, so the scheduling metrics measure synchronization overhead more than anything real. There's no signal handling or graceful shutdown — kill the process and you risk corrupted state. The MLQ tier classification appears to be static at job submission, so a long-running 'background' job has no path to promotion other than the aging mechanism, which is itself a separate policy rather than an always-on safety net.