anticipatory-scheduling · research · also anticipatory disk scheduling

Anticipatory scheduling

Anticipatory scheduling briefly delays dispatch to wait for another request from a process whose I/O queue has just become empty.

Related Observatory article: Anticipatory scheduling on hesela.com

A synchronous reader may need a short computation after completion before submitting its next read. Immediately serving another process can force an avoidable head seek, even with pending work elsewhere. This temporary absence of the desired request is deceptive idleness. [1]

Unlike prefetching, anticipation waits for a demand request instead of guessing and issuing its read. The original framework wraps a scheduling policy with adaptive waiting heuristics; seek reduction and proportional service need different criteria. [1]

Linux 6.16 BFQ retains idling for selected synchronous queues. On flash with internal command queueing, it may sacrifice throughput for latency or fairness. Setting slice_idle to zero can remove that protection; it is not a universal performance fix. [2]

Relations

related
I/O scheduler, Budget Fair Queueing (BFQ), readahead (Linux syscall), Work-conserving scheduler

Limitations

  • Waiting consumes device time when the expected request does not arrive soon enough. [1]

Citations

  1. Iyer and Druschel. Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous I/O. SOSP 2001, sections 2-5. (accessed 2026-11-08)
  2. Linux 6.16: BFQ, device idling, slice_idle and strict_guarantees (accessed 2026-11-08)

Further reading

  1. Hesela: Sharing an SSD: who pays for the slowdown? (accessed 2026-11-08)
Sources & caveats
  • The 2001 experiments used FreeBSD 4.3 and rotating disks; their gains are not predictions for present-day SSDs. [1]
  • This entry describes a research framework and its scheduling principle, not an available scheduler name in every current kernel.
  • Primary-source synthesis only; no hardware benchmark or paper replication was performed.

JSON: /data/terms/anticipatory-scheduling.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Anticipatory scheduling. Hesela. 2026-11-08. https://hesela.dev/terms/anticipatory-scheduling/