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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Wellings AJ, Puschner PP (2003) Evaluating the expressive power of the real-time specification for Java. Real-Time Syst 24(3):319–359
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11241-007-9024-3