System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Synthesis of Discrete-Event Controllers Based on the SignalEnvironment
Discrete Event Dynamic Systems
ECOSystem: managing energy as a first class operating system resource
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Scale and performance in the Denali isolation kernel
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Contiki - A Lightweight and Flexible Operating System for Tiny Networked Sensors
LCN '04 Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks
Nano-RK: An Energy-Aware Resource-Centric RTOS for Sensor Networks
RTSS '05 Proceedings of the 26th IEEE International Real-Time Systems Symposium
MANTIS OS: an embedded multithreaded operating system for wireless micro sensor platforms
Mobile Networks and Applications
Protothreads: simplifying event-driven programming of memory-constrained embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
RETOS: resilient, expandable, and threaded operating system for wireless sensor networks
Proceedings of the 6th international conference on Information processing in sensor networks
Worldsens: development and prototyping tools for application specific wireless sensors networks
Proceedings of the 6th international conference on Information processing in sensor networks
Integrating concurrency control and energy management in device drivers
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Eon: a language and runtime system for perpetual systems
Proceedings of the 5th international conference on Embedded networked sensor systems
Semantics-preserving multitask implementation of synchronous programs
ACM Transactions on Embedded Computing Systems (TECS)
Resource aware programming in the Pixie OS
Proceedings of the 6th ACM conference on Embedded network sensor systems
The theory of deadlock avoidance via discrete control
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automating the addition of fault tolerance with discrete controller synthesis
Formal Methods in System Design
An optimized MAC layer to physical device mapping methodology
Mobility '09 Proceedings of the 6th International Conference on Mobile Technology, Application & Systems
Contracts for modular discrete controller synthesis
Proceedings of the ACM SIGPLAN/SIGBED 2010 conference on Languages, compilers, and tools for embedded systems
Using controller-synthesis techniques to build property-enforcing layers
ESOP'03 Proceedings of the 12th European conference on Programming
Device driver abstraction for multithreaded sensor network operating systems
EWSN'08 Proceedings of the 5th European conference on Wireless sensor networks
Synchronous control of reconfiguration in fractal component-based systems: a case study
EMSOFT '11 Proceedings of the ninth ACM international conference on Embedded software
Automated control synthesis for an assembly line using discrete event system control theory
IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews
Argos: an automaton-based synchronous language
Computer Languages
Hi-index | 0.00 |
In embedded systems, controlling a shared resource like a bus, or improving a property like power consumption, may be hard to achieve when programming device drivers individually. In this article, we propose a global resource control approach, based on a centralized view of the devices' states. The solution we propose operates on the hardware/software interface. It 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 device drivers, whose states correspond to functional or power consumption modes, and a controller to enforce global properties. All these automata are programmed using a synchronous language, and compiled into a single piece of C code. We take as example the node of a sensor network. We explain the approach in details, demonstrate its use and benefits with an event-driven or multithreading operating system, and draw guidelines for its use in other contexts.