A Class-Based Disk Scheduling Algorithm: Implementation and Performance Study

1. Abstract Most input/output research had concentrated on improving I/O subsystem performance independent of overall system performance. Recent work, however, has suggested that consideration must be given to effects of I/O subsystem design on overall system performance [Gang93][Geist87a]. In particular, it was suggested that prioritizing I/O requests that cause a process to block over those requests which are non-blocking yields a shorter job turnaround time for I/O bound processes. Several UNIX systems currently implement similar algorithms. With one exception [Gang93], we could find no studies of the class-based scheduling effectiveness. We implemented a class-based disk scheduler at the device driver level of the Linux operating system. Comparisons with an C-LOOK scheduling algorithm yield discouraging results; in most cases, C-LOOK yields shorter job turnaround times. The class-based system fails because delaying write-back requests increases contention for I/O buffers.