System architecture directions for networked sensors
ACM SIGPLAN Notices
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
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
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
Abstractions for safe concurrent programming in networked embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
Proceedings of the 4th workshop on Embedded networked sensors
Darjeeling, a Java compatible virtual machine for microcontrollers
Proceedings of the ACM/IFIP/USENIX Middleware '08 Conference Companion
TOSThreads: thread-safe and non-invasive preemption in TinyOS
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
A concurrency abstraction for reliable sensor network applications
Proceedings of the 12th Monterey conference on Reliable systems on unreliable networked platforms
Y-Threads: supporting concurrency in wireless sensor networks
DCOSS'06 Proceedings of the Second IEEE international conference on Distributed Computing in Sensor Systems
Hi-index | 0.00 |
There is a long-standing dispute on whether and when thread-based programming should be preferred over the event-based paradigm. This dispute has also extended into the wireless sensor networks domain. Many existing operating systems rely on events due to their efficiency, but make code management difficult. Others rely on threads for developer comfort, but at the cost of reduced runtime efficiency. In this paper we try to combine the best of both worlds by offering a full-fledged cooperative thread abstraction with blocking I/O to the C programmer that is compiled into efficient event-based code. We present the basic code transformations and investigate their efficiency using a representative application case study. We find that RAM usage of generated code competes with hand-written code, but further optimizations are required to reduce the code size and the number of CPU cycles.