Determina, Inc. Persisting Information Across Application Executions Derek Bruening Determina, Inc.

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
IBM JIT Compilation Technology AOT Compilation in a Dynamic Environment for Startup Time Improvement Kenneth Ma Marius Pirvu Oct. 30, 2008.
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Enabling Efficient On-the-fly Microarchitecture Simulation Thierry Lafage September 2000.
Instant Profiling: Instrumentation Sampling for Profiling Datacenter Applications Hyoun Kyu Cho 1, Tipp Moseley 2, Richard Hank 2, Derek Bruening 2, Scott.
CS 153 Design of Operating Systems Spring 2015
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Multiprocessing Memory Management
Dynamic Binary Translation
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
A. Frank - P. Weisberg Operating Systems Introduction to Tasks/Threads.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 9 – Real Memory Organization and Management Outline 9.1 Introduction 9.2Memory Organization.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Microsoft ® Application Virtualization 4.5 Infrastructure Planning and Design Series.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
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.
INTRODUCTION TO PROGRAMMING STRUCTURE Chapter 4 1.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Jonathan Walpole (based on a slide set from Vidhya Sivasankaran)
A genda for Today What is memory management Source code to execution Address binding Logical and physical address spaces Dynamic loading, dynamic linking,
Michael Ernst, page 1 Collaborative Learning for Security and Repair in Application Communities Performers: MIT and Determina Michael Ernst MIT Computer.
MIPS coding. SPIM Some links can be found such as:
Threads, Thread management & Resource Management.
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.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming  To allocate scarce memory resources.
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.
MAPLD Reconfigurable Computing Birds-of-a-Feather Programming Tools Jeffrey S. Vetter M. C. Smith, P. C. Roth O. O. Storaasli, S. R. Alam
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Lawrence Livermore National Laboratory Pianola: A script-based I/O benchmark Lawrence Livermore National Laboratory, P. O. Box 808, Livermore, CA
Processes Introduction to Operating Systems: Module 3.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming.  To allocate scarce memory.
What is a Package? A package is an Oracle object, which holds other objects within it. Objects commonly held within a package are procedures, functions,
GFS. Google r Servers are a mix of commodity machines and machines specifically designed for Google m Not necessarily the fastest m Purchases are based.
Operating Systems Lecture 14 Segments Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of Software Engineering.
Replicating Memory Behavior for Performance Skeletons Aditya Toomula PC-Doctor Inc. Reno, NV Jaspal Subhlok University of Houston Houston, TX By.
1 Memory Management Chapter 7. 2 Memory Management Subdividing memory to accommodate multiple processes Memory needs to be allocated to ensure a reasonable.
1 Computer Systems II Introduction to Processes. 2 First Two Major Computer System Evolution Steps Led to the idea of multiprogramming (multiple concurrent.
COMMON INTERFACE FOR EMBEDDED SOFTWARE CONFIGURATION by Yatiraj Bhumkar Advisor Dr. Chung-E Wang Department of Computer Science CALIFORNIA STATE UNIVERSITY,
Full and Para Virtualization
CS510 Concurrent Systems Jonathan Walpole. RCU Usage in Linux.
1 J. Bradley Chen and Bradley D. D. Leupen Division of Engineering and Applied Sciences Harvard University Improving Instruction Locality with Just-In-Time.
Portals: Architecture & Best Practices Greg Hinkle February 2005.
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.
1 Advanced Digital Design Reconfigurable Logic by A. Steininger and M. Delvai Vienna University of Technology.
IPS Infrastructure Technological Overview of Work Done.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Hello world !!! ASCII representation of hello.c.
Continuous Delivery and Team Foundation Server 2013 Ognjen Bajić Ana Roje Ivančić Ekobit.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
ARM7 Architecture What We Have Learned up to Now.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Just-In-Time Compilation. Introduction Just-in-time compilation (JIT), also known as dynamic translation, is a method to improve the runtime performance.
F453 Module 8: Low Level Languages 8.1: Use of Computer Architecture.
Qin Zhao1, Joon Edward Sim2, WengFai Wong1,2 1SingaporeMIT Alliance 2Department of Computer Science National University of Singapore
Constraint Framework, page 1 Collaborative learning for security and repair in application communities MIT site visit April 10, 2007 Constraints approach.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
CSE 120 Principles of Operating
Chapter 9 – Real Memory Organization and Management
CompSci 725 Presentation by Siu Cho Jun, William.
OS Virtualization.
CSE 451: Operating Systems Autumn 2005 Memory Management
Prof. Leonardo Mostarda University of Camerino
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
MATERI PL/SQL Procedures Functions Packages Database Triggers
CSE 451: Operating Systems Autumn 2003 Lecture 9 Memory Management
Presentation transcript:

Determina, Inc. Persisting Information Across Application Executions Derek Bruening Determina, Inc.

Determina, Inc. 2 Dynamic vs. Static Program Analysis Dynamic analysis has advantages: –Access to entire app: libraries, generated code –Visibility on exact use cases (data used and control flow followed) –Applicable to any binary But…costly to do –Analysis cost is part of the runtime of the app –Analysis is applied every time the app is run

Determina, Inc. 3 Analysis Challenges Monitoring values of application variables is performance-intensive –Transparent instrumentation expensive on x86 –May need to monitor more than just function parameters Difficult to obtain enough data from short- lived applications

Determina, Inc. 4 Solution: Persistent Data Store results from prior application executions on disk Instrument different part of application in each run to keep costs down Combine results of each new run with stored data Once have enough data for analysis, send to central server

Determina, Inc. 5 Common Persistence Infrastructure Underlying execution engine can also benefit from persistence Can share the same validation and consistency models to ensure persisted state corresponds to current application code and behavior

Determina, Inc. 6 Managed Program Execution Engine Manipulate, at runtime, every instruction an arbitrary application executes, with: –Minimal performance penalty –Full transparency Exports interface for building custom tools No modifications to the hardware, operating system, or application Foundation of Determina Memory Firewall

Determina, Inc. 7 executable Native Execution library Alibrary B hardware platform APPLICATION

Determina, Inc. 8 Execute From Code Cache hardware platform code cache EXECUTION ENGINE executablelibrary Alibrary B APPLICATION

Determina, Inc. 9 basic block builder trace selector START dispatch context switch BASIC BLOCK CACHE TRACE CACHE non-control-flow instructions indirect branch lookup indirect branch stays on trace? Managed Program Execution Engine

Determina, Inc. 10 Non-Amortized Overhead In steady-state, overhead is amortized Overhead does show up in non-steady-state: –Application start-up –Short-lived applications –Extensive new code execution Not an issue on servers (long-running apps) A major issue on desktops –Startup time is directly visible and perceived as a slowdown

Determina, Inc. 11 Traces Combine frequently executed sequences of basic blocks into traces –Superior code layout –Eliminate indirect branches Traces provide ~10% performance boost on longer-running applications Will they help startup performance, with its once-executed code?

Determina, Inc. 12 Solution: Persistent Code Cache Goals: –Improve start-up performance –Support process-shared code caches Challenges: –Re-design data structures to support persistence –Efficiently validate persisted files –Safely allow persistent file updates

Determina, Inc. 13 Prototype Implementation Supports both no-traces mode and trace building mode Persists at end of run to application-specific files, loaded in for the next run Does not support relocation Validates only the module base

Determina, Inc. 14 Per-Module Caches hardware platform cache execache libAcache libB EXECUTION ENGINE executablelibrary Alibrary B APPLICATION

Determina, Inc. 15 Persistent Caches hardware platform cache execache libAcache libB EXECUTION ENGINE executablelibrary Alibrary B APPLICATION cache exe cache libA cache libB PERSISTED CACHES

Determina, Inc. 16 Persistent Caches hardware platform cache execache libAcache libB executablelibrary Alibrary B APPLICATION cache exe cache libA cache libB PERSISTED CACHES EXECUTION ENGINE

Determina, Inc. 17 Summary Persisting information across application executions has many advantages –Reduce overhead –Enable inter-process sharing –Enable accumulation of data from multiple runs for broader view of application with less instrumentation or in presence of varying workloads Many challenges remain