Sample Project Ideas KD Kang. Project Idea 1: Real-time task scheduling in TinyOS EDF in TinyOS 2.x –Description is available at

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

NesC Prepared for the Multimedia Networks Group University of Virginia.
The nesc Language: A Holistic Approach to Networked Embedded Systems David Gay, Philip Levis, Robert von Behren, Matt Welsh, Eric Brewer, David Culler.
Sensor Network Platforms and Tools
Overview: Chapter 7  Sensor node platforms must contend with many issues  Energy consumption  Sensing environment  Networking  Real-time constraints.
Chapter 13 Embedded Systems
TinyOS Introduction Advanced Computer Networks. TinyOS Outline  Introduction to the Architecture of TinyOS and nesC  Component Model –Components, interfaces,
Chapter 13 Embedded Systems Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Systems Wireless EmBedded nesC Update Eric Brewer with help from David Culler, David Gay, Phil Levis, Rob von Behren, and Matt Welsh.
How to Code on TinyOS Xufei Mao Advisor: Dr. Xiang-yang Li CS Dept. IIT.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
Development of a Mica2 Mote Sensor Network Cliff Macklin Bill Ehrbar December 8, 2004 University of Colorado, Colorado Springs.
TinyOS Software Engineering Sensor Networks for the Masses.
Introduction to TinyOS. Faster, Smaller, Numerous Moore’s Law –“Stuff” (transistors, etc) doubling every 1-2 years Bell’s Law –New computing class every.
2008EECS Embedded Network Programming nesC, TinyOS, Networking, Microcontrollers Jonathan Hui University of California, Berkeley.
Systems Wireless EmBedded Macroprogramming Eric Brewer (with help from David Gay, Rob von Behren, and Phil Levis)
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
CS533 - Concepts of Operating Systems
1 EE249 Discussion System Architecture Directions for Networked Sensors (J. Hill, et al) Presented By: Sarah Bergbreiter EE249 Discussion Section October.
CprE 458/558: Real-Time Systems
Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Operating Systems: Internals and Design Principles.
1 Software Development Infrastructure for Sensor Networks  Operating systems ( TinyOS )  Resource (device) management  Basic primitives  Protocols.
The nesC Language: A Holistic Approach to Networked Embedded Systems Tony Chen April 29, 2003.
Computer System Architectures Computer System Software
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Shahin Farshchi, Member, IEEE, Aleksey Pesterev, Paul Nuyujukian, Eric Guenterberg, Istvan Mody, and Jack W. Judy, Senior Member, IEEE, ” Structure of.
By: R Jayampathi Sampath
April 15, 2005TinyOS: A Component Based OSPage 1 of 27 TinyOS A Component-Based Operating System for Networked Embedded Systems Tom Bush Graduate College.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
An Introduction to Software Architecture
TinyOS By Morgan Leider CS 411 with Mike Rowe with Mike Rowe.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Operating Systems Lecture 2 Processes and Threads Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
1 Efficient Type and Memory Safety for Tiny Embedded Systems John Regehr Nathan Cooprider Will Archer Eric Eide University of Utah School of Computing.
Korea Advanced Institute of Science and Technology Active Sensor Networks(Mate) (Published by Philip Levis, David Gay, and David Culler in NSDI 2005) 11/11/09.
Lecture Set 11 Creating and Using Classes Part B – Class Features – Constructors, Methods, Fields, Properties, Shared Data.
Vishal Jain, TinyOS Design Viewpoint “TinyOS” Design Viewpoint.
CS542 Seminar – Sensor OS A Virtual Machine For Sensor Networks Oct. 28, 2009 Seok Kim Eugene Seo R. Muller, G. Alonso, and D. Kossmann.
Objectives Functionalities and services Architecture and software technologies Potential Applications –Link to research problems.
Dhanshree Nimje Smita Khartad
System Architecture Directions for Networked Sensors Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kris Pister Presented by Yang Zhao.
Simulation of Distributed Application and Protocols using TOSSIM Valliappan Annamalai.
HANBACK ELECTRONICS CO., LTD. 저자권 보호됨 TinyOS & NesC.
Part 2 TinyOS and nesC Programming Selected slides from:
Himali Saxena. Topics Configurations and Wiring Configuration implementation Basic Rules for declaration/definition Auto Wiring initialization ‘C’ and.
@ nesC Programming KETI / Ubiquitous Computing Center Jeonghoon Kang
Xiong Junjie Node-level debugging based on finite state machine in wireless sensor networks.
Link Layer Support for Unified Radio Power Management in Wireless Sensor Networks IPSN 2007 Kevin Klues, Guoliang Xing and Chenyang Lu Database Lab.
TinyOS Sandeep Gupta. Operating System (OS) What is an OS? Main functions  Process management  Memory management  Resource management Traditional OSs.
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
System Architecture Directions for Networked Sensors.
TinyOS By Valliappan Annamalai. Hardware Mica motes (Mica2 and Mica2Dot) Hardware –Radio –Microcontroller –Flash memory –ADC –Sensor Board (MTA310)
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Why does it need? [USN] ( 주 ) 한백전자 Background Wireless Sensor Network (WSN)  Relationship between Sensor and WSN Individual sensors are very limited.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
TinyOS Sandeep Gupta. TinyOS basics TinyOS is  Single tasking OS  Interrupt driven Written using a Component based language A set of components put.
TinyOS and nesC. Outline ● Wireless sensor networks and TinyOS ● Networked embedded system C (nesC) – Components – Interfaces – Concurrency model – Tool.
Simulation of Distributed Application and Protocols using TOSSIM
TinyOS CSE466 Final Project Presentation
An Introduction to Software Architecture
Presented By: Darlene Banta
Modeling Event-Based Systems in Ptolemy II EE249 Project Status Report
Creating and Using Classes
Presentation transcript:

