Purpose
This section is for scheduling as a systems idea rather than as one chapter inside operating systems. The same questions keep reappearing across CPUs, routers, clusters, storage services, and model-serving systems:
- which job or flow goes next
- what objective matters most
- where the bottleneck actually is
- how fairness trades against latency and throughput
- what mechanism enforces the policy
The emphasis here should stay reference-heavy. The goal is to preserve the derivations, code sketches, and mental pathways for grokking the main policies well enough to reuse them in another domain.
Reading Path
The best route is to start with the math, then the single-resource policies, then the multi-resource and domain-specific schedulers.
- Latency, Throughput, and Utilization
- Queueing Theory
- Uniprocessor Scheduling
- Multiprocessor Scheduling
- Load Balancing
- Batching
- Performance Modeling
Clusters
- Foundations:
- Runnable artifacts:
- CPU scheduling:
- Parallel and locality-aware scheduling:
- Resource contention and waiting:
- Network and packet scheduling:
- Cluster and datacenter scheduling:
- Model-serving scheduling:
- Adjacent systems:
Planned Depth
The section should eventually cover at least these layers:
- queueing laws, response-time distributions, and bottleneck analysis
- single-resource policies like FIFO, SJF, SRTF, RR, MLFQ, EDF, and fair sharing
- multiprocessor policies like affinity scheduling, work stealing, gang scheduling, and NUMA-aware placement
- packet and flow schedulers like WFQ and DRR
- cluster schedulers, dominant-resource fairness, and straggler mitigation
- request scheduling, admission control, and SLO-aware scheduling for modern model-serving systems
Notes on Scope
Some notes already exist in other branches and should stay there because their home context matters. This section is meant to link them together and eventually add the missing cross-domain material, not flatten everything into one folder.