Grasshopper: an orthogonally persistent operating system
Computing Systems
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
The Flux OSKit: a substrate for kernel and language research
Proceedings of the sixteenth ACM symposium on Operating systems principles
Free transactions with Rio Vista
Proceedings of the sixteenth ACM symposium on Operating systems principles
EROS: a fast capability system
Proceedings of the seventeenth 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
The KeyKOS Nanokernel Architecture
Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures
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
A high-throughput path metric for multi-hop wireless routing
Proceedings of the 9th annual international conference on Mobile computing and networking
The flooding time synchronization protocol
SenSys '04 Proceedings of the 2nd 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
ACM Transactions on Computer Systems (TOCS)
Processes in KaffeOS: isolation, resource management, and sharing in java
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Enhancing server availability and security through failure-oblivious computing
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
SafeDrive: safe and recoverable extensions using language-based techniques
OSDI '06 Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation - Volume 7
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
Rx: Treating bugs as allergies—a safe method to survive software failures
ACM Transactions on Computer Systems (TOCS)
PermaSense: investigating permafrost with a WSN in the Swiss Alps
Proceedings of the 4th workshop on Embedded networked sensors
Visibility: a new metric for protocol design
Proceedings of the 5th international conference on Embedded networked sensor systems
LUSTER: wireless sensor network for environmental research
Proceedings of the 5th international conference on Embedded networked sensor systems
Efficient memory safety for TinyOS
Proceedings of the 5th international conference on Embedded networked sensor systems
The hitchhiker's guide to successful wireless sensor network deployments
Proceedings of the 6th ACM conference on Embedded network sensor systems
Recovery domains: an organizing principle for recoverable operating systems
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
TOSThreads: thread-safe and non-invasive preemption in TinyOS
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Dependent types for low-level programming
ESOP'07 Proceedings of the 16th European conference on Programming
Otherworld: giving applications a chance to survive OS kernel crashes
Proceedings of the 5th European conference on Computer systems
KleeNet: discovering insidious interaction bugs in wireless sensor networks before deployment
Proceedings of the 9th ACM/IEEE International Conference on Information Processing in Sensor Networks
On the potential of software rejuvenation for long-running sensor network deployments
Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications
Elon: enabling efficient and long-term reprogramming for wireless sensor networks
Proceedings of the ACM SIGMETRICS international conference on Measurement and modeling of computer systems
Mementos: system support for long-running computation on RFID-scale devices
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Flikker: saving DRAM refresh-power through critical data partitioning
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
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
Summary of PLOS 2011: the sixth workshop on programming languages and operating systems
ACM SIGOPS Operating Systems Review
Phoenix: an epidemic approach to time reconstruction
EWSN'10 Proceedings of the 7th European conference on Wireless Sensor Networks
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
CTP: An efficient, robust, and reliable collection tree protocol for wireless sensor networks
ACM Transactions on Sensor Networks (TOSN)
Elon: Enabling efficient and long-term reprogramming for wireless sensor networks
ACM Transactions on Embedded Computing Systems (TECS)
Hi-index | 0.00 |
We describe Neutron, a version of the TinyOS operating system that efficiently recovers from memory safety bugs. Where existing schemes reboot an entire node on an error, Neutron's compiler and runtime extensions divide programs into recovery units and reboot only the faulting unit. The TinyOS kernel itself is a recovery unit: a kernel safety violation appears to applications as the processor being unavailable for 10-20 milliseconds. Neutron further minimizes safety violation cost by supporting "precious" state that persists across reboots. Application data, time synchronization state, and routing tables can all be declared as precious. Neutron's reboot sequence conservatively checks that precious state is not the source of a fault before preserving it. Together, recovery units and precious state allow Neutron to reduce a safety violation's cost to time synchronization by 94% and to a routing protocol by 99.5%. Neutron also protects applications from losing data. Neutron provides this recovery on the very limited resources of a tiny, low-power microcontroller.