Ole Agesen

dblp:73/6727 · DBLP profile ↗
← Back
15ranked-venue papers
13as first author
0since 2021 · last 2012
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 12 · 10 first-authorSystems, architecture and hardware · 3 · 2 first-authorTheory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
7 papers
Operating systems · 40% Runtime systems and virtual machines · 22% Programming languages and type systems · 14%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Cloud and datacenter computing · 74% Processor architecture and microarchitecture · 26%

Topics — the 17 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Operating systems
virtualization
0.112012
Software Techniques for Avoiding Hardware Virtualization Exits · USENIX ATC 2012
Cloud and datacenter computing › virtualization
hardware-assisted virtualization
0.112006
A comparison of software and hardware techniques for x86 virtualization · ASPLOS 2006
Cloud and datacenter computing
virtualization
0.112006
A comparison of software and hardware techniques for x86 virtualization · ASPLOS 2006
Processor architecture and microarchitecture › instruction set architecture
virtualization support
0.012012
Software Techniques for Avoiding Hardware Virtualization Exits · USENIX ATC 2012
Concurrent programming › synchronization
locking
0.011999
An Efficient Meta-Lock for Implementing Ubiquitous Synchronization · OOPSLA 1999
Concurrent programming
synchronization
0.011999
An Efficient Meta-Lock for Implementing Ubiquitous Synchronization · OOPSLA 1999
Runtime systems and virtual machines
garbage collection
0.011998
Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines · PLDI 1998
Runtime systems and virtual machines
binary translation
0.012006
A comparison of software and hardware techniques for x86 virtualization · ASPLOS 2006
Programming languages and type systems › type systems › polymorphism
generics
0.011997
Adding Type Parameterization to the Java Language · OOPSLA 1997
Programming languages and type systems
type systems
0.011997
Adding Type Parameterization to the Java Language · OOPSLA 1997
Compilers and program optimization › interprocedural optimization
inlining
0.011995
Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages · OOPSLA 1995
Runtime systems and virtual machines › virtual machine implementation
java virtual machine
0.021999
An Efficient Meta-Lock for Implementing Ubiquitous Synchronization · OOPSLA 1999
Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines · PLDI 1998
Software maintenance and evolution › software reengineering
application extraction
0.011994
Sifting Out the Gold · OOPSLA 1994
Programming languages and type systems
type inference
0.011994
Sifting Out the Gold · OOPSLA 1994
Program analysis
type analysis
0.011998
Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines · PLDI 1998
Compilers and program optimization › intermediate representation
bytecode
0.011997
Adding Type Parameterization to the Java Language · OOPSLA 1997
Programming languages and type systems › object-oriented programming
object-oriented languages
0.011995
Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages · OOPSLA 1995

Methods — techniques the papers use, named apart from their topics

