|
Algorithm | Basic idea | Advantage | Weakness | Target applications |
|
SSTF | Service request with shortest seek time first | Simple to implement; high throughput | High variation of response time |
Best-effort applications |
SATF | Service request with shortest access time (including rotational latency) first | High throughput | Require knowledge of disk structure |
SCAN | Scan in one direction and service all requests by track number order and change the direction of scan | Simple to implement; high throughput | Consider only best-effort requests |
C-SCAN | Variant of SCAN that always scans in one direction | Simple to implement; high throughput; low variation of response time | Consider only best-effort requests |
|
EDF | Service request with Earliest Deadline First | Simplest to implement in real-time environment | Low disk utilization |
Real-time applications |
SCAN-EDF | Service EDF order and use SCAN as a tie breaker | Simple to implement | Possible to degenerate into EDF |
SSEDO/ SSEDV | Consider both deadline and seek time, but put more weight on deadline | Consider both deadline and seek time | Require parameter tuning |
FD-SCAN | Move head towards the request with earliest feasible deadline; service requests on the way | Consider feasibility of real-time requests | May incur many deadline misses; high overhead |
SCAN-RT | Basically SCAN; insert new request only if it does not violate the deadlines of pending requests | Employ SCAN considering deadline | Not consider different priority level of requests |
DM-SCAN | Apply SCAN by unifying deadlines of requests within maximum scannable group | Employ SCAN considering deadline | Possible to degenerate into EDF |
Kamel’s | Basically SCAN; insert new request considering deadline and priority | Consider different priority level; deadline guarantee | Immature handling of requests in next round |
MS-EDF | Find a global optimal schedule using branch-and-bound scheme | Global search of an optimal schedule; high performance | Only for real-time requests; off-line mechanism |
|
Rangan’s | A fixed-order cyclical scheduling strategy | Employ an elaborate disk model | Not handle frame-oriented data |
Multimedia streaming applications |
GSS | Assign the joint deadline to each group of streams; each group is serviced in a fixed order in a round | Simple to implement; obtain high throughput by using SCAN within each round | Require group size tuning |
Preseeking sweep | Split stream data requests into multiple fragments | Obtain high throughput by employing an elaborate disk model | Require knowledge of disk structure |
Chen’s | Modify round-robin scheduling to provide statistical guarantees to clients | Useful when playback guarantee is not necessary | Require complicated statistical analysis | |
|
Cello | Two-level disk scheduling framework: a class-independent scheduler and a set of class-specific schedulers | Guarantee predefined disk bandwidth for each class | Not guarantee the jitter-free playback of multimedia |
Applications with heterogeneous workloads |
Reddy’s | Similar to Cello; employ admission controller as well as scheduler | Consider admission controller and VBR streams | Require knowledge of disk structure |
Won’s | Allocate some bandwidth to best-effort requests by extending the length of round | Consider buffer requirement for jitter-free playback of multimedia | Require knowledge of disk structure |
WRR-SCAN | Allocate disk bandwidth to prioritized task groups and service requests in the group by SCAN | Guarantee minimal disk bandwidth for aperiodic tasks | Require knowledge of disk structure |
Cascaded-SFC | Unified framework considering various scheduling parameters | Consider all scheduling parameters; applicable to various environments | Require parameter tuning |
Fahrrad | Reserve disk bandwidth based on disk time utilization | Fully reserve the disk bandwidth for different applications | Less efficient in small bursty workload with low-latency targets |
Horizon | Two-layered approach: upper level for deadline assignment and lower level for scheduling | Schedule requests based on their expected disk service time | Lack of hard real-time supports |
|