The performance of μ-kernel-based systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
System architecture directions for networked sensors
ASPLOS IX Proceedings of the ninth international conference on Architectural support for programming languages and operating systems
Linkers and Loaders
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
On the duality of operating system structures
ACM SIGOPS Operating Systems Review
The flooding time synchronization protocol
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
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
A dynamic operating system for sensor nodes
Proceedings of the 3rd international conference on Mobile systems, applications, and services
Nano-RK: An Energy-Aware Resource-Centric RTOS for Sensor Networks
RTSS '05 Proceedings of the 26th IEEE International Real-Time Systems Symposium
Monitoring Civil Structures with a Wireless Sensor Network
IEEE Internet Computing
MANTIS OS: an embedded multithreaded operating system for wireless micro sensor platforms
Mobile Networks and Applications
Run-time dynamic linking for reprogramming wireless sensor networks
Proceedings of the 4th international conference on Embedded networked sensor systems
Protothreads: simplifying event-driven programming of memory-constrained embedded systems
Proceedings of the 4th international conference on Embedded networked sensor systems
The Tenet architecture for tiered sensor networks
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
Data compression algorithms for energy-constrained devices in delay tolerant 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
Health monitoring of civil infrastructures using wireless sensor networks
Proceedings of the 6th international conference on Information processing in sensor networks
Programming sensor networks using abstract regions
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
NSDI'05 Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation - Volume 2
Fidelity and yield in a volcano monitoring sensor network
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
Proceedings of the 4th workshop on Embedded networked sensors
Integrating concurrency control and energy management in device drivers
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
The LiteOS Operating System: Towards Unix-Like Abstractions for Wireless Sensor Networks
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
FlexCup: a flexible and efficient code update mechanism for sensor networks
EWSN'06 Proceedings of the Third European conference on Wireless Sensor Networks
Surviving sensor network software faults
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Bug-Free Sensors: The Automatic Verification of Context-Aware TinyOS Applications
AmI '09 Proceedings of the European Conference on Ambient Intelligence
Enix: a lightweight dynamic operating system for tightly constrained wireless sensor platforms
Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems
Efficient incremental code update for sensor networks
ACM Transactions on Sensor Networks (TOSN)
REALWSN'10 Proceedings of the 4th international conference on Real-world wireless sensor networks
Threads2Events: an automatic code generation approach
Proceedings of the 6th Workshop on Hot Topics in Embedded Networked Sensors
Demo: spanning an underlay over a host WPAN cluster
MobiSys '11 Proceedings of the 9th international conference on Mobile systems, applications, and services
On software verification for sensor nodes
Journal of Systems and Software
uFlow: dynamic software updating in wireless sensor networks
UIC'11 Proceedings of the 8th international conference on Ubiquitous intelligence and computing
Towards a model checker for Nesc and wireless sensor networks
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Low power or high performance? a tradeoff whose time has come (and nearly gone)
EWSN'12 Proceedings of the 9th European conference on Wireless Sensor Networks
Proceedings of the 7th International Workshop on Middleware Tools, Services and Run-Time Support for Sensor Networks
A comprehensive compiler-assisted thread abstraction for resource-constrained systems
Proceedings of the 12th international conference on Information processing in sensor networks
Diagnostic tracing for wireless sensor networks
ACM Transactions on Sensor Networks (TOSN)
Safe system-level concurrency on resource-constrained nodes
Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems
Proceedings of the 8th International Conference on Ubiquitous Information Management and Communication
Hi-index | 0.00 |
Many threads packages have been proposed for programming wireless sensor platforms. However, many sensor network operating systems still choose to provide an event-driven model, due to efficiency concerns. We present TOS-Threads, a threads package for TinyOS that combines the ease of a threaded programming model with the efficiency of an event-based kernel. TOSThreads is backwards compatible with existing TinyOS code, supports an evolvable, thread-safe kernel API, and enables flexible application development through dynamic linking and loading. In TOS-Threads, TinyOS code runs at a higher priority than application threads and all kernel operations are invoked only via message passing, never directly, ensuring thread-safety while enabling maximal concurrency. The TOSThreads package is non-invasive; it does not require any large-scale changes to existing TinyOS code. We demonstrate that TOSThreads context switches and system calls introduce an overhead of less than 0.92% and that dynamic linking and loading takes as little as 90 ms for a representative sensing application. We compare different programming models built using TOSThreads, including standard C with blocking system calls and a reimplementation of Tenet. Additionally, we demonstrate that TOSThreads is able to run computationally intensive tasks without adversely affecting the timing of critical OS services.