trap-and-emulate · 0.1binary translation · 0.1thread-safe class libraries · 0.0monitors · 0.0type analysis · 0.0live variable analysis · 0.0class load-time expansion · 0.0static analysis · 0.0profile-based receiver class prediction · 0.0type inference · 0.0
YearPublicationVenuePosition
2012 Software Techniques for Avoiding Hardware Virtualization Exits
Ole Agesen, Jim Mattson, Radu Rugina, Jeffrey Sheldon
USENIX ATC1
2006 A comparison of software and hardware techniques for x86 virtualization
abstract
Until recently, the x86 architecture has not permitted classical trap-and-emulate virtualization. Virtual Machine Monitors for x86, such as VMware ® Workstation and Virtual PC, have instead used binary translation of the guest kernel code. However, both Intel and AMD have now introduced architectural extensions to support classical virtualization.We compare an existing software VMM with a new VMM designed for the emerging hardware support. Surprisingly, the hardware VMM often suffers lower performance than the pure software VMM. To determine why, we study architecture-level events such as page table updates, context switches and I/O, and find their costs vastly different among native, software VMM and hardware VMM execution.We find that the hardware support fails to provide an unambiguous performance advantage for two primary reasons: first, it offers no support for MMU virtualization; second, it fails to co-exist with existing software techniques for MMU virtualization. We look ahead to emerging techniques for addressing this MMU virtualization problem in the context of hardware-assisted virtualization.
Keith Adams, Ole Agesen
ASPLOS2
2002 DCAS-Based Concurrent Deques
Ole Agesen, David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Mark Moir, Nir Shavit, Guy L. Steele Jr.
Theory Comput. Syst.1
2000 Efficient Object Sampling via Weak References
abstract
The performance of automatic memory management may be improved if the policies used in allocating and collecting objects had knowledge of the lifetimes of objects. To date, approaches to the pretenuring of objects in older generations have relied on profile-driven feedback gathered from trace runs. This feedback has been used to specialize allocation sites in a program. These approaches suffer from a number of limitations. We propose an alternative that through efficient sampling of objects allows for on-line adaption of allocation sites to improve the efficiency of the memory system. In doing so, we make use of a facility already present in many collectors such as those found in Java™ virtual machines: weak references. By judiciously tracking a subset of allocated objects with weak references, we are able to gather the necessary statistics to make better object-placement decisions.
Ole Agesen, Alex Garthwaite
ISMM1
2000 DCAS-based concurrent deques
abstract
The computer industry is currently examining the use of strong synchronization operations such as double compare-and-swap (DCAS) as a means of supporting non-blocking synchronization on tomorrow's multiprocessor machines. However, before such a strong primitive will be incorporated into hardware design, its utility needs to be proven by developing a body of effective non-blocking data structures using DCAS. As part of this effort, we present two new linearizable non-blocking implementations of concurrent deques using the DCAS operation. The first uses an array representation, and improves on former algorithms by allowing uninterrupted concurrent access to both ends of the deque while correctly handling the difficult boundary cases when the deque is empty or full. The second uses a linked-list representation, and is the first non-blocking unbounded-memory deque implementation. It too allows uninterrupted concurrent access to both ends of the deque.
Ole Agesen, David Detlefs, Christine H. Flood, Alex Garthwaite, Paul Alan Martin, Nir Shavit, Guy L. Steele Jr.
SPAA1
1999 Inlining of Virtual Methods
David Detlefs, Ole Agesen
ECOOP2
1999 An Efficient Meta-Lock for Implementing Ubiquitous Synchronization
abstract
Programs written in concurrent object-oriented languages, especially ones that employ thread-safe reusable class libraries, can execute synchronization operations (lock, notify, etc.) at an amazing rate. Unless implemented with utmost care, synchronization can become a performance bottleneck. Furthermore, in languages where every object may have its own monitor, per-object space overhead must be minimized. To address these concerns, we have developed a meta-lock to mediate access to synchronization data. The meta-lock is fast (lock + unlock executes in 11 SPARC™ architecture instructions), compact (uses only two bits of space), robust under contention (no busy-waiting), and flexible (supports a variety of higher-level synchronization operations). We have validated the meta-lock with an implementation of the synchronization operations in a high-performance product-quality Java™ virtual machine and report performance data for several large programs.
Ole Agesen, David Detlefs, Alex Garthwaite, Ross C. Knippel, Y. S. Ramakrishna, Derek White
OOPSLA1
1998 Garbage Collection and Local Variable Type-Precision and Liveness in Java Virtual Machines
abstract
Full precision in garbage collection implies retaining only those heap allocated objects that will actually be used in the future. Since full precision is not computable in general, garbage collectors use safe (i.e., conservative) approximations such as reachability from a set of root references. Ambiguous roots collectors (commonly called "conservative") can be overly conservative because they overestimate the root set, and thereby retain unexpectedly large amounts of garbage. We consider two more precise collection schemes for Java virtual machines (JVMs). One uses a type analysis to obtain a type-precise root set (only those variables that contain references); the other adds a live variable analysis to reduce the root set to only the live reference variables. Even with the Java programming language's strong typing, it turns out that the JVM specification has a feature that makes type-precise root sets difficult to compute. We explain the problem and ways in which it can be solved.Our experimental results include measurements of the costs of the type and liveness analyses at load time, of the incremental benefits at run time of the liveness analysis over the type analysis alone, and of various map sizes and counts. We find that the liveness analysis often produces little or no improvement in heap size, sometimes modest improvements, and occasionally the improvement is dramatic. While further study is in order, we conclude that the main benefit of the liveness analysis is preventing bad surprises.
Ole Agesen, David Detlefs, J. Eliot B. Moss
PLDI1
1997 Adding Type Parameterization to the Java Language
abstract
Although the Java programming language has achieved widespread acceptance, one feature that seems sorely missed is the ability to use type parameters (as in Ada generics, C++ templates, and ML polymorphic functions or data types) to allow a general concept to be instantiated to one or more specific types. In this paper, we propose parameterized classes and interfaces in which the type parameter may be constrained to either implement a given interface or extend a given class. This design allows the body of a parameterized class to refer to methods on objects of the parameter type, without introducing any new type relations into the language. We show that these Java extensions may be implemented by expanding parameterized classes at class load time, without any extension or modification to existing Java bytecode, verifier or bytecode interpreter.
Ole Agesen, Stephen N. Freund, John C. Mitchell
OOPSLA1
1995 The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
Ole Agesen
ECOOP1
1995 Type Feedback vs. Concrete Type Inference: A Comparison of Optimization Techniques for Object-Oriented Languages
abstract
Two promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 SELF programs while keeping other factors constant.Our results show that both systems inline over 95% of all sends and deliver similar overall performance with one exception: SELF's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the comparable run-time performance, may influence the choice between type feedback and type inference.
Ole Agesen, Urs Hölzle
OOPSLA1
1995 Type Inference of SELF: Analysis of Objects with Dynamic and Multiple Inheritance
abstract
Abstract We have designed and implemented a type inference algorithm for the SELF language. The algorithm can guarantee the safety and disambiguity of message sends, and provide useful information for browsers and optimizing compilers. SELF features objects with dynamic inheritance. This construct has until now been considered incompatible with type inference because it allows the inheritance graph to change dynamically. Our algorithm handles this by deriving and solving type constraints that simultaneously define supersets of both the possible values of expressions and of the possible inheritance graphs. The apparent circularity is resolved by computing a global fixed‐point, in polynomial time. The algorithm has been implemented and can successfully handle the SELF benchmark programs, which exist in the ‘standard SELF world’ of more than 40,000 lines of code.
Ole Agesen, Jens Palsberg, Michael I. Schwartzbach
Softw. Pract. Exp.1
1994 Sifting Out the Gold
abstract
Integrated, dynamically-typed object-oriented programming environments offer many advantages, but have trouble producing small, self-contained applications. Recent advances in type inference have made it possible to build an application extractor for Self. The extractor was able to extract a medium-sized application in a few minutes. The extracted application runs in a tenth the space of the original environment. Except for extracting reflection and sends with computed selectors, the extractor runs without human intervention and fully preserves the behavior of the application.
Ole Agesen, David M. Ungar
OOPSLA1
1994 Constraint-Based Type Inference and Parametric Polymorphism
Ole Agesen
SAS1
1993 Type Inference of SELF
Ole Agesen, Jens Palsberg, Michael I. Schwartzbach
ECOOP1