skip to main content
research-article

Synchronous programming of device drivers for global resource control in embedded operating systems

Published:11 April 2011Publication History
Skip Abstract Section

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.

References

  1. T. Abdelzaher, Y. Diao, J. L. Hellerstein, C. Lu, and X. Zhu. Introduction to Control Theory And Its Application to Computing Systems. June 16 2009.Google ScholarGoogle Scholar
  2. T. F. Abdelzaher, L. J. Guibas, and M. Welsh, editors. Proceedings of the 6th International Conference on Information Processing in Sensor Networks, IPSN 2007, Cambridge, Massachusetts, USA, April 25--27, 2007. ACM, 2007. Google ScholarGoogle Scholar
  3. K. Altisen, A. Clodic, F. Maraninchi, and É. Rutten. Using Controller-Synthesis Techniques to Build Property-Enforcing Layers. In P. Degano, editor, ESOP, volume 2618 of Lecture Notes in Computer Science, pages 174--188. Springer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Benveniste, P. Caspi, S. A. Edwards, N. Halbwachs, P. L. Guernic, and R. de Simone. The synchronous languages 12 years later. Proceedings of the IEEE, 91(1):64--83, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  5. S. Bhatti, J. Carlson, H. Dai, J. Deng, J. Rose, A. Sheth, B. Shucker, C. Gruenwald, A. Torgerson, and R. Han. MANTIS OS: An Embedded Multithreaded Operating System for Wireless Micro Sensor Platforms. MONET, 10(4):563--579, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. H. Cha, S. Choi, I. Jung, H. Kim, H. Shin, J. Yoo, and C. Yoon. RETOS: resilient, expandable, and threaded operating system for wireless sensor networks. In Abdelzaher et al. \citeconf/ipsn/2007, pages 148--157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. V. Chandra, Z. Huang, and R. Kumar. Automated control synthesis for an assembly line using discrete event system control theory. IEEE Transactions on Systems, Man, and Cybernetics, Part C, 33(2):284--289, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. A. Chis, E. Fleury, and A. Fraboulet. An optimized MAC layer to physical device mapping methodology. In Mobility Conference. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. H. Choi, C. Yoon, and H. Cha. Device Driver Abstraction for Multithreaded Sensor Network Operating Systems. In R. Verdone, editor, EWSN, volume 4913 of Lecture Notes in Computer Science, pages 354--368. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Dunkels, B. Grönvall, and T. Voigt. Contiki - A Lightweight and Flexible Operating System for Tiny Networked Sensors. In LCN, pages 455--462. IEEE Computer Society, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Dunkels, O. Schmidt, T. Voigt, and M. Ali. Protothreads: simplifying event-driven programming of memory-constrained embedded systems. In A. T. Campbell, P. Bonnet, and J. S. Heidemann, editors, SenSys, pages 29--42. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Esterel Technologies Ltd. SCADE language reference manual. http://www.esterel-technologies.com/.Google ScholarGoogle Scholar
  13. A. Eswaran, A. Rowe, and R. Rajkumar. Nano-RK: An Energy-Aware Resource-Centric RTOS for Sensor Networks. In RTSS, pages 256--265. IEEE Computer Society, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. Fraboulet, G. Chelius, and E. Fleury. Worldsens: development and prototyping tools for application specific wireless sensors networks. In Abdelzaher et al. \citeconf/ipsn/2007, pages 176--185. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. D. Gay, P. Levis, J. R. von Behren, M. Welsh, E. A. Brewer, and D. E. Culler. The nesC language: A holistic approach to networked embedded systems. In PLDI, pages 1--11. ACM, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Girault and É. Rutten. Automating the addition of fault tolerance with discrete controller synthesis. Formal Methods in System Design, 35(2):190--225, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. L. Hill, R. Szewczyk, A. Woo, S. Hollar, D. E. Culler, and K. S. J. Pister. System Architecture Directions for Networked Sensors. In ASPLOS, pages 93--104, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. K. Klues, V. Handziski, C. Lu, A. Wolisz, D. E. Culler, D. Gay, and P. Levis. Integrating concurrency control and energy management in device drivers. In T. C. Bressoud and M. F. Kaashoek, editors, SOSP, pages 251--264. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. Lorincz, B. rong Chen, J. Waterman, G. W. Allen, and M. Welsh. Resource aware programming in the Pixie OS. In T. F. Abdelzaher, M. Martonosi, and A. Wolisz, editors, SenSys, pages 211--224. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. F. Maraninchi and Y. Rémond. Argos: an automaton-based synchronous language. Comput. Lang., 27(1/3):61--92, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. P. J. G. Ramadge and W. M. Wonham. The control of discrete event systems. Proc.\ of the IEEE, 77(1):81--98, Jan. 1989.Google ScholarGoogle ScholarCross RefCross Ref
  22. J. Sorber, A. Kostadinov, M. Garber, M. Brennan, M. D. Corner, and E. D. Berger. Eon: a language and runtime system for perpetual systems. In S. Jha, editor, SenSys, pages 161--174. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Wang and S. Malik. Synthesizing operating system based device drivers in embedded systems. In R. Gupta, Y. Nakamura, A. Orailoglu, and P. H. Chou, editors, CODES Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. ISSS, pages 37--44. ACM, 2003.Google ScholarGoogle Scholar
  25. A. Whitaker, M. Shaw, and S. D. Gribble. Scale and Performance in the Denali Isolation Kernel. In OSDI, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. H. Zeng, C. S. Ellis, A. R. Lebeck, and A. Vahdat. ECOSystem: managing energy as a first class operating system resource. In ASPLOS, pages 123--132, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Synchronous programming of device drivers for global resource control in embedded operating systems

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!