IGOR: A System for Program Debugging via Reversible Execution Stuart I. Feldman Channing B. Brown slides made by Qing Zhang.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Memory Protection: Kernel and User Address Spaces  Background  Address binding  How memory protection is achieved.
Mehmet Can Vuran, Instructor University of Nebraska-Lincoln Acknowledgement: Overheads adapted from those provided by the authors of the textbook.
Systems Software.
Operating-System Structures
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Modified from Silberschatz, Galvin and Gagne ©2009 Lecture 7 Chapter 4: Threads (cont)
Threads Irfan Khan Myo Thein What Are Threads ? a light, fine, string like length of material made up of two or more fibers or strands of spun cotton,
Chapter 4: Threads. Overview Multithreading Models Threading Issues Pthreads Windows XP Threads.
1 Threads, SMP, and Microkernels Chapter 4. 2 Process: Some Info. Motivation for threads! Two fundamental aspects of a “process”: Resource ownership Scheduling.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Processes CSCI 444/544 Operating Systems Fall 2008.
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
1 Chapter 4 Threads Threads: Resource ownership and execution.
1 I/O Management in Representative Operating Systems.
03/05/2008CSCI 315 Operating Systems Design1 Memory Management Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Threads Chapter 4. Modern Process & Thread –Process is an infrastructure in which execution takes place  (address space + resources) –Thread is a program.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
System Calls 1.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
Operating System Chapter 7. Memory Management Lynn Choi School of Electrical Engineering.
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
SB ScriptBasic Introduction to ScriptBasic There are more people writing programs in BASIC than the number of people capable programming.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 2: Operating-System Structures Operating.
CIS250 OPERATING SYSTEMS Memory Management Since we share memory, we need to manage it Memory manager only sees the address A program counter value indicates.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
Seminar of “Virtual Machines” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010.
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Paging (continued) & Caching CS-3013 A-term Paging (continued) & Caching CS-3013 Operating Systems A-term 2008 (Slides include materials from Modern.
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Module 2.0: Threads.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Threads-Process Interaction. CONTENTS  Threads  Process interaction.
Processes 2 Introduction to Operating Systems: Module 4.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Beyond Application Profiling to System Aware Analysis Elena Laskavaia, QNX Bill Graham, QNX.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
Introduction to Operating Systems Concepts
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
Chapter 4: Threads.
Processes and threads.
Day 12 Threads.
Chapter 2: System Structures
Introduction to Operating Systems
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
Chapter 4: Threads.
Chapter 9: Virtual-Memory Management
Threads, SMP, and Microkernels
Chapter 2: System Structures
Mid Term review CSC345.
Threads Chapter 4.
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Lecture Topics: 11/1 General Operating System Concepts Processes
Threads and Concurrency
CHAPTER 4:THreads Bashair Al-harthi OPERATING SYSTEM
Outline Operating System Organization Operating System Examples
System calls….. C-program->POSIX call
CSE 153 Design of Operating Systems Winter 2019
SPL – PS1 Introduction to C++.
CS Introduction to Operating Systems
Presentation transcript:

IGOR: A System for Program Debugging via Reversible Execution Stuart I. Feldman Channing B. Brown slides made by Qing Zhang

Abstract Typical Debugging IGOR –Reverse Execution –Selective Searching of Execution History –Substitution

Introduction Typical Debugger –Dumping Octal dump –Breakpoint Trace Selective Checking

Example tree *p, * q; p = q; p-> right_child -> left_child = q; /*whoops*/ (cyclic tree) Possible delayed side effect Messy!

IGOR Prototype Debugging System Snapshots Reverse Execution Portable

Earlier System COPE –Require expensive support –Full interpretation –Generation of code with inversion options –Special recompilation to threaded code

Implementation Environment In C Motorola based DUNE (OS) –Supports Unix System V

Aims and Limitations “Almost” no effect Random Memory Access Irreversible I/O Synchronous

System Changes Compiler Library Loader Modified Kernel

Reviving Dead Programs Illegal Termination Core Image Restart from a Core Picks up at next C instruction Only works for some Situations –i.e. running out of stack space

Checkpoints Save State Periodic Logging Size and Time Idea - not to save every page for every checkpoint Save used pages –i.e. Demand paging

Memory Reference

Graph Analysis Unix “sort” program X – page dumped during the checkpoint Bottom of the Stack External variables Others aren’t as “nice”

Special System Calls Pagemod –List accessed memory pages Ualarm –Similar to Unix alarm syscall –Counts CPU time More costly Write protecting all pages Inadequate for debugging without ualarm

Dynamic Function Replacement Dynamically replace data elements Replace one or more C functions Restart execution from checkpoint Problems that arise

Dynamic Function Cont … Special Loader First few bytes replaced –(The old can be restored by replacing the initial bytes) Variables retain their value from previous version

Reversible Execution Selection Criterion Object Code Interpreter –i.e. x > 0; –Monotone value –Currently only comparison between a variable and a constant

Performance Compiler –17 % greater than standard “Typical” source file –37 % greater for compilation 4700-line program

Performance continued … Ran IGOR on existing functions –Make –C compiler’s main pass –Sort with 2853 line input file Table1 shows Execution overhead Table2 indicates the avg % of pages written out during execution.

Performance of Loader 4700-line program w/ 9 modules 4.1 s of CPU time ~21 % over the standard link

Future work Fancy Interface Second Storage Reduction Multiple Processors Extend to Asynchronous and Multi-Thread