Sample Project Ideas KD Kang

Project Idea 1: Real-time task scheduling in TinyOS EDF in TinyOS 2.x –Description is available at –Prototype implementation is available at –Is this a good implementation? Can we improve it? Can it deal with multiple resources? –Implement another real-time task scheduling algorithm in TinyOS –Implement an overload protection mechanism, for example, aggregate two sensor readings and set the new deadline = max(D1, D2)

Project Idea 2: Just-in-time packet scheduling ASAP forwarding can actually increase E2E delay and deadline miss ratio Exploit slack time to improve real-time performance –K. Liu, N. Abu-Ghazaleh, K. D. Kang, "JiTS: Just-in- Time Scheduling for Real-Time Sensor Data Dissemination", 4th Annual IEEE International Conference on Pervasive Computing and Communications (PerCom 2006), Pisa, Italy, Mar , 2006."JiTS: Just-in- Time Scheduling for Real-Time Sensor Data Dissemination" Extend JiTS

Project Idea 3: Resource Management for Multiple Queries Most WSN work assumes a single query What if multiple queries are executed simultaneously? Which queury should receive more resources? Why? Can similar queries can be combined? How?

Project Idea 4: Virtual Machine for WSNs Maté – Extend Mate to support –Real-time task/packet scheduling; –Multiple concurrent queries; or –Overload protection

Project Idea 5: Security Trust-based routing –Overhearding-based trust level computation –Does overhearing always work? There are collisions, overloads, interferences, etc. –“Practical” trust-based routing –More feedback or probing? Introduce new security holes? Terrible performance? Secure sensor network reprogramming –Prabal K. Dutta, Jonathan W. Hui, David C. Chu, and David E. Culler, “Securing the Deluge network programming”, 5th Internaltional Conference on Information Processing in Sensor Networks (IPSN'06), April 25-27, “Securing the Deluge network programming”, –Improve the security or performance of reprogramming Secure data aggregation –Y. Sang, H. Shen, Y. Inoguchi, Y. Tan, N. Xiong, “Secure Data Aggregation in Wireless Sensor Networks: A Survey”, Seventh International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT'06)Secure Data Aggregation in Wireless Sensor Networks: A Survey –Extend to support multiple streams for concurrent queries

