Thread-based, region-based automatic memory management

Loading...
Thumbnail Image

Date

2017

Journal Title

Journal ISSN

Volume Title

Publisher

University of New Brunswick

Abstract

Automatic memory management offers programmers an alternative to unmanaged languages. It unburdens some of the low-level control from human hands. However, this comes at the price of performance. Virtual machines using automatic memory management are prone to long system pause times that degrade the overall performance of the system. Often, the culprit is a mismatch between the nature of the application and the chosen garbage collection algorithm. There are algorithms that already address this issue, such as the Balanced Garbage Collection (BGC) by IBM, which uses region based memory management. Region-based memory management introduces the flexibility of being able to select areas of the heap for collection that will potentially result in the best "return-on-investment." With the advent of multicore processors, we extend this approach to take advantage of the potential concurrency that can happen among threads during garbage collection. By assigning entire regions to a thread, we are able to select a set of regions that belong to only one thread thereby potentially allowing other threads to continue execution during garbage collection. We also define thread relationships that will identify other threads that may have to be stopped as well when collection is being done on a given thread.

Description

Keywords

Citation