Abstract
Virtual software execution environment, known as Virtual Machine (VM), has been gaining popularity through Java Virtual Machine (JVM) and Common Language Infrastructure (CLI). Given their advantages in portability, productivity, and safety, etc., applying VM to real-time embedded systems can leverage production cost, fast time-to-market, and software integrity. However, this approach can only become practical once the VM operations and application tasks are made schedulable jointly.
In this paper, we present a schedulable garbage collection algorithm applicable on real-time applications in CLI virtual machine environment. To facilitate the scheduling of real-time applications and garbage collection operations, we make the pause time due to garbage collection controllable, and the invocation of garbage collection predictable. To demonstrate the approach, a prototype for a schedulable garbage collection has been implemented in CLI execution environment. The garbage collection is carried out by a concurrent thread while meeting a targeted pause time and satisfying the memory requests of applications. A cost model of garbage collection is established based on measured WCET such that the execution time and overhead of garbage collection operations can be predicted. Finally, we illustrate a joint scheduling algorithm to meet the time and memory constraints of real-time systems.
Similar content being viewed by others
References
AICAS GmbH (2006) JamaicaVM. http://www.aicas.com/
Aonix North America, Inc. (2006) PERC. http://www.aonix.com/perc.html
Bacon DF, Cheng P, Rajan VT (2003a) Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java. In: LCTES, pp 81–92
Bacon DF, Cheng P, Rajan VT (2003b) The metronome: a simpler approach to garbage collection in real-time systems. In: OTM workshops, pp 466–478
Bacon DF, Cheng P, Rajan VT (2003c) A real-time garbage collector with low overhead and consistent utilization. ACM SIGPLAN Not 38(1):285–298
Bacon DF, Cheng P, Grove D, Hind M, Rajan VT, Yahav E, Hauswirth M, Kirsch CM, Spoonhower D, Vechev MT (2005) High-level real-time programming in Java. In: Proceedings of the fifth ACM international conference on embedded software, Jersey City, New Jersey (invited paper)
Boehm H-J, Weiser M (1988) Garbage collection in an uncooperative environment. Softw Pract Exp 18(9):807–820
Boehm H-J, Demers AJ, Shenker S (1991) Mostly parallel garbage collection. ACM SIGPLAN Not 26(6):157–164
Bollella G, Gosling J, Brosgol B, Dibble P, Furr S, Turnbull M (2000) The real-time specification for Java. Addison–Wesley, Reading
Brooks RA (1984) Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In: LISP and functional programming, pp 256–262
Cheng P, Blelloch GE (2001) A parallel real-time garbage collector. In: PLDI ’01: proceedings of the ACM SIGPLAN 2001 conference on programming language design and implementation. ACM, New York, pp 125–136
Dijkstra EW, Lamport L, Martin AJ, Scholten CS, Steffens EFM (1978) On-the-fly garbage collection: an exercise in cooperation. Commun ACM 21(11):966–975
Doligez D, Leroy X (1993) A concurrent, generational garbage collector for a multithreaded implementation of ml. In: POPL, pp 113–123
ECMA (2002) Ecma-335 common language infrastructure
Esmertec Inc. (1999) Jbed VM. http://www.esmertec.com/
GNU (2005) GNU compiler for Java. http://gcc.gnu.org/java/index.html
Goh O, Lee Y-H, Kaakani Z, Rachlin E (2005) A schedulable garbage collection for embedded applications in CLI. In: RTCSA, pp 189–192
Goh O, Lee Y-H, Kaakani Z, Rachlin E (2006) Integrated scheduling with garbage collection for real-time embedded applications in CLI. In: ISORC, pp 101–108
Henriksson R (1997) Predictable automatic memory management for embedded systems. In: OOPSLA’97 workshop on garbage collection and memory management
Jones RE (1999) Garbage collection: algorithms for automatic dynamic memory management. Wiley, New York
Joseph M, Pandya PK (1986) Finding response times in a real-time system. Comput J 29(5):390–395
Kim T, Shin H (2003) Scheduling-aware real-time garbage collection using dual aperiodic servers. In: RTCSA, pp 1–17
Kim T, Chang N, Kim N, Shin H (1999) Scheduling garbage collector for embedded real-time systems. In: Proceedings of the ACM SIGPLAN 1999 workshop on languages, compilers, and tools for embedded systems (LCTES’99), pp 55–64
Liu CL, Layland JW (1973) Scheduling algorithms for multiprogramming in a hard-real-time environment. JACM 20(1):46–61
Microsoft (2006) Microsoft SSCLI. http://msdn.microsoft.com/net/sscli
Microsoft Corp. (2005) CLI benchmarks. http://research.microsoft.com/~zorn/benchmarks
Microsoft Corp. (2006) Microsoft .NET. http://msdn.microsoft.com/net
Persson P (1999) Live memory analysis for garbage collection in embedded systems. In: LCTES ’99: proceedings of the ACM SIGPLAN 1999 workshop on languages, compilers, and tools for embedded systems. ACM, New York, pp 45–54
Pfeffer M, Ungerer T, Fuhrmann S, Kreuzinger J, Brinkschulte U (2004) Real-time garbage collection for a multithreaded java microcontroller. Real-Time Syst 26(1):89–106
Robertz SG, Henriksson R (2003) Time-triggered garbage collection: robust and adaptive real-time gc scheduling for embedded systems. In: LCTES, pp 93–102
Siebert F (2001) Constant-time root scanning for deterministic garbage collection. In: CC, pp 304–318
Sun Microsystems Inc. (2000) CLDC and the K virtual machine. http://java.sun.com/products/cldc/
Sun Microsystems Inc. (2004) The real-time java platform
Sun Microsystems Inc. (2005) Sun real-time Java system. http://java.sun.com/j2se/realtime
TimeSys Corporation (2004) Timesys linux/real-time user’s guide, version 2.0
Wilson PR (1992) Uniprocessor garbage collection techniques. In: IWMM, pp 1–42
Ximian (2005). MONO. http://www.go-mono.com
Yuasa T (1990) Real-time garbage collection on general-purpose machines. J Softw Syst 11(3):181–198
Yuasa T, Nakagawa Y, Komiya T, Yasugi M (2000) Return barrier. J Inf Process 41(9):87–99
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Goh, O., Lee, YH., Kaakani, Z. et al. Schedulable garbage collection in CLI virtual execution system. Real-Time Syst 36, 47–74 (2007). https://doi.org/10.1007/s11241-007-9016-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11241-007-9016-3