{
  "slug": "freeblock-scheduling",
  "term": "Freeblock scheduling",
  "aliases": [],
  "definition": "Freeblock scheduling fits background HDD transfers into predicted rotational delays while aiming to preserve the next foreground transfer's timing.",
  "note": "The foreground request is selected first; background work uses the remaining positioning opportunity. Extra seeks consume some of that opportunity. This is not simply waiting until the request queue is empty. [freeblock2000]\n\nLarge sets of unordered blocks give the scheduler more choices. The last blocks of a scan can be awkward to reach; promoting them to foreground priority trades scan completion against foreground interference. [freeblock2000]\n\nThe FAST 2002 external prototype used limited command queueing and adjacent-request merging to handle timing and drive-cache behavior. Imperfect prediction and control reduced usable bandwidth relative to the earlier simulation. [freeblock2002]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "Prediction errors can miss the intended sector passage and add a rotation of delay.",
      "citationIds": [
        "freeblock2002"
      ]
    }
  ],
  "related": [
    "rotational-latency",
    "io-scheduler",
    "anticipatory-scheduling",
    "data-scrubbing"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-09",
  "citations": [
    {
      "id": "freeblock2000",
      "title": "Lumb et al. Towards Higher Disk Head Utilization: Extracting \"Free\" Bandwidth from Busy Disk Drives. OSDI 2000, sections 2, 5.2 and 6.",
      "url": "https://static.usenix.org/events/osdi2000/full_papers/lumb/lumb_html/index.html",
      "accessed": "2026-11-09"
    },
    {
      "id": "freeblock2002",
      "title": "Lumb, Schindler and Ganger. Freeblock Scheduling Outside of Disk Firmware. FAST 2002, pp. 275-288; sections 2-5.",
      "url": "https://www.usenix.org/legacy/publications/library/proceedings/fast02/full_papers/lumb/lumb_html/index.html",
      "accessed": "2026-11-09"
    },
    {
      "id": "hesela",
      "title": "Hesela: HDD rotational slack versus waiting for demand",
      "url": "https://hesela.com/analyses/ssd-fairness-shared-queues/#freeblock-scheduling",
      "accessed": "2026-11-09"
    }
  ],
  "provenance": [
    "Historical source synthesis, not a current Linux scheduler option, SSD capability or reproduced benchmark."
  ]
}
