xv6 multi-queue scheduler
Operating-systems coursework
A scheduler for the xv6 teaching kernel that makes runnable queues, CPU allowances, and process transitions explicit.
- Status
- Coursework implementation
- Kind
- AI & systems
- Stack
- C · xv6 · Process scheduling · Concurrency
BUILD NOTES / Coursework implementationxv6 multi-queue scheduler
Project overview · not an interface capture
Operating-systems coursework
C / xv6 / Process schedulingProject overview · not an interface capture
The problem
A process’s scheduling allowance must remain consistent as it runs, sleeps, wakes, or competes with work on another CPU.
What was built
- First, active, and expired queues with linked runnable processes and separate running counts.
- One-tick initial allowances and three-tick active allowances, with active/expired pointer swaps between rounds.
- Process-table locking around queue transitions and timer accounting that retains used allowances across blocking and wakeup.
What I learned
An empty runnable queue is not necessarily an exhausted scheduling round when another CPU is still executing one of its processes.