@inproceedings{BMM11,
title = {Synchronous Programming of Device Drivers for Global Resource Control in Embedded Operating Systems },
author = {Berthier, Nicolas and Maraninchi, Florence and Mounier, Laurent},
month = {apr},
year = {2011},
booktitle = {ACM SIGPLAN/SIGBED Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES)},
address = {Chicago, IL, USA},
team = {SYNC,DCS,PACSS},
abstract = { In embedded systems, controlling a shared resource like the bus,
or improving a property like power consumption, may be hard
to achieve when programming device drivers individually. There
is a need for global resource control, taking decisions based on
a centralized view of the devices' states. In this paper, we study
power consumption in sensor networks, where the nodes are small
embedded systems powered by batteries. We concentrate on the
hardware/software architecture of a node, where significant gains
can be achieved by controlling the consumption modes of the
various devices globally. The architecture we propose involves a
simple adaptation of the application level, to communicate with
the hardware via a control layer. The control layer itself is built
from a set of simple automata: the drivers of the devices, whose
states correspond to power consumption modes, and a controller
that enforces global properties. All these automata are programmed
using a synchronous language, whose compiler performs static
scheduling and produces a single piece of C code. We explain
the approach in details, demonstrate its use with either Contiki or
a traditional multithreading operating system, and report on our
experiments.
},
}