ACM Home Page
Please provide us with feedback. Feedback
Ownership types for safe region-based memory management in real-time Java
Full text PdfPdf (375 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation table of contents
San Diego, California, USA
SESSION: Type systems table of contents
Pages: 324 - 337  
Year of Publication: 2003
ISBN:1-58113-662-5
Also published in ...
Authors
Chandrasekhar Boyapati  MIT Laboratory for Computer Science, Cambridge, MA
Alexandru Salcianu  MIT Laboratory for Computer Science, Cambridge, MA
William Beebee, Jr.  MIT Laboratory for Computer Science, Cambridge, MA
Martin Rinard  MIT Laboratory for Computer Science, Cambridge, MA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 68,   Citation Count: 36
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/781131.781168
What is a DOI?

ABSTRACT

The Real Time Specification for Java (RTSJ) allows a program to create real-time threads with hard real-time constraints. Real-time threads use region-based memory management to avoid unbounded pauses caused by interference from the garbage collector. The RTSJ uses runtime checks to ensure that deleting a region does not create dangling references and that real-time threads do not access references to objects allocated in the garbage-collected heap. This paper presents a static type system that guarantees that these runtime checks will never fail for well-typed programs. Our type system therefore 1) provides an important safety guarantee for real-time programs and 2) makes it possible to eliminate the runtime checks and their associated overhead.Our system also makes several contributions over previous work on region types. For object-oriented programs, it combines the benefits of region types and ownership types in a unified type system framework. For multithreaded programs, it allows long-lived threads to share objects without using the heap and without memory leaks. For real-time programs, it ensures that real-time threads do not interfere with the garbage collector. Our experience indicates that our type system is sufficiently expressive and requires little programming overhead, and that eliminating the RTSJ runtime checks using a static type system can significantly decrease the execution time of real-time programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
3
4
5
 
6
W. Beebee, Jr. Region-based memory management for Real-Time Java. MEng thesis, Massachusetts Institute of Technology, September 2001.
 
7
 
8
G. Bollella, B. Brosgol, P. Dibble, S. Furr, J. Gosling, D. Hardin, and M. Turnbull. The Real-Time Specification for Java. Addison-Wesley, 2000. Latest version available from http://www.rtj.org.
 
9
C. Boyapati. Ownership types for safe object-oriented programming. PhD thesis, Massachusetts Institute of Technology. In preparation.
10
11
 
12
C. Boyapati, B. Liskov, and L. Shrira. Ownership types and safe lazy upgrades in object oriented databases. Technical Report TR-858, MIT Laboratory for Computer Science, July 2002.
 
13
C. Boyapati, B. Liskov, L. Shrira, C. Moh, and S. Richman. Lazy modular upgrades in persistent object stores. Submitted for publication, March 2003.
14
15
 
16
M. V. Christiansen, F. Henglein, H. Niss, and P. Velschow. Safe region-based memory management for objects. Technical Report D-397, DIKU, University of Copenhagen, October 1998.
 
17
D. G. Clarke. Ownership and containment. PhD thesis, University of New South Wales, Australia, July 2001.
18
19
 
20
D. G. Clarke and T. Wrigstad. External uniqueness is unique enough. In European Conference for Object-Oriented Programming (ECOOP), July 2003.
 
21
 
22
23
24
25
26
 
27
M. Deters, N. Leidenfrost, and R. Cytron. Translation of Java to Real-Time Java using aspects. In International Workshop on Aspect-Oriented Programming and Separation of Concerns, August 2001.
28
29
30
 
31
O. Gheorghioiu. Statically determining memory consumption of real-time Java threads. MEng thesis, Massachusetts Institute of Technology, June 2002.
32
33
34
 
35
K. R. M. Leino and G. Nelson. Data abstraction and information hiding. Research Report 160, Compaq Systems Research Center, November 2000.
36
37
38
 
39
A. Salcianu. Pointer analysis and its applications for Java programs. MEng thesis, Massachusetts Institute of Technology, September 2001.
 
40
A. Salcianu, C. Boyapati, W. Beebee, Jr., and M. Rinard. A type system for safe region based memory management in Real-Time Java. Technical Report TR-869, MIT Laboratory for Computer Science, November 2002.
41
 
42
43

CITED BY  36

Collaborative Colleagues:
Chandrasekhar Boyapati: colleagues
Alexandru Salcianu: colleagues
William Beebee, Jr.: colleagues
Martin Rinard: colleagues