© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Minimally Conservative Garbage Collection.

Slides:



Advertisements
Similar presentations
An Implementation of Mostly- Copying GC on Ruby VM Tomoharu Ugawa The University of Electro-Communications, Japan.
Advertisements

Garbage collection David Walker CS 320. Where are we? Last time: A survey of common garbage collection techniques –Manual memory management –Reference.
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Chapter 16 Java Virtual Machine. To compile a java program in Simple.java, enter javac Simple.java javac outputs Simple.class, a file that contains bytecode.
P3 / 2004 Register Allocation. Kostis Sagonas 2 Spring 2004 Outline What is register allocation Webs Interference Graphs Graph coloring Spilling Live-Range.
1 CS 201 Compiler Construction Lecture 3 Data Flow Analysis.
ECE 454 Computer Systems Programming Compiler and Optimization (I) Ding Yuan ECE Dept., University of Toronto
Lecture 6: MIPS Instruction Set Today’s topic –Control instructions –Procedure call/return 1.
Pipeline Computer Organization II 1 Hazards Situations that prevent starting the next instruction in the next cycle Structural hazards – A required resource.
Space Efficient Conservative Garbage Collection Hans-Juergen Boehm, Xerox PARC Presented by Ryan Braud.
CSC 213 – Large Scale Programming. Today’s Goals  Consider what new does & how Java works  What are traditional means of managing memory?  Why did.
Efficiency of Algorithms
Program Representations. Representing programs Goals.
Bounding Space Usage of Conservative Garbage Collectors Ohad Shacham December 2002 Based on work by Hans-J. Boehm.
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. BPIA – Approver OATH Token.
Latency considerations of depth-first GPU ray tracing
Hastings Purify: Fast Detection of Memory Leaks and Access Errors.
CS 326 Programming Languages, Concepts and Implementation Instructor: Mircea Nicolescu Lecture 18.
OOPSLA 2003 Mostly Concurrent Garbage Collection Revisited Katherine Barabash - IBM Haifa Research Lab. Israel Yoav Ossia - IBM Haifa Research Lab. Israel.
Day 11 Processes. Operating Systems Control Tables.
“THREADS CANNOT BE IMPLEMENTED AS A LIBRARY” HANS-J. BOEHM, HP LABS Presented by Seema Saijpaul CS-510.
Precise Inter-procedural Analysis Sumit Gulwani George C. Necula using Random Interpretation presented by Kian Win Ong UC Berkeley.
1 Storage Registers vs. memory Access to registers is much faster than access to memory Goal: store as much data as possible in registers Limitations/considerations:
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Memory Allocation. Three kinds of memory Fixed memory Stack memory Heap memory.
Generational Stack Collection And Profile driven Pretenuring Perry Cheng Robert Harper Peter Lee Presented By Moti Alperovitch
Honors Compilers Addressing of Local Variables Mar 19 th, 2002.
Run-Time Storage Organization
Garbage collection David Walker CS 320. Where are we? Last time: A survey of common garbage collection techniques –Manual memory management –Reference.
Run time vs. Compile time
San Diego Supercomputer Center Performance Modeling and Characterization Lab PMaC Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation.
Garbage collection (& Midterm Topics) David Walker COS 320.
CS 333 Introduction to Operating Systems Class 12 - Virtual Memory (2) Jonathan Walpole Computer Science Portland State University.
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.
Exploiting Prolific Types for Memory Management and Optimizations By Yefim Shuf et al.
Precision Going back to constant prop, in what cases would we lose precision?
O RERATıNG S YSTEM LESSON 10 MEMORY MANAGEMENT II 1.
CS333 Intro to Operating Systems Jonathan Walpole.
Data Flow in Static Profiling Cathal Boogerd, Delft University, The Netherlands Leon Moonen, Simula Research Lab, Norway ?
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Self-guided tour Framework.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. XP Appendix.
Conrad Benham Java Opcode and Runtime Data Analysis By: Conrad Benham Supervisor: Professor Arthur Sale.
Chameleon Automatic Selection of Collections Ohad Shacham Martin VechevEran Yahav Tel Aviv University IBM T.J. Watson Research Center Presented by: Yingyi.
A Principled Approach to Nondeferred Reference-Counting Garbage Collection † Pramod G. Joisha HP Labs, Palo Alto † This work was done when the author was.
1 Records Record aggregate of data elements –Possibly heterogeneous –Elements/slots are identified by names –Elements in same fixed order in all records.
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. HP Confidential Level.
Real-Time systems By Dr. Amin Danial Asham.
GARBAGE COLLECTION IN AN UNCOOPERATIVE ENVIRONMENT Hans-Juergen Boehm Computer Science Dept. Rice University, Houston Mark Wieser Xerox Corporation, Palo.
CSC 213 – Large Scale Programming. Explicit Memory Management  Traditional form of memory management  Used a lot, but fallen out of favor  malloc /
CS412/413 Introduction to Compilers and Translators April 21, 1999 Lecture 30: Garbage collection.
Reference Counting. Reference Counting vs. Tracing Advantages ✔ Immediate ✔ Object-local ✔ Overhead distributed ✔ Very simple Trivial implementation for.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Getting to Blue Carpet.
GC Assertions: Using the Garbage Collector To Check Heap Properties Samuel Z. Guyer Tufts University Edward Aftandilian Tufts University.
LECTURE 19 Subroutines and Parameter Passing. ABSTRACTION Recall: Abstraction is the process by which we can hide larger or more complex code fragments.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. 1 Problem Summary Relevant.
Topic: Java Garbage Collection
Names and Attributes Names are a key programming language feature
Rifat Shahriyar Stephen M. Blackburn Australian National University
Swapping Segmented paging allows us to have non-contiguous allocations
Strategies for automatic memory management
Inlining and Devirtualization Hal Perkins Autumn 2011
Trace-based Just-in-Time Type Specialization for Dynamic Languages
Created By: Asst. Prof. Ashish Shah, J.M.Patel College, Goregoan West
Dynamic Memory And Objects
Run-time environments
Reference Counting.
Mooly Sagiv html:// Garbage Collection Mooly Sagiv html://
Presentation transcript:

© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Minimally Conservative Garbage Collection Hans-J. Boehm HP Labs

The problem Type accurate collectors −Less space overhead. −Better chance of space guarantees. −But require either Per instruction pointer information, or Safe point overheads Conservative collectors −No safe points. −No type information, or −Less type information (e.g. Barabash et al.) −Typically some space overhead (Hirzel, Diwan, Henkel). −Unbounded overhead possible, though unlikely. With limited conservativism requires an extra testing step.

A solution? Maintain precise pointer location info for −Heap objects. −Static Data. −Stack frames and registers, but only At call sites. For locations that always contain non-pointers or dead data during innermost loop. Type information doesn’t track rapidly changing information  much less of it. Can hope to guarantee that the probability of unbounded long term retention is zero. −Only pointer misidentification is for locations rapidly changing between pointer and non-pointer values. −With random scheduling, the probability of continuously observing the same false pointer should be zero.

Remaining issues What about rarely executed code in inner loops? −Locations may almost always contain non-pointers, but static descriptors are not constant in loop. −Treat as branches out of, and back into loop? But requires profile information? Cliff Click observed that we may need safe points for other reasons. −But for many systems we don’t. Nobody has actually implemented this. −Barabash et al., “Mostly Accurate Stack Scanning”, JVM 01 came closest.