GGrantIndex
← Search

ST-CRTS: Compiler and Run-Time Support for Memory Management Using Explicit Memory Reclamation

$374,915FY2006CSENSF

Cornell University, Ithaca NY

Investigators

Abstract

Background Memory management is a key component in the performance and reliability of virtually all software systems. Explicit reclamation of memory is error-prone, but efficient in time and space. On the other hand, automatic memory management via garbage collection eliminates memory errors, but requires a heavyweight run-time system that imposes a certain amount of run-time and memory overhead. The goal of this research is to explore novel compiler and run-time techniques for safe memory management with explicit memory deallocation and without garbage collection. Intellectual Merit The PI will develop a system that will provide memory management support for Java in the following forms: - It will augment Java bytecodes with primitive instructions for explicit memory reclamation; - It will provide novel compiler analyses and transformations to automatically augment programs with explicit memory deallocation - It will provide appropriate run-time support for explicit memory deallocation in an extended Java virtual machine. The proposed work will investigate two paradigms for memory management with explicit deallocation: - Region-based memory management, which groups data objects together into regions and deallocates all of the objects in each region at once. - Individual object deallocation, which reclaims storage for one object at a time. This approach will use a single operation free to deallocate one object instance at a time. -This research will leverage advanced static analyses such as pointer and shape analyses as key components of the proposed system to enable the accurate and safe reclamation of memory. Broader Impact This work proposes novel static analyses for pointer-based program structures, and their integration with novel program transformations, run-time techniques, and program verification approaches to address the memory management problem, an important problem in modern software systems. This research has the potential to lead to important advances in compiler technology. The PI proposes a broad dissemination of the developed tools, making them available to the public and to the research community; such tools have the potential to become useful to a broad class of consumers.In addition, he plans to use the results of this research to support several educational activities. First, it will serve as a research topic for his students, both graduate and undergraduate. Second, he intends to integrate the novel analyses developed as part of this research into the courses that he will teach: the undergraduate compiler course, and the advanced seminar on program analysis.

View original record on NSF Award Search →