Cooperative IO - A Novel IO Semantics for Energy-Aware Applications
Andreas Weissel, Björn Beutel, Frank Bellosa, "Cooperative IO - A Novel
IO Semantics for Energy-Aware Applications", Proceedings of the Fifth
Symposium on Operating Systems Design and Implementation (OSDI '02), Boston,
MA, December 2002
[Abstract(english)]
[Full Paper (pdf), 353 kB]
[Talk (pdf)]
Abstract:
In this paper we demonstrate the benefits of application involvement in
operating system power management. We present Coop-I/O, an approach to reduce
the power consumption of devices while encompassing all levels of the
system-from the hardware and OS to a new interface for cooperative I/O that
can be used by energy-aware applications. We assume devices which can be set
to low-power operation modes if they are not accessed and where switching
between modes consumes additional energy, e.g. devices with rotating
components or network devices consuming energy for the establishment and
shutdown of network connections. In these cases frequent mode switches should
be avoided.
With Coop-I/O, applications can declare open, read and write operations as
deferrable and even abortable by specifying a time-out and a cancel flag. This
information enables the operating system to delay and batch requests so that
the number of power mode switches is reduced and the device can be kept longer
in a low-power mode. We have deployed our concept to the IDE hard disk driver
and Ext2 file system of Linux and to several typical real-life programs so
that they make use of the new cooperative I/O functions. With energy savings
of up to 50%, the experimental results demonstrate the benefits of the
concept. We will show that in many cases Coop-I/O even outperforms the
"oracle" shutdown policy which defines the lower bound in power consumption if
the timing of requests can not be influenced.