×

zbMATH — the first resource for mathematics

Scoped types and aspects for real-time Java memory management. (English) Zbl 1127.68015
Summary: 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.

MSC:
68N15 Theory of programming languages
68N25 Theory of operating systems
PDF BibTeX XML Cite
Full Text: DOI
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
[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)
[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
[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
[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
[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) · Zbl 1050.68513
[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
[8] Bollella G, Reinholtz K (2002) Scoped memory. In: Proceedings of the fifth international symposium on object-oriented real-time distributed computing (ISORC02)
[9] Bollella G, Gosling J, Brosgol B, Dibble P, Furr S, Turnbull M (2000) The real-time specification for Java. Addison–Wesley, Reading
[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
[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
[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
[13] Bracha G (2004) Pluggable type systems. In: OOPSLA 2004 workshop on revival of dynamic languages
[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
[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
[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
[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) · Zbl 1018.68593
[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
[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
[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 · Zbl 05415422 · doi:10.1016/j.entcs.2004.01.031
[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
[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
[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 · Zbl 05459286 · doi:10.1145/503502.503505
[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 · Zbl 0982.68552
[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
[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
[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
[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
[30] Noble J, Weir C (2000) Small memory software: patterns for systems with limited memory. Addison–Wesley, Reading
[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 · Zbl 0924.68038
[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
[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
[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
[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
[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
[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
[38] Wellings AJ, Puschner PP (2003) Evaluating the expressive power of the real-time specification for Java. Real-Time Syst 24(3):319–359 · Zbl 1020.68018 · doi:10.1023/A:1022816701710
[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 · Zbl 1127.68015
[40] Zhao T, Palsberg J, Vitek J (2006) Type-based confinement. J Funct Program 16(1):83–123 · Zbl 1091.68021 · doi:10.1017/S0956796805005691
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.