Cooperative I/O - A Novel I/O Semantics for Energy-Aware Applications

  • Autor:

    Andreas Weißel, Björn Beutel, and Frank Bellosa

  • Quelle:

    Proceedings of the Fifth Symposium on Operating Systems Design and Implementation (OSDI '02), Boston, MA, December 9-11, 2002

  • Datum: 09.-11.12.2002
  • 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 byener gy-aware applications. We assume devices which can be set to low-power operation modes if theyare 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 byspecifying 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 typical real-life programs so that they make use of the new cooperative I/O functions. With energysa vings of up to 50%, the experimental results demonstrate the benefits of the concept. We will show that 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.


      author = {Andreas Weissel and Bj\"orn Beutel and Frank Bellosa},
      title = {Cooperative I/O - A Novel I/O Semantics for Energy-Aware Applications},
      booktitle = {Proceedings of the Fifth Symposium on Operating Systems Design and Implementation (OSDI'02)},
      address = {Boston, MA},
      month = dec # "~9--11",
      year = 2002,
      url = {}