Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.

Slides:



Advertisements
Similar presentations
Evaluating Indirect Branch Handling Mechanisms in Software Dynamic Translation Systems Jason D. Hiser, Daniel Williams, Wei Hu, Jack W. Davidson, Jason.
Advertisements

TDB: A Source-level Debugger for Dynamically Translated Programs Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania
Chapter FourModern Programming Languages1 Language Systems.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
PART 4: (2/2) Central Processing Unit (CPU) Basics CHAPTER 13: REDUCED INSTRUCTION SET COMPUTERS (RISC) 1.
B. Childers, M. L. Soffa, J. Beaver, L. Ber, K. Cammarata, J. Litman, J. Misurda Presented by: Priyanka Puri SOFTTEST: A FRAMEWORK FOR SOFTWARE.
The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.
1 Low Overhead Program Monitoring and Profiling Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania {naveen,
Aarhus University, 2005Esmertec AG1 Implementing Object-Oriented Virtual Machines Lars Bak & Kasper Lund Esmertec AG
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
Language Systems Chapter FourModern Programming Languages 1.
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schöberl.
JIT in webkit. What’s JIT See time_compilation for more info. time_compilation.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
Analyzing parallel programs with Pin Moshe Bach, Mark Charney, Robert Cohn, Elena Demikhovsky, Tevi Devor, Kim Hazelwood, Aamer Jaleel, Chi- Keung Luk,
1 Dimension: An Instrumentation Tool for Virtual Execution Environments Jing Yang, Shukang Zhou and Mary Lou Soffa Department of Computer Science University.
A Specification Language and Test Planner for Software Testing Aolat A. Adedeji 1 Mary Lou Soffa 1 1 DEPARTMENT OF COMPUTER SCIENCE, UNIVERSITY OF VIRGINIA.
Lecture 10 : Introduction to Java Virtual Machine
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
1 Introduction to JVM Based on material produced by Bill Venners.
Oct Using Platform-Specific Performance Counters for Dynamic Compilation Florian Schneider and Thomas Gross ETH Zurich.
CS533 Concepts of Operating Systems Jonathan Walpole.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
University of Virginia Department of Computer Science1 Applications of Software Dynamic Translation Jack Davidson University of Virginia February 27, 2002.
Scalable Support for Multithreaded Applications on Dynamic Binary Instrumentation Systems Kim Hazelwood Greg Lueck Robert Cohn.
LANGUAGE SYSTEMS Chapter Four Modern Programming Languages 1.
Adaptive Multi-Threading for Dynamic Workloads in Embedded Multiprocessors 林鼎原 Department of Electrical Engineering National Cheng Kung University Tainan,
Harmony: A Run-Time for Managing Accelerators Sponsor: LogicBlox Inc. Gregory Diamos and Sudhakar Yalamanchili.
Memory Hierarchy Adaptivity An Architectural Perspective Alex Veidenbaum AMRM Project sponsored by DARPA/ITO.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
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.
 Programming - the process of creating computer programs.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
Introduction Why are virtual machines interesting?
Common Language Runtime Introduction  The common language runtime is one of the most essential component of the.Net Framework.  It acts.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
The Execution System1. 2 Introduction Managed code and managed data qualify code or data that executes in cooperation with the execution engine The execution.
Dimension: An Instrumentation Tool for Virtual Execution Environments Master’s Project Presentation by Jing Yang Department of Computer Science University.
Enabling Control over Adaptive Program Transformation for Dynamically Evolving Mobile Software Validation Mike Jochen, Anteneh Anteneh, Lori Pollock University.
Introduction to Programming 1 1 2Introduction to Java.
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
Just-In-Time Compilation. Introduction Just-in-time compilation (JIT), also known as dynamic translation, is a method to improve the runtime performance.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Compilers: History and Context COMP Outline Compilers and languages Compilers and architectures – parallelism – memory hierarchies Other uses.
Applications Active Web Documents Active Web Documents.
Interpreted languages Jakub Yaghob
Introduction Enosis Learning.
2.1. Compilers and Interpreters
Real-time Software Design
Introduction Enosis Learning.
Mark Claypool and Jonathan Tanner Computer Science Department
JIT Compiler Design Maxine Virtual Machine Dhwani Pandya
Presentation transcript:

Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary Lou Soffa Dept. of Computer Science Dept. of Computer Science University of Pittsburgh University of Virginia Pittsburgh, PA USA Charlottesville, VA USA

2 Introduction Self managed systems Gather information online during execution Make decisions to adapt to run-time conditions Software dynamic translation Continuous compilation Code security Monitoring needs program instrumentation Goal: Instrumentation to support range of program interception, monitoring and control activities

3 Approach: FIST FIST: Framework for Instrumentation in Software dynamic Translators Describe & implement many algorithms Abstractions for instrumentation Flexible: Configurable for new uses, software dynamic translators & computing platforms (OS’s and machine architectures) Scalable: Different amounts of information, at different levels of granularity, at different times

4 Preliminary Instrumentation Framework High-level instrumentation mapped to low level Instrumentation done on instructions (binary) High-Level Instrumentation Mappings Instruction-Level Monitoring & Control Instruction-Level Instrumentation Source constructs Relate low level to program Event-Response Model Dynamic Instrumentation

5 Event-Response Model Events monitor for run-time conditions Responses react to generated events Program Response for Event Type A Response for Event Type B Events User-defined conditions Instrumentation probes Static: Where to attach in program Dynamic: Conditions to monitor Responses User-defined event handlers Data memory for information Can be dynamic: Remove probes, insert new probes, new events

6 Dynamic Instrumentation Implements the dynamic conditions for events Instrumentation code injected Dynamic instrumentation probe Inline-hit-always: Inserted before execution Hit-once: Run-time & removed immediately Hit-many: Run-time & removed explicitly Fast breakpoint Intercept program Replace original instruction by a jump to dynamic check

7 FIST Instances Strata-SPARC Binary dynamic translator Many applications: Security, binary translation, monitoring, fault detection, etc. SPARC RISC architecture & Solaris 9 Jikes RVM/x86 Integrated at binary level on JIT’ed code x86 CISC architecture & Linux Challenges: Instruction sets, memory for instrumentation code & data values, interactions with translators

8 FIST for Strata-SPARC Integration with Strata Translate does a callback Target independent services Instruction set – fixed length Hit-many: Execute replaced instruction in probe Hit-once: Copy instruction back to original location Branches – delay slots Instrumentation code & data Probe code dynamically generated into Strata’s translation cache Data memory allocated separately Strata Toolkit for building dynamic translators

9 FIST for Jikes RVM/x86 Just-in-Time compiler from bytecode to x86 FIST gains control on a new method load after JIT Instruction set – variable length Execute replaced instruction in original location Hit-many: Uses two fast breakpoints instruction probe: j probe Saved Instruction instruction j reinsert

10 FIST for Jikes RVM/x86 Multithreading Instrumentation state across threads Automatically managed data memory pool Change data pool on thread switch Garbage Collection Where to allocate pool & instrumentation code GC may not be able to track accesses Allocate separate memory buffer from OS

11 Preliminary Experimental Results Hit-onceHit-manyInline-hit-always Time (ns) Num. Instrs Hit-onceHit-manyInline-hit-always Time (ns) Num. Instrs Storage11 0 Strata-SPARC Instrumentation Probe Overhead Jikes/x86 Instrumentation Probe Overhead SPEC2K: Effective avg. hit-many cost 102 ns SPECjvm98: Effective avg. hit-many cost 1849 ns

12 Summary and Future Work Flexible & scalable binary-level instrumentation Demonstrated two instances Strata-SPARC software dynamic translator Jikes/x86 Java Research Virtual machine More self managing applications Language for instrumentation specification Translator to automatically map specification into instrumentation probes