Qing Cao, Tarek Abdelzaher(UIUC), John Stankovic, Kamin Whitehouse (UVA), Liqian Luo (MSR)

Slides:



Advertisements
Similar presentations
Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Advertisements

Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Berkeley dsn declarative sensor networks problem David Chu, Lucian Popa, Arsalan Tavakoli, Joe Hellerstein approach related dsn architecture status  B.
Lecture 16 Buffer Overflow modified from slides of Lawrie Brown.
Dec 5, 2007University of Virginia1 Efficient Dynamic Tainting using Multiple Cores Yan Huang University of Virginia Dec
IGOR: A System for Program Debugging via Reversible Execution Stuart I. Feldman Channing B. Brown slides made by Qing Zhang.
A Dynamic Operating System for Sensor Nodes (SOS) Source:The 3 rd International Conference on Mobile Systems, Applications, and Service (MobiSys 2005)
Capriccio: Scalable Threads for Internet Services ( by Behren, Condit, Zhou, Necula, Brewer ) Presented by Alex Sherman and Sarita Bafna.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Node-level Representation and System Support for Network Programming Jaein Jeong.
Nooks: an architecture for safe device drivers Mike Swift, The Wild and Crazy Guy, Hank Levy and Susan Eggers.
Run-Time Storage Organization
Efficient Instruction Set Randomization Using Software Dynamic Translation Michael Crane Wei Hu.
1 Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska and Henry M. Levy Presented by: Karthika Kothapally.
Introduction to Symmetric Multiprocessors Süha TUNA Bilişim Enstitüsü UHeM Yaz Çalıştayı
Process Description and Control. Process concepts n Definitions – replaces task, job – program in execution – entity that can be assigned to and executed.
System Calls 1.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
LiNK: An Operating System Architecture for Network Processors Steve Muir, Jonathan Smith Princeton University, University of Pennsylvania
Analyzing parallel programs with Pin Moshe Bach, Mark Charney, Robert Cohn, Elena Demikhovsky, Tevi Devor, Kim Hazelwood, Aamer Jaleel, Chi- Keung Luk,
Adventures in Mastering the Use of Performance Evaluation Tools Manuel Ríos Morales ICOM 5995 December 4, 2002.
AN EXTENDED OPENMP TARGETING ON THE HYBRID ARCHITECTURE OF SMP-CLUSTER Author : Y. Zhao 、 C. Hu 、 S. Wang 、 S. Zhang Source : Proceedings of the 2nd IASTED.
1 EnviroStore: A Cooperative Storage System for Disconnected Operation in Sensor Networks Liqian Luo, Chengdu Huang, Tarek Abdelzaher John Stankovic INFOCOM.
Infocom’07 Authors:Liqian Luo, Chengdu Huang, Tarek Abdelzaher John Stankovic Presented By Rohini Kurkal Under Guidance of Dr.Bin Tang.
1 University of Maryland Linger-Longer: Fine-Grain Cycle Stealing in Networks of Workstations Kyung Dong Ryu © Copyright 2000, Kyung Dong Ryu, All Rights.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
DARPA Jul A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler InCert Software.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
8 1 Chapter 8 Advanced SQL Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Processes Introduction to Operating Systems: Module 3.
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
Cooperative Concurrency Bug Isolation Guoliang Jin, Aditya Thakur, Ben Liblit, Shan Lu University of Wisconsin–Madison Instrumentation and Sampling Strategies.
An OBSM method for Real Time Embedded Systems Veronica Eyo Sharvari Joshi.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
Buffer Overflow Proofing of Code Binaries By Ramya Reguramalingam Graduate Student, Computer Science Advisor: Dr. Gopal Gupta.
A record and replay mechanism using programmable network interface cards Laurent Lefèvre INRIA / LIP (UMR CNRS, INRIA, ENS, UCB)
Buffer Overflow Attack Proofing of Code Binary Gopal Gupta, Parag Doshi, R. Reghuramalingam, Doug Harris The University of Texas at Dallas.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
Security Architecture and Design Chapter 4 Part 1 Pages 297 to 319.
Xiong Junjie Node-level debugging based on finite state machine in wireless sensor networks.
Efficient Live Checkpointing Mechanisms for computation and memory-intensive VMs in a data center Kasidit Chanchio Vasabilab Dept of Computer Science,
Mark Stanovich Operating Systems COP Primitives to Build Distributed Applications send and receive Used to synchronize cooperating processes running.
Protecting C Programs from Attacks via Invalid Pointer Dereferences Suan Hsi Yong, Susan Horwitz University of Wisconsin – Madison.
Efficient Software Based Fault Isolation Author: Robert Wahobe,Steven Lucco,Thomas E Anderson, Susan L Graham Presenter: Maitree kanungo Date:02/17/2010.
Virtual Application Profiler (VAPP) Problem – Increasing hardware complexity – Programmers need to understand interactions between architecture and their.
Slide 1/14 Midsens ’09 – December 1, 2009 Lightweight Tracing For Wireless Sensor Networks Debugging Vinaitheerthan Sundaram*, Patrick Eugster, Xiangyu.
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
By: Rob von Behren, Jeremy Condit and Eric Brewer 2003 Presenter: Farnoosh MoshirFatemi Jan
An Accurate and Detailed Prefetching Simulation Framework for gem5 Martí Torrents, Raúl Martínez, and Carlos Molina Computer Architecture.
CS533 Concepts of Operating Systems Jonathan Walpole.
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
Week 4 - Friday.  What did we talk about last time?  Some extra systems programming stuff  Scope.
Where Testing Fails …. Problem Areas Stack Overflow Race Conditions Deadlock Timing Reentrancy.
Qin Zhao1, Joon Edward Sim2, WengFai Wong1,2 1SingaporeMIT Alliance 2Department of Computer Science National University of Singapore
1 Class #509 The Heisenberg Principal of Debugging A Method for Recording Execution and Program State in a Live Embedded System, for Later Playback and.
Threads prepared and instructed by Shmuel Wimer Eng. Faculty, Bar-Ilan University 1July 2016Processes.
REAL-TIME OPERATING SYSTEMS
Presented by: Daniel Taylor
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Process Management Process Concept Why only the global variables?
Vasily Tarasov 5 April 2017 Challenges in Tracing
C-language Lecture By B.S.S.Tejesh, S.Neeraja Asst.Prof.
Capriccio – A Thread Model
Jihyun Park, Changsun Park, Byoungju Choi, Gihun Chang
Chapter 4: Operating Systems
Introduction to Computer Systems
CSE 542: Operating Systems
What is a Thread? A thread is similar to a process, but it typically consists of just the flow of control. Multiple threads use the address space of a.
Presentation transcript:

