Results 1 - 10
of
20
Sensor networks: Evolution, opportunities, and challenges
- PROCEEDINGS OF THE IEEE
, 2003
"... Wireless microsensor networks have been identified as one of the most important technologies for the 21st century. This paper traces the history of research in sensor networks over the past three decades, including two important programs of the Defense Advanced Research Projects Agency (DARPA) spann ..."
Abstract
-
Cited by 655 (1 self)
- Add to MetaCart
Wireless microsensor networks have been identified as one of the most important technologies for the 21st century. This paper traces the history of research in sensor networks over the past three decades, including two important programs of the Defense Advanced Research Projects Agency (DARPA) spanning this period: the Distributed Sensor Networks (DSN) and the Sensor
A dynamic operating system for sensor nodes
- in MobiSys
, 2005
"... Sensor network nodes exhibit characteristics of both embedded systems and general-purpose systems. As an embedded system, a sensor node must use little energy and be robust to environmental conditions. As a general-purpose system, a node should provide common services that make it easy to write appl ..."
Abstract
-
Cited by 189 (13 self)
- Add to MetaCart
(Show Context)
Sensor network nodes exhibit characteristics of both embedded systems and general-purpose systems. As an embedded system, a sensor node must use little energy and be robust to environmental conditions. As a general-purpose system, a node should provide common services that make it easy to write applications. TinyOS, the current state of the art in sensor network operating systems, focuses on traditional embedded system constraints; reusable components implement common services, but a node runs a single statically-linked system image, making it hard to run multiple applications or incrementally update applications. We present SOS, a new operating system for mote-class sensor nodes that implements a more dynamic point on the design spectrum. SOS consists of dynamically-loaded modules and a common kernel, which implements messaging, dynamic memory, and module loading and unloading, among other services. Modules are not processes: they are scheduled cooperatively and there is no memory protection. Nevertheless, the system protects against common module bugs using techniques such as typed entry points, watchdog timers, and primitive resource garbage collection. Individual modules can be added and removed with minimal system interruption. We describe SOS’s design and implementation, discuss tradeoffs, and compare it with TinyOS and with the Maté virtual machine for TinyOS. Our evaluation shows that despite the dynamic nature of SOS and its higher-level kernel interface, it performs comparably to TinyOS in terms of energy usage and performance, and better in terms of energy usage during software updates. 1
TOSThreads: Thread-safe and Non-Invasive Preemption in TinyOS
"... Many threads packages have been proposed for programming wireless sensor platforms. However, many sensor network operating systems still choose to provide an eventdriven model, due to efficiency concerns. We present TOS-Threads, a threads package for TinyOS that combines the ease of a threaded progr ..."
Abstract
-
Cited by 20 (0 self)
- Add to MetaCart
(Show Context)
Many threads packages have been proposed for programming wireless sensor platforms. However, many sensor network operating systems still choose to provide an eventdriven 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.
Very Rapid Prototyping of Wearable Computers: A Case Study of VuMan 3 Custom versus Off-the-Shelf Design Methodologies
- Journal on Design Automation for Embedded Systems
, 1997
"... The Wearable Computer Project is a testbed integrating research on rapid design and prototyping. Based on representative examples from six generations of wearable computers, the paper focuses on the differences in rapid prototyping using custom des ign versus off-the-shelf components. The attributes ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
(Show Context)
The Wearable Computer Project is a testbed integrating research on rapid design and prototyping. Based on representative examples from six generations of wearable computers, the paper focuses on the differences in rapid prototyping using custom des ign versus off-the-shelf components. The attributes characterizing these two design styles are defined and illustrated by experimental measurements. The off-the-shelf approach required ten times the overhead, 30% more cost, fifty times the storage resources, 20% more effort, five times more power, but 30% less effort to port software than the embedded approach. An evaluation of the Vuman 3 design is presented to show its superior advantages in comparison to the off-the-shelf approach.
Disentangling Virtual Machine Architecture
"... Abstract. Virtual machine implementations are made up of intricately intertwined subsystems, coordinating largely through implicit dependencies. An analysis of several virtual machine implementations reveals the presence of crosscutting concerns—concerns that cannot be modularized through traditiona ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
(Show Context)
Abstract. Virtual machine implementations are made up of intricately intertwined subsystems, coordinating largely through implicit dependencies. An analysis of several virtual machine implementations reveals the presence of crosscutting concerns—concerns that cannot be modularized through traditional means and whose implementation is scattered over and tangled with the source code of other modules. This paper proposes an architecture approach for virtual machines. The approach regards a virtual machine as a conglomerate of service modules coordinated through explicit interfaces using linguistic mechanisms based on aspect-oriented programming techniques. 1
CTK: Configurable Object Abstractions for Multiprocessors
, 1997
"... The Configuration Toolkit (CTK) is a library for constructing configurable object-based abstractions that are part of multiprocessor programs or operating systems. The library is unique in its exploration of runtime configuration for attaining performance improvements: (1) its programming model f ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
(Show Context)
The Configuration Toolkit (CTK) is a library for constructing configurable object-based abstractions that are part of multiprocessor programs or operating systems. The library is unique in its exploration of runtime configuration for attaining performance improvements: (1) its programming model facilitates the expression and implementation of program configuration, and (2) its efficient runtime support enables performance improvements by configuration of program components during their execution. Program configuration is attained without compromising the encapsulation or the reuse of software abstractions. CTK programs are configured using attributes associated with object classes, object instances, state variables, operations, and object invocations. At runtime, such attributes are interpreted by policy classes, which may be varied separately from the abstractions with which they are associated. Using policies and attributes, an object's runtime behavior may be varied by (1...
Hive: Operating System Fault Containment For Shared-Memory Multiprocessors
, 1997
"... Reliability and scalability are major concerns when designing general-purpose operating systems for large-scale shared-memory multiprocessors. This dissertation describes Hive, an operating system with a novel kernel architecture that addresses these issues. Hive is structured as an internal distrib ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Reliability and scalability are major concerns when designing general-purpose operating systems for large-scale shared-memory multiprocessors. This dissertation describes Hive, an operating system with a novel kernel architecture that addresses these issues. Hive is structured as an internal distributed system of independent kernels called cells. This architecture improves reliability because a hardware or software error damages only one cell rather than the whole system. The architecture improves scalability because few kernel resources are shared by processes running on different cells. The Hive prototype is a complete implementation of UNIX SVR4 and is targeted to run on the Stanford FLASH multiprocessor. The research described in the dissertation makes three primary contributions: (1) it demonstrates that distributed system mechanisms can be used to provide fault containment inside a shared-memory multiprocessor; (2) it provides a specification for a set of hardware features, imple...
The λMAC framework: redefining MAC protocols
, 2007
"... Most current WSN MAC protocol implementations have multiple tasks to perform- deciding on correct timing, sending of packets, sending of acknowledgements, etc. However, as much of this is common to all MAC protocols, there is duplication of functionality, which leads to larger MAC protocol code size ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
(Show Context)
Most current WSN MAC protocol implementations have multiple tasks to perform- deciding on correct timing, sending of packets, sending of acknowledgements, etc. However, as much of this is common to all MAC protocols, there is duplication of functionality, which leads to larger MAC protocol code size and therefore increasing numbers of bugs. Additionally, extensions to the basic functionality must be separately implemented in each MAC protocol. In this paper, we look at a different way to design a MAC protocol, focusing on the providing of interfaces which can be used to implement the common functionality separately, and on the core MAC role of timing. We also look at some examples of MAC extensions that this approach enables. We demonstrate a working implementation of these principles as an implementation of B-MAC for TinyOS, and compare it with the standard TinyOS B-MAC implementation. We show a 35% smaller code size, with the same overall functionality but increased extensibility, and while maintaining similar performance. We also present results and experiences from using the same framework to implement T-MAC, LMAC, and Crankshaft. All are demonstrated with data from realworld experience using our 24 node testbed. 1
Thread-and Process-based Implementations of the pSystem Parallel Programming Environment
- Software|Practice and Experience
, 1997
"... Run-time work distribution in parallel programming systems is usually accomplished through the use of dynamic scheduling heuristics. Their sensitivity to run-time information such as global work-load, task granularity, data dependencies, locality of information, among others, is essential when tryin ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Run-time work distribution in parallel programming systems is usually accomplished through the use of dynamic scheduling heuristics. Their sensitivity to run-time information such as global work-load, task granularity, data dependencies, locality of information, among others, is essential when trying to optimize performance. Adaptive schedulers that base their decisions on feed-back from the system are therefore of special importance. We have developed and used a general purpose parallel programming system, the pSystem, that also served as a test-bed environment on which we have experimented and studied the performance of distinct scheduling heuristics. Currently, we have two versions of the system: one based on Unix processes; and the other on Solaris threads. Threads (particularly user-level threads) are usually associated with low execution overheads, since they require minimal interaction with the operating system kernel. This suggests that lower grain parallelism may be more effectively exploited with a thread-based parallel programming system. Performance analysis of both implementations over a set of well known benchmarks, with various schedulers, shows that threads scale better under higher system loads and/or when the granularity of the tasks being executed is below a given threshold value. This paper starts with a description of the design and implementation of the pSystem computational model, followed by a detailed description of several experiments and the analysis of their results. ©1997 John Wiley & Sons, Ltd. KEY WORDS: parallelism; scheduling; parallel programming environments; performance analysis
A Security Architecture for Application Session Handoff
"... A security architecture for application session handoff ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
A security architecture for application session handoff