Deadline I/O Scheduler

Introduction

這是 Linux 對 disk I/O scheduling 提出的方案,解決了兩個問題:

  1. SCAN scheduling 等待時間 upper bound 太大
  2. SSTF scheduling 可能 starvation

Implementation

維護兩組 read/write request queue 共四個 queue,一組用 C-SCAN 的排序另一組用 FCFS 排序,兩組擁有相同的 request 內容但是排序方法不同

在普通情況 scheduler 用 C-SCAN 的那條 queue 決定 I/O 順序,但每次處理完一個 I/O 後都會檢查 FCFS queue 是否有等待時間大於 500ms 的 request,如果有就先將那些 I/O request 處理完