Precise and Efficient Garbage Collection in VMKit with MMTk
|
|
- Donna Horn
- 8 years ago
- Views:
Transcription
1 Precise and Efficient Garbage Collection in VMKit with MMTk LLVM Developer s Meeting Nicolas Geoffray nicolas.geoffray@lip6.fr
2 2 Background VMKit: Java and.net on top of LLVM Uses LLVM s JIT for executing code Uses Boehm for GC Performance bottlenecks No dynamic optimization Conservative GC
3 Time normalized to VMKit CPU-intensive Benchmarks (JGF) MacOSX x X86_ GHz 12Go 0 series lufact heapsort crypt fft sor matmult VMKit Jikes Sun 3
4 Time normalized to VMKit VM-intensive Benchmarks (Dacapo) MacOSX x X86_ GHz 12Go 0 antlr fop luindex bloat jython pmd VMKit Jikes Sun 4
5 5 Execution Overheads antlr fop luindex 7% 7% 10% 11% 65% 9% 2% 8% 6% 75% 5% 2% 8% 12% 73% bloat jython pmd 18% 5% 7% 17% 53% 24% 4% 12% 11% 49% 4% 20% 1% 20% 17% 38% Application Allocations Collections System.arraycopy Interface calls Others
6 6 Execution Overheads antlr fop luindex 7% 7% 10% 11% 65% 2% 9% 8% 6% 21% 14% 20% 75% 5% 2% 8% 12% 73% bloat jython pmd 7% 5% 35% 18% 53% 23% 24% 4% 49% 37% 17% 12% 11% 4% 20% 1% 20% 17% 38% Application Allocations Collections System.arraycopy Interface calls Others
7 7 Goal: replace Boehm with MMTk MMTk is JikesRVM s GC Framework for writing GCs Multiple GC Implementations (Copying, Mark and trace, Immix) Copying collectors require precise stack scanning Locate pointers on the stack
8 8 But... it s in Java? Yes, but nothing to be afraid of: Use of Magic tricks No use of runtime features (exceptions, inheritance) No use of standard library Use VMKit s AOT compiler Transform MMTk into a.bc file
9 9 Outline Introduction Precise garbage collection Compiling MMTk with VMJC Putting it all together What s left
10 Introduction Precise garbage collection Compiling MMTk with VMJC Putting it all together What s left 10
11 11 Precise Garbage Collection Write code that locates pointers in the stack llvm.gcroot in JIT-generated code llvm.gcroot in VMKit s runtime written in C++ Use LLVM s GC framework to generate stack maps Caml stack maps for llvm-g++ generated code JIT stack maps for JIT-generated code
12 12 Precise Garbage Collection App.java VMKit.cpp llvm-g++ VMKit.exe Caml Stackmap JITted App Stackmaps for precise stack scanning JIT Stackmap
13 13 Stack Scanning Problem: interweaving of different kinds of functions Application s managed (Java or C#) functions: trusted VMKit s C++ functions: trusted Application s JNI functions: untrusted Solution: create a side-stack for frame addresses Updated upon entry of a kind of method VMKit knows the kind of each frame on the thread stack
14 14 Type of methods Trusted Has a stack map, so can manipulate objects (llvm.gcroot) Saves frame pointer (llvm::noframepointerelim) Untrusted Has no stack map, so should not manipulate objects May not save the frame pointer
15 15 Stack Scanning Example (1) VMKit.main (C++)
16 16 Stack Scanning Example (1) push(enter Java) VMKit.main (C++) App.main (Java)
17 17 Stack Scanning Example (1) push(enter Java) VMKit.main (C++) App.main (Java) App.function (Java)
18 18 Stack Scanning Example (1) push(enter Java) push(enter native) VMKit.main (C++) App.main (Java) App.function (Java) VMKit.runtime (C++)
19 19 Stack Scanning Example (1) push(enter Java) push(enter native) push(enter Java) VMKit.main (C++) App.main (Java) App.function (Java) VMKit.runtime (C++) App.function2 (Java)
20 20 Stack Scanning Example (1) push(enter Java) VMKit.main (C++) App.main (Java) App.function (Java) push(enter native) push(enter Java) fp VMKit.runtime (C++) App.function2 (Java)
21 21 Stack Scanning Example (1) push(enter Java) VMKit.main (C++) App.main (Java) App.function (Java) push(enter native) push(enter Java) fp fp VMKit.runtime (C++) App.function2 (Java)
22 22 Stack Scanning Example (1) push(enter Java) push(enter native) push(enter Java) fp fp fp VMKit.main (C++) App.main (Java) App.function (Java) VMKit.runtime (C++) App.function2 (Java)
23 23 Stack Scanning Example (1) push(enter Java) push(enter native) push(enter Java) fp fp fp fp VMKit.main (C++) App.main (Java) App.function (Java) VMKit.runtime (C++) App.function2 (Java)
24 24 Stack Scanning Example (2) VMKit.main (C++)
25 25 Stack Scanning Example (2) push(enter Java) VMKit.main (C++) App.main (Java)
26 26 Stack Scanning Example (2) push(enter Java) push(enter JNI) VMKit.main (C++) App.main (Java) App.function (JNI)
27 27 Stack Scanning Example (2) push(enter Java) push(enter JNI) VMKit.main (C++) App.main (Java) App.function (JNI) App.function2 (JNI)
28 28 Stack Scanning Example (2) push(enter Java) push(enter JNI) push(enter native) VMKit.main (C++) App.main (Java) App.function (JNI) App.function2 (JNI) VMKit.jniRuntime (Java)
29 29 Stack Scanning Example (2) push(enter Java) push(enter JNI) VMKit.main (C++) App.main (Java) App.function (JNI) saved fp App.function2 (JNI) push(enter native) VMKit.jniRuntime (Java)
30 30 Stack Scanning Example (2) push(enter Java) push(enter JNI) push(enter native) fp saved fp VMKit.main (C++) App.main (Java) App.function (JNI) App.function2 (JNI) VMKit.jniRuntime (Java)
31 31 Stack Scanning Example (2) push(enter Java) push(enter JNI) push(enter native) fp fp saved fp VMKit.main (C++) App.main (Java) App.function (JNI) App.function2 (JNI) VMKit.jniRuntime (Java)
32 32 Running the GC A precise GC scans the stacks at safe points: point during execution where the GC can know the type of each value on the stack
33 33 Single-threaded Application GC always triggered at safe points gcmalloc instrunctions Collector::collect()
34 34 Multi-threaded Application When entering a GC, must wait for all threads to join Don t use signals! or no safe point Use a thread-local variable to poll on method entry and backward branches Scan stacks of threads blocked in JNI or system calls
35 35 Application changes for GC public static void runloop(int a) { } while (a--) System.out.println( Hello World );
36 36 Application changes for GC public static void runloop(int a) { if (getthreadid().dogc) GC() while (a--) { System.out.println( Hello World ); if (getthreadid().dogc) GC() } }
37 Introduction Precise garbage collection Compiling MMTk with VMJC Putting it all together What s left 37
38 38 What is VMJC? An Ahead of Time compiler (AOT) Generates.bc files from.class files Use of llvm tools to generate platform-dependant files shared library: llc -relocation-model=pic + gcc executable: llc + ld vmkit + gcc
39 39 Goal: compile MMTk with VMJC Generate a.bc file that can be linked with VMKit Interface MMTK VMKit (e.g. threads synchronization, stack scanning) Interface VMKit MMTk (e.g. gcmalloc)
40 40 Why MMTk does not need a Java runtime? No use of runtime features synchronizations, exceptions, inheritance No use of standard library HashMap, LinkedList, ArrayList
41 41 How MMTk is manipulating pointers? Definition of Magic classes and methods Address, Word, Offset Word Address.loadWord(Offset) Magic classes and methods translated by the compiler [VEE 09] Similar mechanism than Inline ASM for C
42 42 Example (Frampton [VEE 09]) Inline ASM in C Magic in Java void prefetchobjects( OOP *buffer, int size) { for(int i=0;i < size;i++){ OOP o = buffer[i]; asm volatile( "prefetchnta (%0)" :: "r" (o)); } void prefetchobjects( ObjectReference[] buffer) { for(int i=0;i<buffer.length;i++) { ObjectReference current = buffer[i]; current.prefetch(); } }
43 Introduction Precise garbage collection Compiling MMTk with VMJC Putting it all together What s left 43
44 44 Option 1: Object File Create a.o file of MMTk gcc mmtk.o vmkit.o -o vmkit But... No inlining in application code
45 45 Option 2: LLVM Bitcode File Create a.bc file of MMTk vmkit (-load mmtk.bc) -java HelloWorld gcmalloc in C++ are linked at runtime Inlining in Java code Late binding of allocations in VMKit code new in applications are inlined with MMTk s malloc
46 46 Option 3: Everything is Bitcode Create a.bc file of MMTk Create a.bc file of VMKit Link, optimize and run
47 Introduction Precise garbage collection Compiling MMTk with VMJC Putting it all together What s left 47
48 48 What s left Implementing the MMTK VMKit interface Interactions between the GC and the VM In VMKit code, in managed code Run benchmarks! Finish implementation with read/write barriers Benchmark with different GCs from MMTk
49 49
S- RVM: a Secure Design for a High- Performance Java Virtual Machine. Yuval Yarom Katrina Falkner Dave Munro
S- RVM: a Secure Design for a High- Performance Java Virtual Machine Yuval Yarom Katrina Falkner Dave Munro Outline JikesRVM and Security S- RVM Design Performance Summary 2 JikesRVM A Meta- circular Java
More informationA Lazy Developer Approach: Building a JVM with Third Party Software
A Lazy Developer Approach: Building a JVM with Third Party Software Nicolas Geoffray, Gaël Thomas, Charles Clément and Bertil Folliot Université Pierre et Marie Curie - LIP6/CNRS/INRIA - Regal 04 avenue
More informationReplication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
More informationJava Coding Practices for Improved Application Performance
1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the
More informationFachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
More informationValidating Java for Safety-Critical Applications
Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore
More informationVirtual Machine Learning: Thinking Like a Computer Architect
Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2
More informationJava Performance Evaluation through Rigorous Replay Compilation
Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,
More informationLanguage Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc
Language Based Virtual Machines... or why speed matters by Lars Bak, Google Inc Agenda Motivation for virtual machines HotSpot V8 Dart What I ve learned Background 25+ years optimizing implementations
More informationAccurate and Efficient Object Tracing for Java Applications
Accurate and Efficient Object Tracing for Java Applications Philipp Lengauer 1 Verena Bitto 2 Hanspeter Mössenböck 1 1 Institute for System Software 2 Christian Doppler Laboratory MEVSS Johannes Kepler
More informationCSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
More informationCompiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
More informationHOTPATH VM. An Effective JIT Compiler for Resource-constrained Devices
HOTPATH VM An Effective JIT Compiler for Resource-constrained Devices based on the paper by Andreas Gal, Christian W. Probst and Michael Franz, VEE 06 INTRODUCTION INTRODUCTION Most important factor: speed
More informationLaTTe: An Open-Source Java VM Just-in Compiler
LaTTe: An Open-Source Java VM Just-in in-time Compiler S.-M. Moon, B.-S. Yang, S. Park, J. Lee, S. Lee, J. Park, Y. C. Chung, S. Kim Seoul National University Kemal Ebcioglu, Erik Altman IBM T.J. Watson
More informationGeneral Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
More informationPerformance Tools for Parallel Java Environments
Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau
More informationJonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
More informationPractical Performance Understanding the Performance of Your Application
Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance
More informationHow to Spice Up Java with the VTune Performance Analyzer?
How to Spice Up Java with the VTune Performance Analyzer? by Levent Akyil 1. Introduction Managed environments enable developers to introduce their products to the market quickly while reducing if not
More informationHow accurately do Java profilers predict runtime performance bottlenecks?
How accurately do Java profilers predict runtime performance bottlenecks? Master Software Engineering How accurately do Java profilers predict runtime performance bottlenecks? Peter Klijn: Student number
More informationApplication-only Call Graph Construction
Application-only Call Graph Construction Karim Ali and Ondřej Lhoták David R. Cheriton School of Computer Science, University of Waterloo Abstract. Since call graphs are an essential starting point for
More informationInterpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
More information14/05/2013 Ed Merks EDL V1.0 1
14/05/2013 Ed Merks EDL V1.0 1 Java Performance is Complex Write once run everywhere Java is slow because it s interpreted No, there are Just In Time (JIT) compilers Different hardware and platforms Different
More informationThe Use of Traces for Inlining in Java Programs
The Use of Traces for Inlining in Java Programs Borys J. Bradel and Tarek S. Abdelrahman Edward S. Rogers Sr. Department of Electrical and Computer Engineering University of Toronto, Toronto, Ontario,
More informationVirtual Machine Services: An Opportunity for Hardware Customization
Virtual Machine Services: An Opportunity for Hardware Customization Ting Cao, Stephen M Blackburn, and Kathryn S McKinley Australian National University Microsoft Research The University of Texas at Austin
More informationMobile Application Development Android
Mobile Application Development Android MTAT.03.262 Satish Srirama satish.srirama@ut.ee Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts
More informationUncovering Performance Problems in Java Applications with Reference Propagation Profiling
Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Department of Computer Science and Engineering, Ohio State University
More informationenterprise professional expertise distilled
Oracle JRockit The Definitive Guide Develop and manage robust Java applications with Oracle's high-performance Java Virtual Machine Marcus Hirt Marcus Lagergren PUBLISHING enterprise professional expertise
More informationZing Vision. Answering your toughest production Java performance questions
Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A
More informationIBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM
IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM IBM SDK, Java Technology Edition Version 1 IBM JVM messages IBM Note Before you use this information and the product it supports, read the
More informationBenefits of Using Java Virtual Machine Resources - Advantages and Disadvantages
Resource accounting and reservation in Java Virtual Machine Inti Gonzalez-Herrera, Johann Bourcier, Olivier Barais January 24, 2013 1 The Java platform The Java programming language was designed to developed
More informationTachyon: a Meta-circular Optimizing JavaScript Virtual Machine
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine Maxime Chevalier-Boisvert Erick Lavoie Marc Feeley Bruno Dufour {chevalma, lavoeric, feeley, dufour}@iro.umontreal.ca DIRO - Université de
More informationCharacteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
More informationOptimising Cloud Computing with SBSE
Optimising Cloud Computing with SBSE David R. White & Jeremy Singer {david.r.white, jeremy.singer}@glasgow.ac.uk University of Glasgow Monday 25 July 2011 OUTLINE VIRTUAL MACHINES OPPORTUNITIES FOR SBSE
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationA JIT Compiler for Android s Dalvik VM. Ben Cheng, Bill Buzbee May 2010
A JIT Compiler for Android s Dalvik VM Ben Cheng, Bill Buzbee May 2010 Overview View live session notes and ask questions on Google Wave: http://bit.ly/bizjnf Dalvik Environment Trace vs. Method Granularity
More informationTechniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior
Techniques for Real-System Characterization of Java Virtual Machine Energy and Power Behavior Gilberto Contreras Margaret Martonosi Department of Electrical Engineering Princeton University 1 Why Study
More informationJVM Tool Interface. Michal Pokorný
JVM Tool Interface Michal Pokorný JVM TI Inspect & control execution on JVM (profiling, debugging, monitoring, thread analysis, coverage, ) Higher-level interface: Java Platform Debugger Architecture JVM
More informationPort of the Java Virtual Machine Kaffe to DROPS by using L4Env
Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Alexander Böttcher ab764283@os.inf.tu-dresden.de Technische Universität Dresden Faculty of Computer Science Operating System Group July 2004
More informationThe DaCapo Benchmarks: Java Benchmarking Development and Analysis (Extended Version)
The DaCapo Benchmarks: Java Benchmarking Development and Analysis (Extended Version) Stephen M Blackburn α β, Robin Garner β, Chris Hoffmann γ, Asjad M Khan γ, Kathryn S McKinley δ, Rotem Bentzur ε, Amer
More informationWrite Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, rinard@lcs.mit.edu ABSTRACT We present
More informationEclipse Visualization and Performance Monitoring
Eclipse Visualization and Performance Monitoring Chris Laffra IBM Ottawa Labs http://eclipsefaq.org/chris Chris Laffra Eclipse Visualization and Performance Monitoring Page 1 Roadmap Introduction Introspection
More informationA staged static program analysis to improve the performance of runtime monitoring
A staged static program analysis to improve the performance of runtime monitoring Eric Bodden 1, Laurie Hendren 1, Ondřej Lhoták 2 1 McGill University, Montréal, Québec, Canada 2 University of Waterloo,
More informationGarbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
More informationCSC 551: Web Programming. Spring 2004
CSC 551: Web Programming Spring 2004 Java Overview Design goals & features platform independence, portable, secure, simple, object-oriented, Programming models applications vs. applets vs. servlets intro
More informationCrash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
More informationpicojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
More informationContents. Java - An Introduction. Java Milestones. Java and its Evolution
Contents Java and its Evolution Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering The University of Melbourne http:// www.buyya.com Java Introduction
More informationCSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
More informationCharacterizing Java Virtual Machine for More Efficient Processor Power Management. Abstract
Characterizing Java Virtual Machine for More Efficient Processor Power Management Marcelo S. Quijano, Lide Duan Department of Electrical and Computer Engineering University of Texas at San Antonio hrk594@my.utsa.edu,
More informationWebSphere Architect (Performance and Monitoring) 2011 IBM Corporation
Track Name: Application Infrastructure Topic : WebSphere Application Server Top 10 Performance Tuning Recommendations. Presenter Name : Vishal A Charegaonkar WebSphere Architect (Performance and Monitoring)
More informationRootbeer: Seamlessly using GPUs from Java
Rootbeer: Seamlessly using GPUs from Java Phil Pratt-Szeliga. Dr. Jim Fawcett. Dr. Roy Welch. Syracuse University. Rootbeer Overview and Motivation Rootbeer allows a developer to program a GPU in Java
More informationJava in sicherheits-kritischen Systemen: Das HIJA-Profil
Java in sicherheits-kritischen Systemen: Das HIJA-Profil... Korrektheitsnachweis für (echtzeit-) Java Anwendungen Dr. Fridtjof Siebert Director of Development, aicas GmbH Java Forum, Stuttgart, 7. Juli
More informationCloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
More informationA Fault-Tolerant Java Virtual Machine
A Fault-Tolerant Java Virtual Machine Jeff Napper, Lorenzo Alvisi, Harrick Vin Abstract We modify the Sun JDK1.2 to provide transparent faulttolerance for many Java applications using a primarybackup architecture.
More informationPC Based Escape Analysis in the Java Virtual Machine
PC Based Escape Analysis in the Java Virtual Machine Manfred Jendrosch, Gerhard W. Dueck, Charlie Gracie, and AndréHinkenjann Abstract Current computer architectures are multi-threaded and make use of
More informationVirtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.
Virtual machines Virtual machine systems can give everyone the OS (and hardware) that they want. IBM s VM provided an exact copy of the hardware to the user. Virtual Servers Virtual machines are very widespread.
More informationChapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
More informationEMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
More informationOASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition
OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition Celina Gibbs and Yvonne Coady University of Victoria Abstract It is becoming increasingly
More informationThe Design of the Inferno Virtual Machine. Introduction
The Design of the Inferno Virtual Machine Phil Winterbottom Rob Pike Bell Labs, Lucent Technologies {philw, rob}@plan9.bell-labs.com http://www.lucent.com/inferno Introduction Virtual Machine are topical
More informationVIProf: Vertically Integrated Full-System Performance Profiler
VIProf: Vertically Integrated Full-System Performance Profiler Hussam Mousa, Chandra Krintz, Lamia Youseff, and Rich Wolski Dept. of Computer Science University of California, Santa Barbara {husmousa,
More informationSystem Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
More informationINTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
More informationFree Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third
More informationJMF: Java Measurement Framework
JMF: Java Measurement Framework Language-supported Runtime Integrity Measurement Mark Thober The Johns Hopkins University Applied Physics Laboratory Laurel, MD, USA Mark.Thober@jhuapl.edu J. Aaron Pendergrass
More informationOnline Optimizations Driven by Hardware Performance Monitoring
Online Optimizations Driven by Hardware Performance Monitoring Florian T. Schneider Department of Computer Science ETH Zürich Zurich, Switzerland Mathias Payer Department of Computer Science ETH Zürich
More informationMulti-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
More informationFree Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman
More informationThesis Proposal: Improving the Performance of Synchronization in Concurrent Haskell
Thesis Proposal: Improving the Performance of Synchronization in Concurrent Haskell Ryan Yates 5-5-2014 1/21 Introduction Outline Thesis Why Haskell? Preliminary work Hybrid TM for GHC Obstacles to Performance
More informationOnline Subpath Profiling
Online Subpath Profiling David Oren, Yossi Matias, and Mooly Sagiv School of Computer Science, Tel-Aviv University, Israel {doren,matias,msagiv}@post.tau.ac.il Abstract. We present an efficient online
More informationApplication Performance Monitoring: Trade-Off between Overhead Reduction and Maintainability
Application Performance Monitoring: Trade-Off between Overhead Reduction and Maintainability Jan Waller, Florian Fittkau, and Wilhelm Hasselbring 2014-11-27 Waller, Fittkau, Hasselbring Application Performance
More informationPerformance Measurement of Dynamically Compiled Java Executions
Performance Measurement of Dynamically Compiled Java Executions Tia Newhall and Barton P. Miller University of Wisconsin Madison Madison, WI 53706-1685 USA +1 (608) 262-1204 {newhall,bart}@cs.wisc.edu
More informationImproving System Scalability of OpenMP Applications Using Large Page Support
Improving Scalability of OpenMP Applications on Multi-core Systems Using Large Page Support Ranjit Noronha and Dhabaleswar K. Panda Network Based Computing Laboratory (NBCL) The Ohio State University Outline
More informationExperimental Evaluation of Distributed Middleware with a Virtualized Java Environment
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC 11 December
More informationCompilers and Tools for Software Stack Optimisation
Compilers and Tools for Software Stack Optimisation EJCP 2014 2014/06/20 christophe.guillon@st.com Outline Compilers for a Set-Top-Box Compilers Potential Auto Tuning Tools Dynamic Program instrumentation
More informationCSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution
CSE 452: Programming Languages Java and its Evolution Acknowledgements Rajkumar Buyya 2 Contents Java Introduction Java Features How Java Differs from other OO languages Java and the World Wide Web Java
More informationDynamic Software Updates: A VM-centric Approach
Dynamic Software Updates: A VM-centric Approach Suriya Subramanian The University of Texas at Austin suriya@cs.utexas.edu Michael Hicks University of Maryland, College Park mwh@cs.umd.edu Kathryn S. McKinley
More informationJava Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
More informationConstant-Time Root Scanning for Deterministic Garbage Collection
Constant-Time Root Scanning for Deterministic Garbage Collection Fridtjof Siebert Institut für Programmstrukturen and Datenorganisation (IPD) Universität Karlsruhe Am Fasanengarten 5 76128 Karlsruhe, Germany
More informationAdvanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64
More informationPART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
More informationThe Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
More informationTo Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
More informationUsing jvmstat and visualgc to Solve Memory Management Problems
Using jvmstat and visualgc to Solve Memory Management Problems java.sun.com/javaone/sf 1 Wally Wedel Sun Software Services Brian Doherty Sun Microsystems, Inc. Analyze JVM Machine Memory Management Problems
More informationumps software development
Laboratorio di Sistemi Operativi Anno Accademico 2006-2007 Software Development with umps Part 2 Mauro Morsiani Software development with umps architecture: Assembly language development is cumbersome:
More informationLaboratorio di Sistemi Operativi Anno Accademico 2009-2010
Laboratorio di Sistemi Operativi Anno Accademico 2009-2010 Software Development with umps Part 2 Mauro Morsiani Copyright Permission is granted to copy, distribute and/or modify this document under the
More informationHabanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Evolution of Java Zoran Budimlić (Rice University) The Beginnings Sun Microsystems 1990 - Create a language for delivering programs on small electronic
More informationaicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011
aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011 2 aicas Group aicas GmbH founded in 2001 in Karlsruhe Focus: Embedded
More informationChapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationAn Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
More informationCan You Trust Your JVM Diagnostic Tools?
Can You Trust Your JVM Diagnostic Tools? Isaac Sjoblom, Tim S. Snyder, and Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris, MN 56267 sjobl014@umn.edu, snyde479@umn.edu,
More informationXBOX Performances XNA. Part of the slide set taken from: Understanding XNA Framework Performance Shawn Hargreaves GameFest 2007
XBOX Performances XNA Part of the slide set taken from: Understanding XNA Framework Performance Shawn Hargreaves GameFest 2007 XBOX Performances Overview XNA Architecture Context Switch and Batches XBOX
More informationObject-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines
Object-Relative Addressing: Compressed Pointers in 64-bit Java Virtual Machines Kris Venstermans Lieven Eeckhout Koen De Bosschere ELIS Department, Ghent University, Belgium Email: {kvenster,leeckhou,kdb}@elis.ugent.be
More informationBuilding iphone Applications with Flash CS5. Mike Chambers Principal Product Manager Developer Relations Flash Platform
Building iphone Applications with Flash CS5 Mike Chambers Principal Product Manager Developer Relations Flash Platform 1 What did Adobe announce at Max? 2 2 Two key announcements concerning developing
More informationThe Advantages of Dan Grossman CSE303 Spring 2005, Lecture 25
CSE 303: Concepts and Tools for Software Development Dan Grossman Spring 2005 Lecture 25 Memory-Management Idioms Dan Grossman CSE303 Spring 2005, Lecture 25 1 No tools or rule today Review: Java and C
More informationLecture 32: The Java Virtual Machine. The Java Virtual Machine
The University of North Carolina at Chapel Hill Spring 2002 Lecture 32: The Java Virtual Machine April 12 1 The Java Virtual Machine Java Architecture Java Programming Language Java Virtual Machine (JVM)
More informationArmed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors
2005 ACM Symposium on Applied Computing Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors Mourad Debbabi Computer Security Research Group CIISE, Concordia
More informationGenerational Real-Time Garbage Collection
Generational Real-Time Garbage Collection A Three-Part Invention for Young Objects Daniel Frampton 1, David F. Bacon 2, Perry Cheng 2, and David Grove 2 1 Australian National University, Canberra ACT,
More informationClojure and Android. Daniel Solano Gómez. Clojure/conj 2011. Sattvik Software & Technology Resources, Ltd. Co.
Sattvik Software & Technology Resources, Ltd. Co. Clojure/conj 2011 Clojure in Small Places Sattvik Software & Technology Resources, Ltd. Co. Clojure/conj 2011 Clojure to go Sattvik Software & Technology
More information