Real-Time Systems

, Volume 37, Issue 1, pp 1–44 | Cite as

Scoped types and aspects for real-time Java memory management

  • Chris Andreae
  • Yvonne Coady
  • Celina Gibbs
  • James Noble
  • Jan Vitek
  • Tian Zhao
Article

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.

Keywords

Real-time systems Java virtual machine Memory management Ownership types 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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 CrossRefGoogle Scholar
  2. 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) Google Scholar
  3. 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 Google Scholar
  4. 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 Google Scholar
  5. 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
  6. 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) Google Scholar
  7. 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 Google Scholar
  8. Bollella G, Reinholtz K (2002) Scoped memory. In: Proceedings of the fifth international symposium on object-oriented real-time distributed computing (ISORC02) Google Scholar
  9. Bollella G, Gosling J, Brosgol B, Dibble P, Furr S, Turnbull M (2000) The real-time specification for Java. Addison–Wesley, Reading Google Scholar
  10. 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
  11. 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 CrossRefGoogle Scholar
  12. 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 Google Scholar
  13. Bracha G (2004) Pluggable type systems. In: OOPSLA 2004 workshop on revival of dynamic languages Google Scholar
  14. 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 Google Scholar
  15. 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 CrossRefGoogle Scholar
  16. 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 CrossRefGoogle Scholar
  17. 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) Google Scholar
  18. 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
  19. 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
  20. 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 CrossRefGoogle Scholar
  21. 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 Google Scholar
  22. HIJA (2006) European High Integrity Java Project. www.hija.info
  23. 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 Google Scholar
  24. 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 CrossRefGoogle Scholar
  25. 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 Google Scholar
  26. 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 Google Scholar
  27. 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 Google Scholar
  28. 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 Google Scholar
  29. 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 Google Scholar
  30. Noble J, Weir C (2000) Small memory software: patterns for systems with limited memory. Addison–Wesley, Reading Google Scholar
  31. 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 Google Scholar
  32. 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 Google Scholar
  33. 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 CrossRefGoogle Scholar
  34. 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 CrossRefGoogle Scholar
  35. 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 Google Scholar
  36. 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 CrossRefGoogle Scholar
  37. 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
  38. Wellings AJ, Puschner PP (2003) Evaluating the expressive power of the real-time specification for Java. Real-Time Syst 24(3):319–359 MATHCrossRefGoogle Scholar
  39. 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 Google Scholar
  40. Zhao T, Palsberg J, Vitek J (2006) Type-based confinement. J Funct Program 16(1):83–123 MATHCrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  • Chris Andreae
    • 3
  • Yvonne Coady
    • 1
  • Celina Gibbs
    • 1
  • James Noble
    • 3
  • Jan Vitek
    • 4
  • Tian Zhao
    • 2
  1. 1.University of VictoriaVictoriaCanada
  2. 2.University of Wisconsin–MilwaukeeMilwaukeeUSA
  3. 3.Victoria University of WellingtonWellingtonNew Zealand
  4. 4.Purdue UniversityWest LafayetteUSA

Personalised recommendations