Abstract
Memory is a key resource in computer systems. Safety-critical systems often must operate for long periods of time with limited available memory. Programmers must therefore take great care to use memory sparingly and avoid programming errors. This chapter introduces the memory management API of the Safety Critical Java specification and presents a static technique for ensuring memory safety.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
JCP JSR-302, http://www.jcp.org/en/jsr/detail?id=302.
- 2.
This chapter is based on SCJ v0.71 from August 2010.
- 3.
The CD xopen-source distributions is at www.ovmj.net/cdx (Version miniCDj).
References
A. Corsaro, C. Santoro. The Analysis and Evaluation of Design Patterns for Distributed Real-Time Java Software. 16th IEEE International Conference on Emerging Technologies and Factory Automation, 2005.
C. Andreae, Y. Coady, C. Gibbs, J. Noble, J. Vitek, and T. Zhao. Scoped types and aspects for real-time Java memory management. Real-Time Syst., 37(1):1–44, 2007.
E. Benowitz and A. Niessner. A patterns catalog for RTSJ software designs. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), Lecture Notes in Computer Science, volume 2889, pages 497–507, 2003.
G. Bollella, T. Canham, V. Carson, V. Champlin, D. Dvorak, B. Giovannoni, M. Indictor, K. Meyer, A. Murray, and K. Reinholtz. Programming with non-heap memory in the real time specification for Java. In OOPSLA Companion, pages 361–369, 2003.
C. Boyapati, A. Salcianu, Jr. W. Beebee, and M. Rinard. Ownership types for safe region-based memory management in real-time Java. In PLDI’03: Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, pages 324–337, New York, NY, USA, 2003. ACM Press.
V. A. Braberman, F. Fernández, D. Garbervetsky, and S. Yovine. Parametric prediction of heap memory requirements. In ISMM’08: Proceedings of the 7th international symposium on Memory management, pages 141–150, New York, 2008. ACM.
G. Bracha, M. Odersky, D. Stoutamire, and P. Wadler. Making the future safe for the past: Adding Genericity to the Java programming language. In OOPSLA’98 Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 1998.
Z. Chen. Java Card technology for Smart Cards: architecture and programmer’s guide. Addison-Wesley, 2000.
P. Dibble and et al. The Real-Time Specification for Java 1.0.2. Available at http://www.rtsj.org/.
T. Kalibera, J. Hagelberg, F. Pizlo, A. Plsek, B. Titzer, and J. Vitek. Cdx: a family of real-time Java benchmarks. In JTRES’09: Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems, pages 41–50, New York, NY, USA, 2009. ACM.
K. Nilsen. A type system to assure scope safety within safety-critical Java modules. In Workshop on Java Technologies for Real-time and Embedded Systems (JTRES), 2006.
F. Pizlo, J. M. Fox, D. Holmes, and J. Vitek. Real-time Java scoped memory: Design patterns and semantics. In Proceedings of the 7th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2004), pages 101–110, 2004.
RTCA and EUROCAE. Software considerations in airborne systems and equipment certification. Radio Technical Commision for Aeronatics (RTCA), European Organization for Civil Aviation Electronics (EUROCAE), DO178-B, 1992.
T. Zhao, J. Noble, and J. Vitek. Scoped types for real-time Java. In Proceedings of the 25th IEEE International Real-Time Systems Symposium (RTSS’04), pages 241–251, Washington, DC, USA, 2004. IEEE Computer Society.
Acknowledgements
The author thanks the JSR-302 expert group (Doug Locke, B. Scott Andersen, Ben Brosgol, Mike Fulton, Thomas Henties, James Hunt, Johan Nielsen, Kelvin Nilsen, Martin Schoeberl, Joyce Tokar, Andy Wellings) for their work on the SCJ specification and their input and comments on the memory safety annotations presented in this chapter.
This work was partially supported by NSF grants CNS-0938256, CCF-0938255, CCF-0916310 and CCF-0916350.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Tang, D., Plsek, A., Vitek, J. (2012). Memory Safety for Safety Critical Java. In: Higuera-Toledano, M., Wellings, A. (eds) Distributed, Embedded and Real-time Java Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-8158-5_10
Download citation
DOI: https://doi.org/10.1007/978-1-4419-8158-5_10
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-8157-8
Online ISBN: 978-1-4419-8158-5
eBook Packages: EngineeringEngineering (R0)