Systems Wireless EmBedded Macroprogramming Eric Brewer (with help from David Gay, Rob von Behren, and Phil Levis)

Slides:



Advertisements
Similar presentations
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Advertisements

Maximum Battery Life Routing to Support Ubiquitous Mobile Computing in Wireless Ad Hoc Networks By C. K. Toh.
Group #1: Protocols for Wireless Mobile Environments.
4.1.5 System Management Background What is in System Management Resource control and scheduling Booting, reconfiguration, defining limits for resource.
Ranveer Chandra , Kenneth P. Birman Department of Computer Science
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
Gossip Scheduling for Periodic Streams in Ad-hoc WSNs Ercan Ucan, Nathanael Thompson, Indranil Gupta Department of Computer Science University of Illinois.
Module 3.4: Switching Circuit Switching Packet Switching K. Salah.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Systems Wireless EmBedded nesC Update Eric Brewer with help from David Culler, David Gay, Phil Levis, Rob von Behren, and Matt Welsh.
A Platform for WEbS (wireless embedded sensor/actuator) systems David Culler Eric Brewer Dave Wagner.
© nCode 2000 Title of Presentation goes here - go to Master Slide to edit - Slide 1 Reliable Communication for Highly Mobile Agents ECE 7995: Term Paper.
Capriccio: Scalable Threads for Internet Services Rob von Behren, Jeremy Condit, Feng Zhou, Geroge Necula and Eric Brewer University of California at Berkeley.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
Memory Management 2010.
1 Efficient Memory Safety for TinyOS 2.1 Yang Chen Nathan Cooprider Will Archer Eric Eide David Gay † John Regehr University of Utah School of Computing.
Communication in Distributed Systems –Part 2
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #5 Mobile Ad-Hoc Networks TBRPF.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
.NET Mobile Application Development Remote Procedure Call.
1. 2 Chapter 1 Introduction to Computers, Programs, and Java.
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
5205 – IT Service Delivery and Support
Connecting LANs, Backbone Networks, and Virtual LANs
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
1 The Google File System Reporter: You-Wei Zhang.
Computer System Architectures Computer System Software
CS 355 – Programming Languages
Introduction to Networking Concepts. Introducing TCP/IP Addressing Network address – common portion of the IP address shared by all hosts on a subnet/network.
Benefits of PL/SQL. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –List and explain the benefits of PL/SQL –List.
1 System Models. 2 Outline Introduction Architectural models Fundamental models Guideline.
A Lightweight Platform for Integration of Resource Limited Devices into Pervasive Grids Stavros Isaiadis and Vladimir Getov University of Westminster
Network Aware Resource Allocation in Distributed Clouds.
ROUTING ALGORITHMS IN AD HOC NETWORKS
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Reliable Communication in the Presence of Failures Based on the paper by: Kenneth Birman and Thomas A. Joseph Cesar Talledo COEN 317 Fall 05.
Chapter 1 Section 1.1 Introduction to Java Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Super computers Parallel Processing By Lecturer: Aisha Dawood.
Cache Coherence Protocols 1 Cache Coherence Protocols in Shared Memory Multiprocessors Mehmet Şenvar.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
1 Sniper Detection Using Wireless Sensor Networks Joe Brassard Wing Siu EE-194WIR: Wireless Sensor Networks Presentation #3: March 17, 2005.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
MapReduce Algorithm Design Based on Jimmy Lin’s slides
By Jeff Dean & Sanjay Ghemawat Google Inc. OSDI 2004 Presented by : Mohit Deopujari.
The Network Architecture of the Connection Machine CM-5 Charles E. Leiserson et al (Thinking Machines Corporation) Presented by Eric Carty-Fickes 1/28/04.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Chapter 1 Database Access from Client Applications.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
Structure-Free Data Aggregation in Sensor Networks.
Background Computer System Architectures Computer System Software.
Intro to Distributed Systems Hank Levy. 23/20/2016 Distributed Systems Nearly all systems today are distributed in some way, e.g.: –they use –they.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
TinyOS and nesC. Outline ● Wireless sensor networks and TinyOS ● Networked embedded system C (nesC) – Components – Interfaces – Concurrency model – Tool.
Hydra: Leveraging Functional Slicing for Efficient Distributed SDN Controllers Yiyang Chang, Ashkan Rezaei, Balajee Vamanan, Jahangir Hasan, Sanjay Rao.
Pattern Parallel Programming
Wireless Sensor Network Architectures
Net 435: Wireless sensor network (WSN)
Introduction to Operating Systems
Background and Motivation
Introduction to Operating Systems
Introduction to Operating Systems
Presentation transcript:

Systems Wireless EmBedded Macroprogramming Eric Brewer (with help from David Gay, Rob von Behren, and Phil Levis)

Systems Wireless EmBedded 6/17/2002WEBS Retreat2 Outline Introduction NesC Midterm Plans Macroprogramming