Project Idea 6: Sensor Network Applications For EngiNet students only Applications related to your work, e.g., medical, defense, structural monitoring, habitat monitoring, smart-* applications Not only wireless sensors, e.g., MICA motes, but any other sensors, e.g., medical sensors –Describe the functionalities of important sensors Specify application requirements What’s the expected advantage of networking these sensors together with computational systems such as medical databases? –Explain how sensor networks can improve your application Specify the system architecture and reason why this architecture is desirable for the specific application Specify the required network services such as routing, MAC, or security protocols Show how the existing sensor network protocols should be changed to support the specific application of yours –Propose a new protocol –The final outcome is a report Take advantage of your domain knowledge

The nesC Language: A Holistic Approach to Networked Embedded Systems D. Gay, P. Levis, R. Behren, M. Welsh, E. Brewer, D. Culler

What is nesC? Extension of C –C has direct HW control –Many programmers already know C –nesC provides safety check missing in C Whole program analsys at compile time –Detect race conditions -> Eliminate potential bugs –Agressive function inlining -> Optimization Static language –No dynamic memory allocation –No function pointers –Call graph and variable access are fully known at compile time Supports and refelcts TinyOS’s design –Based on the component concept –Directly supports envet-driven concurrency model –Addresses the issue of concurrent access to shared via atomic section and norace keyword

Key Properties All resources are known statically No general purpose OS, but applications are built from a set of reusable system components coupled with application- specific code HW/SW boundaries may vary depending on the application & HW platform -> Flexible decomposition is required

Challenges Event-driven –Driven by interaction with environments Limited resoruces Reliability Soft real-time requirements

Reminder: TinyOS Component-based architecture –An application wires reusable components together in a customized way Tasks and event-driven concurrency –Tasks & events run to completion, but an event can preempt the execution of a task or an event –Tasks can’t preemt another task or event Split-phase operations (for non-blocking operations) –A command will return immediately and an event signals the completion

Component A component provides and uses interfaces –The interfaces are the only point of access to the component An interface models some service, e.g., sending a msg The provider of a command implements the commands, while the user implements the events

Interface Bidirectional interfaces support split- phase execution

Component implementation Two types of components: modules & configurations Modules provide application code and implements one or more interfaces Configurations wire components together –Connect interfaces used by components to interfaces provided by others

Module Surge: Get a sensor reading and send a message every second

Configuration Wire TimerM and HWClock components together

Example: SurgeC configuration

Abstract component Sometimes useful to create several instances of a component optional parameter used to specify #max retransmissions

Parameterized interfaces Used to model Active Messages in TinyOS –In active messages, a packet contains a numeric identifier to specify which event handler should be executed

Concurrency and Atomicity Asynchronous code (AC): reachable from at least one interrupt handler Synchronous code (SC): only reachable from tasks –Synchronous code is atomic w.r.t. other synchronous code Still potential races between AC and SC –Any update to shared state from AC –Any update to shared state from SC that is also updated from AC Solution: Race-Free Invariant –Any update to a shared variable is by SC or occurs inside an atomic section

atomic & norace Atomic –Disable interrupts –Atomic statements are not allowed to call commands or signal events –If a variable x is accessed by AC, any access of x outside of an atomic section is a compile time error –An atomic section should be short! norace –If a programmer knows a potential race is not an actual race, declare norace Disable interrupts Enable interrupts

Evaluation Tested for three TinyOS applications –Surge, Mate, TinyDB Core TinyOS consists of 172 components –108 modules & 64 configurations Group necessary components, via nesC’s bidirectional interfaces, for a specific application

Effect of inlining Impact of inlining on footprint and performance

Remaining issues Static memory allocation –Advantages Offline analysis of memory requirements –No problem? No dynamic allocation Short code only in atomic sections & command/event handlers Little language support for real-time programming

Questions?