Allowing higher-priority requests to preempt ongoing disk IOs is of
particular benefit to delay-sensitive multimedia and real-time systems.
In this paper we propose Semi-preemptible IO, which divides an
IO request into small temporal units of disk commands
to enable preemptible disk access.
We present main design strategies to allow preemption of
each component of a disk access--seek, rotation, and data transfer.
We analyze the performance and describe implementation challenges.
Our evaluation shows that Semi-preemptible IO can substantially reduce IO
waiting time with little loss in disk throughput. For example,
expected waiting time for disk IOs in a video streaming system
is reduced
times with the throughput loss
of less than
percent.