Results 1 -
7 of
7
Derivation and evaluation of concurrent collectors
- In Proceedings of the Nineteenth European Conference on Object-Oriented Programming
, 2005
"... Abstract. There are many algorithms for concurrent garbage collection, but they are complex to describe, verify, and implement. This has resulted in a poor understanding of the relationships between the algorithms, and has precluded systematic concurrent garbage collection algorithm, and show how ex ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
Abstract. There are many algorithms for concurrent garbage collection, but they are complex to describe, verify, and implement. This has resulted in a poor understanding of the relationships between the algorithms, and has precluded systematic concurrent garbage collection algorithm, and show how existing snapshot and incremental update collectors, can be derived from the abstract algorithm by reducing precision. We also derive a new hybrid algorithm that reduces floating garbage while terminating quickly. We have implemented a concurrent collector framework and the resulting algorithms in IBM’s J9 Java virtual machine product and compared their performance in terms of space, time, and incrementality. The results show that incremental update algorithms sometimes reduce memory requirements (on 3 of 5 benchmarks) but they also sometimes take longer due to recomputation in the termination phase (on 4 of 5 benchmarks). Our new hybrid algorithm has memory requirements similar to the incremental update collectors while avoiding recomputation in the termination phase. 1
The Virtualized Virtual Machine: The Next Generation of Virtual Machine Technology
"... Virtual machine technology will continue to increase in importance, eventually spanning from motes to supercomputers. In this position paper, I describe my personal vision for the virtual machine of the future: a virtual machine that dynamically modifies all portions of itself, rather than just the ..."
Abstract
- Add to MetaCart
Virtual machine technology will continue to increase in importance, eventually spanning from motes to supercomputers. In this position paper, I describe my personal vision for the virtual machine of the future: a virtual machine that dynamically modifies all portions of itself, rather than just the compiled code, and that dynamically reconfigures the underlying hardware as well. 1.
Using Multiple Servers in Concurrent Garbage Collector
"... Object-oriented programming languages are being widely adopted as one of the most powerful languages due their flexibility and reusability. However, these languages suffer from memory mismanagement that could be critical especially in real-time and embedded systems. Automatic memory management throu ..."
Abstract
- Add to MetaCart
Object-oriented programming languages are being widely adopted as one of the most powerful languages due their flexibility and reusability. However, these languages suffer from memory mismanagement that could be critical especially in real-time and embedded systems. Automatic memory management through garbage collector handles this problem. Concurrent garbage collection based on sporadic or deferrable server is considered the most famous collectors in this area. In such algorithms, the garbage collection task is assumed to be the single aperiodic task in the system. When there are other different types of traffic, with short deadlines and long deadlines, the single server provides poor performance. The garbage collection task may have to wait till a less urgent or a higher deadline request finishes its execution that leads to an increase in the system memory requirement and perhaps a deadline miss of the garbage collection thread. This paper concentrates on minimizing the system memory requirement when there are multiple sources of events by introducing a new concurrent garbage collector. In
The Transactional Memory/Garbage . . .
, 2007
"... This essay presents remarkable similarities between transactional memory and garbage collection. The connections are fascinating in their own right, and they let us better understand one technology by thinking about the corresponding issues for the other. ..."
Abstract
- Add to MetaCart
This essay presents remarkable similarities between transactional memory and garbage collection. The connections are fascinating in their own right, and they let us better understand one technology by thinking about the corresponding issues for the other.
A Principled Approach to Nondeferred Reference-Counting Garbage Collection
"... Nondeferred reference-counting (RC) garbage collection is among the oldest memory-management methods. Despite offering unique advantages, little attention has been paid on how to correctly implement it for modern programming languages. This paper revisits this collection method and describes how to ..."
Abstract
- Add to MetaCart
Nondeferred reference-counting (RC) garbage collection is among the oldest memory-management methods. Despite offering unique advantages, little attention has been paid on how to correctly implement it for modern programming languages. This paper revisits this collection method and describes how to implement it for a modern object-oriented language in an optimizing compiler. The main contribution is a general algorithm that realizes one form of nondeferred RC collection for an object-oriented language having features such as exceptions, interior pointers, and object pinning. The algorithm abstracts the pertinent characteristics of instructions using concepts from data-flow analysis, such as def/use information, so that instructions are handled in a uniform manner, instead of in an ad hoc or special-case way. The abstracted information is used to systematically compute what increments and decrements to do, even in the presence of subtle conditions such as exceptional control flow. These techniques enabled us to compile a large suite of programs to use nondeferred RC collection. The paper also discusses the modifications that were necessary in the compiler for supporting the inserted RC operations, and reports measurements from a reference implementation.
JNI Light: An Operational Model for the Core JNI
"... Abstract. Through foreign function interfaces (FFIs), software components in different programming languages interact with each other in the same address space. Recent years have witnessed a number of systems that analyze FFIs for safety and reliability. However, lack of formal specifications of FFI ..."
Abstract
- Add to MetaCart
Abstract. Through foreign function interfaces (FFIs), software components in different programming languages interact with each other in the same address space. Recent years have witnessed a number of systems that analyze FFIs for safety and reliability. However, lack of formal specifications of FFIs hampers progress in this endeavor. We present a formal operational model, JNI Light (JNIL), for a subset of a widely used FFI—the Java Native Interface (JNI). JNIL focuses on the core issues when a high-level garbage-collected language interacts with a low-level language. It proposes abstractions for handling a shared heap, crosslanguage method calls, cross-language exception handling, and garbage collection. JNIL can directly serve as a formal basis for JNI tools and systems. The abstractions in JNIL are also useful when modeling other FFIs, such as the Python/C interface and the OCaml/C interface. 1
Dualities in Programming Languages
"... A duality can be thought of as a pair of concepts and a mapping between their terminology, such that substituting the concept-specific terminology turns a statement about one concept into a statement about the other. For example, in 1979, Lauer and Needham pointed out the duality between message pas ..."
Abstract
- Add to MetaCart
A duality can be thought of as a pair of concepts and a mapping between their terminology, such that substituting the concept-specific terminology turns a statement about one concept into a statement about the other. For example, in 1979, Lauer and Needham pointed out the duality between message passing ∼ = shared-memory concurrency [6]. The similarities in a duality enable cross-domain idea reuse. But equally important are the imperfections of dualities, which often trigger original research. We claim that thinking about dualities inspires innovation in programming languages. It is also a convenient excuse to play with fancy L ATEX multicolumn formatting. 1. Row-Based Layout ∼ = Column-Based Layout Being a widely-known, simple instance of a duality in programming languages, the duality between row- and column-based object layouts is a good introductory example. Note how most adjacent sentences below have a one-to-one correspondence. The row-based layout stores the values from The column-based layout stores the values from different fields, but the same object, of a class different objects, but the same field, of a class to-together as a contiguous chunk of memory. gether as a contiguous chunk of memory. This leads to good locality if most accesses are to a This leads to good locality if most accesses are to a

