Skip to main content
Log in

Scoped types and aspects for real-time Java memory management

  • Published:
Real-Time Systems Aims and scope Submit manuscript

Abstract

Real-time systems are notoriously difficult to design and implement, and, as many real-time problems are safety-critical, their solutions must be reliable as well as efficient and correct. While higher-level programming models (such as the Real-Time Specification for Java) permit real-time programmers to use language features that most programmers take for granted (objects, type checking, dynamic dispatch, and memory safety) the compromises required for real-time execution, especially concerning memory allocation, can create as many problems as they solve. This paper presents Scoped Types and Aspects for Real-Time Systems (STARS) a novel programming model for real-time systems. Scoped Types give programmers a clear model of their programs’ memory use, and, being statically checkable, prevent the run-time memory errors that bedevil the RTSJ. Adopting the integrated Scoped Types and Aspects approach can significantly improve both the quality and performance of a real-time Java systems, resulting in simpler systems that are reliable, efficient, and correct.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Andreae C, Noble J, Markstrum S, Millstein TD (2006) A framework for implementing pluggable type systems. In: Proceedings of the 21th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications (OOPSLA). ACM, New York, pp 57–74

    Chapter  Google Scholar 

  • Armbuster A, Baker J, Cunei A, Holmes D, Flack C, Pizlo F, Pla E, Prochazka M, Vitek J (2006) A real-time Java virtual machine with applications in avionics. In: ACM transactions in embedded computing systems (TECS)

  • Bacon DF, Chang P, Rajan VT (2003) A real-time garbage collector with low overhead and consistent utilization. In: ACM symposium on principles of programming languages (POPL), pp 285–298, January 2003

  • Bacon DF, Cheng P, Rajan VT (2003) The metronome: a simpler approach to garbage collection in real-time systems. In: Workshop on Java technologies for real-time and embedded systems (JTRES). OTM workshops, pp 466–478

  • Baker J, Cunei A, Flack C, Pizlo F, Prochazka M, Vitek J, Armbuster A, Pla E, Holmes D (2006) A real-time Java virtual machine for avionics. In: Proceedings of the 12th IEEE real-time and embedded technology and applications symposium (RTAS 2006). IEEE Computer Society, Los Alamitos

    Google Scholar 

  • Beebee WS Jr, Rinard M (2001) An implementation of scoped memory for real-time Java. In: Proceedings of the first international workshop on embedded software (EMSOFT)

  • Benowitz EG, Niessner AF (2003) A patterns catalog for RTSJ software designs. In: Workshop on Java technologies for real-time and embedded systems (JTRES). OTM workshops, pp 497–507

  • Bollella G, Reinholtz K (2002) Scoped memory. In: Proceedings of the fifth international symposium on object-oriented real-time distributed computing (ISORC02)

  • Bollella G, Gosling J, Brosgol B, Dibble P, Furr S, Turnbull M (2000) The real-time specification for Java. Addison–Wesley, Reading

    Google Scholar 

  • Bollella G, Canham T, Carson V, Champlin V, Dvorak D, Giovannoni B, Indictor M, Meyer K, Murray A, Reinholtz K (2003) Programming with non-heap memory in the real time specification for Java. In: Companion of the 18th annual ACM SIGPLAN conference on object-oriented programming, systems, languages, and applications. ACM, New York

    Google Scholar 

  • Bollella G, Delsart B, Guider R, Lizzi C, Parain F (2005) Mackinac: Making hotspot real-time. In: Eighth IEEE international symposium on object-oriented real-time distributed computing (ISORC). IEEE Computer Society, Los Alamitos, pp 45–54

    Chapter  Google Scholar 

  • Boyapati C, Salcianu A, Beebee W, Rinard M (2003) Ownership types for safe region-based memory management in real-time Java. In: ACM conference on programming language design and implementation, June 2003

  • Bracha G (2004) Pluggable type systems. In: OOPSLA 2004 workshop on revival of dynamic languages

  • Bracha G, Griswold D (1993) Strongtalk: typechecking smalltalk in a production environment. In: Proceedings of the ACM conference on object-oriented programming, systems, languages and applications (OOPSLA), September 1993

  • Cartwright R, Fagan M (1991) Soft typing. In: Proceedings of the ACM SIGPLAN 1991 conference on programming language design and implementation. ACM, New York, pp 278–292

    Chapter  Google Scholar 

  • Cherem S, Rugina R (2004) Region analysis and transformation for Java programs. In: Proceedings of the 4th international symposium on memory management, ISMM. ACM, New York, pp 85–96

    Chapter  Google Scholar 

  • Corsaro A, Schmidt D (2002) The design and performance of the jRate Real-Time Java implementation. In: The 4th international symposium on distributed objects and applications (DOA’02)

  • Deters M, Cytron R (2002) Automated discovery of scoped memory regions for real-time Java. In: Detlefs D (ed) ISMM’02 proceedings of the third international symposium on memory management. ACM SIGPLAN Notices, Berlin, June 2002, pp 25–35. ACM, New York

    Google Scholar 

  • Dvorak D, Bollella G, Canham T, Carson V, Champlin V, Giovannoni B, Indictor M, Meyer K, Murray A, Reinholtz K (2004) Project Golden Gate: towards real-time Java in space missions. In: Proceedings of the 7th IEEE international symposium on object-oriented real-time distributed computing (ISORC 2004), Vienna, Austria, 12–14 May 2004, pp 15–22. IEEE Computer Society, Los Alamitos

    Google Scholar 

  • Garbervetsky D, Nakhli C, Yovine S, Zorgati H (2005) Program instrumentation and run-time analysis of scoped memory in Java. Electr Notes Theor Comput Sci 113:105–121

    Article  Google Scholar 

  • Grossman D, Morrisett G, Jim T, Hicks M, Wang Y, Cheney J (2002) Region-based memory management in cyclone. In: ACM conference on programming language design and implementation (PLDI’03), Berlin, Germany, June 2002, pp 282–293

  • HIJA (2006) European High Integrity Java Project. www.hija.info

  • Hogg J (1991) Islands: aliasing protection in object-oriented languages. In: Proceedings of the OOPSLA ’91 conference on object-oriented programming systems, languages and applications

  • Igarashi A, Pierce BC, Wadler P (2001) Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans Program Lang Syst 23(3):396–450

    Article  Google Scholar 

  • Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An overview of AspectJ. In: Lecture notes in computer science, vol 2072, pp 327–355

  • Kwon J, Wellings A (2004) Memory management based on method invocation in RTSJ. In: OTM workshops 2004, Lecture notes in computer science, vol 3292, pp 33–345

  • Kwon J, Wellings A, King S (2002) Ravenscar-Java: a high integrity profile for real-time Java. In: Joint ACM Java grande/ISCOPE conference, November 2002

  • Nakhli C, Rippert C, Salagnac G, Yovine S (2006) Efficient region-based memory management for resource-limited real-time embedded systems. In: Implementation, compilation, optimization of object-oriented languages, programs and systems (ICOOOLPS), Nantes, France, July 2006

  • Niessner AF, Benowitz EG (2003) RTSJ memory areas and their affects on the performance of a flight-like attitude control system. In: Workshop on Java technologies for real-time and embedded systems (JTRES). OTM workshops, pp 508–519

  • Noble J, Weir C (2000) Small memory software: patterns for systems with limited memory. Addison–Wesley, Reading

    Google Scholar 

  • Noble J, Potter J, Vitek J (1998) Flexible alias protection. In: Proceedings of the 12th European conference on object-oriented programming (ECOOP), Brussels, Belgium, July 1998

  • Pizlo F, Fox J, Holmes D, Vitek J (2004) Real-time Java scoped memory: design patterns and semantics. In: Proceedings of the IEEE international symposium on object-oriented real-time distributed computing (ISORC’04), Vienna, Austria, May 2004

  • Sharp DC (2001) Real-time distributed object computing: ready for mission-critical embedded system applications. In: Proceeding of the 3rd international symposium on distributed objects and applications, DOA 2001, Rome, Italy, 17–20 September 2001. IEEE Computer Society, Los Alamitos, pp 3–4

    Chapter  Google Scholar 

  • Sharp DC, Pla E, Luecke KR, Hassan II RJ (2003) Evaluating real-time Java for mission-critical large-scale embedded systems. In: Proceedings of the 9th IEEE real-time and embedded technology and applications symposium (RTAS 2003), Toronto, Canada, May 27–30, 2003. IEEE Computer Society, Los Alamitos, pp 30–36

    Chapter  Google Scholar 

  • Spoonhower D, Auerbach J, Bacon DF, Cheng P, Grove D (2006) Eventrons: a safe programming construct for high-frequency hard real-time applications. In: Proceedings of the conference on programming language design and implementation (PLDI), pp 283–294

  • Tsang SL, Clarke S, Baniassad E (2004) An evaluation of aspect-oriented programming for java-based real-time systems development. In: Seventh IEEE international symposium on object-oriented real-time distributed computing (ISORC). IEEE Computer Society, Los Alamitos, pp 291–300

    Chapter  Google Scholar 

  • Wang N, Gill CD, Schmidt DC, Subramonian V (2004) Configuring real-time aspects in component middleware. In: CoopIS, DOA, and ODBAS. OTM confederated international conferences, vol 3291. Springer, Berlin, pp 1520–1537

    Google Scholar 

  • Wellings AJ, Puschner PP (2003) Evaluating the expressive power of the real-time specification for Java. Real-Time Syst 24(3):319–359

    Article  MATH  Google Scholar 

  • Zhao T, Noble J, Vitek J (2004) Scoped types for real-time java. In: Proceedings of the 25th IEEE international real-time systems symposium (RTSS04), Lisbon, Portugal, December 2004

  • Zhao T, Palsberg J, Vitek J (2006) Type-based confinement. J Funct Program 16(1):83–123

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jan Vitek.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Andreae, C., Coady, Y., Gibbs, C. et al. Scoped types and aspects for real-time Java memory management. Real-Time Syst 37, 1–44 (2007). https://doi.org/10.1007/s11241-007-9024-3

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11241-007-9024-3

Keywords

Navigation