Skip to main content
Log in

Schedulable garbage collection in CLI virtual execution system

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

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.

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

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Boehm H-J, Demers AJ, Shenker S (1991) Mostly parallel garbage collection. ACM SIGPLAN Not 26(6):157–164

    Article  Google Scholar 

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

    Google Scholar 

  • 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

    Chapter  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Google Scholar 

  • Joseph M, Pandya PK (1986) Finding response times in a real-time system. Comput J 29(5):390–395

    Article  MathSciNet  Google Scholar 

  • 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

    Article  MATH  MathSciNet  Google Scholar 

  • 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

    Chapter  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Yuasa T, Nakagawa Y, Komiya T, Yasugi M (2000) Return barrier. J Inf Process 41(9):87–99

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Okehee Goh.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

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

Keywords

Navigation