Dependable computing needs pervasive debugging Tim Harris

Slides:



Advertisements
Similar presentations
Multiple Processor Systems
Advertisements

Operating System.
Secure Operating Systems Lesson 2: OS Fundamentals.
Concurrent and Distributed Systems Introduction to CET306 Harry R. Erwin, PhD University of Sunderland.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Parallel Programming Motivation and terminology – from ACM/IEEE 2013 curricula.
Systems Software.
Introduction CSCI 444/544 Operating Systems Fall 2008.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Intro to Threading CS221 – 4/20/09. What we’ll cover today Finish the DOTS program Introduction to threads and multi-threading.
Operating Systems CS451 Brian Bershad
Distributed Systems Architectures
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Threads - Definition - Advantages using Threads - User and Kernel Threads - Multithreading Models - Java and Solaris Threads - Examples - Definition -
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
© 2004, D. J. Foreman 1 CS350 Operating Systems. © 2004, D. J. Foreman 2 Administrivia  Assignments ■ Homework on most chapters ■ Approximately 8 lab.
Lock Inference for Systems Software John Regehr Alastair Reid University of Utah March 17, 2003.
Figure 1.1 Interaction between applications and the operating system.
1 Last Class: Introduction Operating system = interface between user & architecture Importance of OS OS history: Change is only constant User-level Applications.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
Use with Computer Systems and Networks by Blundell, Khan, Lasebae and Jabbar ISBN © 2007 Middlesex University Press Computer Systems and.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Replay Debugging for Distributed Systems Dennis Geels, Gautam Altekar, Ion Stoica, Scott Shenker.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Advances in Language Design
What is Concurrent Programming? Maram Bani Younes.
OPERATING SYSTEMS Prof. Sujata Rao Lesson 3. Agenda 1. What is an operating system? 2. How have operating systems evolved? 3. Functions of Operating System.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster and powerful computers –shared memory model ( access nsec) –message passing.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
1 Distributed Systems: an Introduction G53ACC Chris Greenhalgh.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
CS 346 – Chapter 1 Operating system – definition Responsibilities What we find in computer systems Review of –Instruction execution –Compile – link – load.
Background: Operating Systems Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
Computers Operating System Essentials. Operating Systems PROGRAM HARDWARE OPERATING SYSTEM.
Multiple Processor Systems. Multiprocessor Systems Continuous need for faster computers –shared memory model ( access nsec) –message passing multiprocessor.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Seminar of “Virtual Machines” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010.
Concurrent Computing CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
CIS250 OPERATING SYSTEMS Chapter One Introduction.
Operating Systems CSE 411 Revision and final thoughts Revision and final thoughts Dec Lecture 33 Instructor: Bhuvan Urgaonkar.
1 Software Reliability in Wireless Sensor Networks (WSN) -Xiong Junjie
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
Match the following Operating System concepts with definition A to E.
Operating systems depend on device drivers to communicate with attached hardware. A device driver is a collection of subroutines written in a low-level.
Embedded Real-Time Systems
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Introduction to Operating Systems Concepts
Threads Cannot Be Implemented As a Library
Introduction to Operating Systems
Chapter 15, Exploring the Digital Domain
Chapter 4: Threads.
What is Concurrent Programming?
Multithreaded Programming
Operating Systems : Overview
Operating System Introduction.
Operating Systems : Overview
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Xen and the Art of Virtualization
Why Threads Are A Bad Idea (for most purposes)
Presentation transcript:

Dependable computing needs pervasive debugging Tim Harris

Outline  Motivation  Problems with existing debuggers  Pervasive debugging  System architecture  Demo

Motivation  One of the projects we’ve been working on is building lock-free data structures  Safe for multi-threaded use, but don’t use locks  Built from atomic read, write and CAS – lots of subtle interactions  Algorithms are short, but formal methods hard to apply here

Debugger problems  Usually only forward execution  Probe effects / heisenbugs  e.g. relaxed memory orderings or genuine-parallelism versus time-sliced  Support for concurrency  e.g. deterministic re-execution  Support for distribution  usually one debugger needed for each process  sometimes support for tracing across RPCs  network monitoring software, tcpdump, nProbe

Pervasive debugging  Present the user with a single interface to the entire system  All of the processes involved  All of the threads within them  All of the communication links  Execute the application in a virtualized and completely deterministic environment  At least we’d have bohrbugs rather than heisen- ones  Challenges  Correspondence between the real and virtual environments  Design of internal interfaces  Implementation efficiency

System architecture Currently GDB Remote stub Execution driver Instruction virtualizer Scheduler definition Instruction annotations Virtualized libraries Pervasive debugger User interface Program files

Demo CPU Write buffer Shared memory CPU Write buffer