Figure 9 depicts the difference in the expected waiting time between non-preemptible IO and Semi-preemptible IO. In this experiment, IOs were serviced for data situated at random locations on the disk. The IOs were serviced using FCFS policy. We can see that the expected waiting time for non-preemptible IOs increases linearly with IO size due to increased data transfer time. However, the expected waiting time for Semi-preemptible IOs actually decreases with IO size, since the disk spends more time in data transfer, which is more preemptible.
Figure 10 depicts the improvements in the expected waiting time when the system uses an elevator-based scheduling policy. (The figure shows the results of randomly generated IO requests serviced in batches of .) The results are better than those of FCFS access since the elevator scheduler reduces the seek component that is the least-preemptible.
Figures 11 and 12 show the effect of improving IO preemptibility on the achieved disk throughput when an FCFS scheduling policy is used. There is a noticeable but minor reduction in disk throughput using Semi-preemptible IO (less than ). This reduction is due to the overhead of seek-splitting and mis-prediction of seek and rotational delay. More details on the accuracy of rotational delay predictions can be found in [7]. Another point worth mentioning is that the reduction in disk throughput in Semi-preemptible IO is smaller for large IOs than for small IOs due to the reduced number of seeks and hence the smaller overhead.
Since disk commands are non-preemptible (even in Semi-preemptible IO), we can use the duration of disk commands to measure the expected waiting time. A smaller value implies a more preemptible system. Figure 13 shows the distribution of the durations of disk commands for both non-preemptible IO and Semi-preemptible IO (for exactly the same sequence of IO requests). In the case of non-preemptible IO (Figure 13 (a)), one IO request is serviced using a single disk command. Hence, the disk access can be preempted only when the current IO request is completed. The distribution is dense near the sum of the average seek time, rotational delay, and transfer time required to service an entire IO request. The distribution is wider when the IO requests are larger, because the duration of data transfer depends not only on the size of the IO request, but also on the throughput of the disk zone where the data resides.
In the case of Semi-preemptible IO, the distribution of the durations of disk commands does not directly depend on the IO request size, but on individual disk commands used to perform an IO request. (We plot the distribution for the Semi-preemptible IO case in logarithmic scale, so that the probability density of longer disk commands can be better visualized.) In Figure 13 (b), we see that for Semi-preemptible IO, the largest probability density is around the time required to transfer a single chunk of data. If the chunk includes the track or cylinder skew, the duration of the command will be slightly longer. (The two peaks immediately to the right of the highest peak, at approximately ms, have the same probability because the disk used in our experiments has two tracks per cylinder.) The part of the distribution between ms and ms in the figure is due to the combined effect of JIT-seek and seek-splitting on the seek and rotational delays. The probability for this range is small, approximately , , and for kB, kB, and kB IO requests, respectively.