Qing Cao, Tarek Abdelzaher(UIUC), John Stankovic, Kamin Whitehouse (UVA), Liqian Luo (MSR)

Outline Requirements for debugging WSN Existing techniques Declarative Tracepoints Debugging System Evaluation Conclusions 2

Requirements for Debugging WSN Watch program state to diagnose abnormal behavior Watch the right variables at the right time Visibility into program state Resource constraints 3

Existing Techniques EnviroLog Event recording and replay Compiler modify source code to record function called time and parameter START_RECORD, START_REPLAY NodeMD To diagnose node-level faults Stack overflow, livelock, deadlock, application-specific faults Sympathy Trace the source of failure: node, communication, sink Collect metrics and analyze at the sink StackGuard Stack corruption, buffer overrun Canary Word 4

Design of DT Application-independent No need of source level modification Isolate debugging code from app code Debugging without re-compilation or re-deployment Programmable TraceSQL debugging laguage, declarative similar to SQL Location of tracepoints and associated actions Trace yield() FROM syscall.c Execution { RECORD yield();} Where { READ msend->lock FROM radio.c == 1; } 5

Architecture of DT 6

TraceSQL Keywords 7

TraceSQL Example Of StackGuard 8

Code Examples 9

Implementation 10

LiteOS Separate compilation of kernel and user apps Applications as individual threads Each thread has non-overlapping flash and RAM Memory addresses of app provide by a.lss file generated from app trace retrieval from nodes by LiteOS shell file copy command Atmega128 processor support modifying binary code at runtime 11

Dynamic Tracepoint Instrumentation 12

tradeoffs Tracepoint actions focus on global variable operations Local variable needs compiler dependent analysis Does not address compiler specific optimization 13

Evaluation--overhead CPU slowdown Memory Overhead RAM: blank tracepoint(42bytes), file logging racepoint(332bytes) Flash: increase with number of tracepoints, but < 4K with less than 15 tracepoints Flash lifetime File system:15 tps, hold 280 secs Flash memory lifetime 10k write/erase cycles on MicaZ 14

TraceSQL expressiveness-EnviroLog 15

TraceSQL expressiveness-NodeMD 16

TraceSQL expressiveness-Sympathy 17

Case Studies Bug 1: Node reboot after changing the compiler optimization level Bug 2: User apps put into memory_corrupted state once executed Bug 3: Unexpected corruption of communication protocol neighbor table 18

Conclusions Declarative tracepoint debugging system Application independent and programmable tracepoints at runtime TraceSQL is expressive Real case verification 19