Systems Wireless EmBedded 6/17/2002WEBS Retreat3 Language Goals Short term (NesC) –Make it much easier to program single motes –Gain experience with the issues (please tell us!) –Build intermediate language for future work Long term (macroprogramming) –Write high-level programs for groups of motes –Deal with failure and uncertainty, varying numbers of motes –Abstract issues of time, location, neighbors –Provide implicit communication and data sharing –Enable low power and bandwidth efficiency

Systems Wireless EmBedded 6/17/2002WEBS Retreat4 NesC Midterm Goals Version 1 ready now –Cleans up wiring and code –Smaller, faster, faster to compile code Potential areas for the next version: –Simplify split-phase calls »Blocking calls at the higher level? »At least simplify creation of the command/event pair »Manage state across split-phase calls –“pass” values (like message buffer) »Pass by reference, but object leaves your scope »Implies passed thing is NOT shared »Simplifies capabilities, events, pipelines

Systems Wireless EmBedded 6/17/2002WEBS Retreat5 NesC Midterm (cont) Definition of messages –Define a message type and then create surrounding code Dynamic Linking? –Enable larger programs, multi-mode motes –Load modules from EEPROM? from network? Support for proxies? Sleep modes/timing? Explicit support for state machines? –Probably for interfaces/protocols

Systems Wireless EmBedded 6/17/2002WEBS Retreat6 NesC Midterm (cont) Big goal: race-free, deadlock-free programs Key idea: 1.We can know all of the global resources statically 2.We can find atomic sections for every resource use 3.We can track which resources are in use 4.We can avoid running things that conflict (run things that release resources) We believe that we can detect and enforce every critical section. Requires a scheduler (and no multiprocessing) Claim: would have prevented Therac-25, Mars Rover

Systems Wireless EmBedded 6/17/2002WEBS Retreat7 Macroprogramming Roughly: programming language plus runtime system Basics: –One program for many motes –Shared view of the world, some shared state –Higher level programming language Should provide for sure: –Logical location (2D for now), with error radius »Explicitly know mobile or fixed –Time synchronization, with error bound »Global sleep scheduling? –Time series as a first class type »A sequence of values over time (with error bounds!) »Operations on the sequence (e.g. window, max, last)

Systems Wireless EmBedded 6/17/2002WEBS Retreat8 Macro: Tree Support Claim: spanning tree is a key concept Runtime provides a logical spanning tree –One per partition, split/merge automatically –Changes over time, but operations can still be ordered –Motes need not know whole tree, just local area/direction Enables tree operations: –Barrier (local to partition) –Broadcast –Gather with aggregation (statistical) –Scatter (can affect on way down) –Gather and broadcast with aggregation

Systems Wireless EmBedded 6/17/2002WEBS Retreat9 Macro: Tree Aggregation Key idea: combining function (cf) v’ = cf(v, a) // new value is a function of old plus an argument Cf is associative and commutative cf(cf(v, a), b) == cf(cf(v, b), a) Given two args, a and b c = G(a, b) Require: cf(cf(v, a), b) = cf(v, c) – this allows us to combine args without knowing v –… and thus combine args up the tree Can also compute result after fixing a partition –Log only the aggregate arg, not all of the updates Examples: addition, min/max, latest

Systems Wireless EmBedded 6/17/2002WEBS Retreat10 Macro: using CF trees At language level: –Enables reliable aggregation efficiently –Can sometimes compute G from cf given by user –Can also allow explicit definition of G (and cf) Easy to do: –Shared state that maintains latest value, min or max –“horizontal” arrays with global operations! –Readers/Writers shared state with cf for writes »App just makes local update; we handle the communication and consistency Harder: –Automatic conflict resolution after partition ends? –Automatic generation of cf given an expression? –Multi-arg combiner functions, including error terms

Systems Wireless EmBedded 6/17/2002WEBS Retreat11 Macro: 2D Spaces Alternative framework to logical spanning tree Based on 2D virtual grid –Motes have locations (not on grid points) –Operations for areas, gradients, spatial neighbors Easier for fixed placements Two phases: discovery and use –Discovery does all-way localization (using some known nodes), and determines neighbor structures –Creates a quad tree instead of logical spanning tree –Use is both tree operations and spatial operations Claim: shared infrastructure is the key to NEST

Systems Wireless EmBedded 6/17/2002WEBS Retreat12 Other issues Multi-mode programs? –Construct different programs for different kinds of motes automatically How to exploit high resource motes? –Power, bandwidth, connectivity? –Rough approach: bimodal »Lite motes worry about power/bandwidth »Heavy motes do not »Two programs generated (or one with two parts) Weakly consistent sharing (e.g. bayou)? Generate software for proxies, PCs? Support 3D spaces? 2½ D

Systems Wireless EmBedded 6/17/2002WEBS Retreat13 Conclusions Key is really the shared runtime system –Logical spanning tree –Logical 2D grid –Shared state Can’t make new routing for each app… Error propagation/merging must be central Looking for feedback! –What are the problems we need to solve?