finds.dev← search

// the find

CSE-OperatingSystems/mini-bg-scheduler

C · updated May 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →