Skip to main content
Log in

A simple distributed garbage collector for distributed real-time Java

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

The use of real-time distribution middleware programmed with high-level languages like Java is becoming of increasing interest in next generation applications. Technology like Java’s Remote Method Invocation (RMI) paves the way towards these new distributed horizons. RMI offers many high-level abstractions useful for distributed application programmers to reduce their development times. One of these abstractions is a distributed garbage collector (DGC) that removes unreachable remote objects from the distributed ecosystem. However, in real-time Java, distributed garbage collection is underspecified and it introduces unbounded indeterminism on end-to-end real-time Java communications. This article analyzes this problem proposing a simple characterization for a predictable real-time distributed garbage collector (RT-DGC). The approach requires support from the middleware infrastructure that implements the abstraction but it also introduces bounded overhead. The article provides insight on the performance that RT-DGC offers to a distributed real-time Java application and the extra overheads due to the intrinsic cost of this abstraction.

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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

Similar content being viewed by others

References

  1. Rajkumar R, Lee I, Sha L, Stankovic J (2010) Cyber-physical systems: the next computing revolution. In: 47th ACM/IEEE design automation conference (DAC), p 731

  2. Kyoungho A, Shekhar S, Caglar F, Gokhale A, Sastry S (2014) A cloud middleware for assuring performance and high availability of soft real-time applications. J Syst Archit. doi:10.1016/j.sysarc.2014.01.009

  3. Fisher A, Jacobson C, Lee E, Murray R, Sangiovanni-Vincentelli A, Scholte E (2014) Industrial cyber-physical systems-iCyPhy. In: Complex systems design and management, pp 21–34

  4. Liu B, Chen Y, Blasch E, Pham k, Shen D, Chen G (2014) A holistic cloud-enabled robotics system for real-time video tracking application. In: Future information technology, pp 455–468

  5. Silvestre-Blanes J, Almeida L, Marau R, Pedreiras P (2011) Online QoS management for multimedia real-time transmission in industrial networks. IEEE Trans Ind Electron 58(3):1061–1071

    Article  Google Scholar 

  6. Balani R, Wanner L, Srivastava M (2014) Distributed programming framework for fast iterative optimization in networked cyber-physical systems. ACM Trans Embed Comput Syst 13(2):66

    Google Scholar 

  7. Park S, Kim J, Fox G (2014) Effective real-time scheduling algorithm for cyber-physical systems society. Future Gener Comput Syst 32:253–259

    Article  Google Scholar 

  8. Garcia-Valls M, Basanta-Val P (2014) Comparative analysis of two different middleware approaches for reconfiguration of distributed real-time systems. J Syst Archit 60 (2):221–233

  9. NIST (1999) Requirements for the real-time extensions for the Java platform. http://www.nist.gov/itl/div897/ctg/real-time/rtj-final-draft. Accessed July 2014

  10. RTEG (2001) The real-time specification for Java. http://www.rtsj.org/. Accessed July 2014

  11. Jensen E (2001) The distributed real-time specification for Java: an initial proposal. Comput Syst Sci Eng 16(2):65–70

    Google Scholar 

  12. Locke D, Andersen B, Brosgol B, Fulton M, Henties T, Hunt J, Nilsen K, Schoeberl M, Tokar J, Vitek J, Wellings A (2011) Safety-critical Java technology specification. https://jcp.org/en/jsr/detail?id=302. Accessed July 2014

  13. Dibble P, Wellings A (2009) JSR-282 status report. JTRES 2009:179–182

    Article  Google Scholar 

  14. Wellings A, Clark R, Jensen E, Wells D (2002) The distributed real-time specification for Java: a status report. In: Embedded systems conference, pp 13–22

  15. Anderson J, Jensen E (2006) Distributed real-time specification for Java: a status report digest. In: Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems, JTRES ’06, Paris, pp 3–9

  16. Borg A, Wellings A J (2003) A real-time RMI framework for the RTSJ. In: Proceedings of 15th euromicro conference on real-time systems, pp 238–246

  17. Basanta-Val P, Anderson J (2012) Using real-time Java in distributed systems: problems and solutions. In: Toledano TH, Wellings AJ (eds) Distributed and embedded real-time Java systems. Springer, New York, pp 23–45

  18. Basanta-Val P, Garcia-Valls M, Estevez-Ayres I (2009) Simple asynchronous remote invocations for distributed real-time Java. IEEE Trans Ind Inform 5(3):289–298

    Article  Google Scholar 

  19. Oracle (2004) Java remote method invocation. http://Java.sun.com/j2se/1.5/pdf/rmi-spec-1.5.0. Accessed July 2014

  20. Raman K, Yue Z, Panahi M, Colmenares JA, Klefstad R, Harmon T (2005) RTZen: highly predictable, real-time Java middleware for distributed and embedded systems. In: Middleware, pp 225–248

  21. Tejera D, Alonso A, de Miguel MA (2007) RMI-HRT: remote method invocation—hard real time. In: Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems, Vienna, Austria, pp 113–120

  22. Jones R, Lins E (1996) Garbage collection—algorithms for automatic dynamic memory management. Wiley, New York

  23. Jones R, Hosking A, Moss E (2011) The garbage collection handbook. The art of automatic memory management. Chapman & Hall CRC, London

    Google Scholar 

  24. Birrell A, Nelson G, Owicki S, Wobber E (1995) Network objects. Softw Pract Exp 25(4):87–130

    Article  Google Scholar 

  25. Wollrath A, Riggs R, Waldo J (1996) A distributed object model for the Java system. In: 2nd Conference on object-oriented technologies & systems (COOTS), UNESIX Association, pp 219–232

  26. Waldo J, Wyant G, Wollrath A, Kendall S (1996) A note on distributed computing. Mob Object Syst 1996:49–64

    Google Scholar 

  27. Bacon D, Cheng P, Rajan V (2003) The metronome: a simpler approach to garbage collection in real-time systems. In: OTM workshops, pp 466–478

  28. siebert F (2012) Parallel real-time garbage collection. In: Toledano T, Wellings A (eds) Distributed and embedded real-time Java systems. Springer, New York, pp 79–100

  29. Robertz S, Henriksson R (2003) Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems. LCTES 2003:93–102

    Google Scholar 

  30. Baker H (2009) The treadmill: real-time garbage collection without motion sickness. ACM Sigplan Not 27(3):66–70

  31. Nilsen K, Schmidt W (1996) US Patent No. 5,560,003. U.S. Patent and Trademark Office, Washington, DC

  32. Pizlo F, Petrank E, Steensgaard B (2008) A study of concurrent real-time garbage collectors. SIGPLAN Not 43(6):33–44

    Article  Google Scholar 

  33. Kalibera T, Jones R (2011) Handles revisited: optimising performance and memory costs in a real-time collector. ISMM 2011:89–98

    Google Scholar 

  34. Masmano M, Ripoll I, Balbastre P, Crespo A (2007) A constant-time dynamic storage allocator for real-time systems. Real Time Syst 40(2):149–179

    Article  Google Scholar 

  35. Anderson J, Ravindran B, Jensen E (2007) Consensus-driven distributable thread scheduling in networked embedded systems. In: Proceedings of the 2007 international conference on embedded and ubiquitous computing, EUC’07, Taipei, Taiwan, pp 247–260

  36. Basanta-Val P, Garcia-Valls M (2014) A distributed real-time Java-centric architecture for industrial systems. IEEE Trans Ind Inform 10(1):27–34

    Article  Google Scholar 

  37. Moreau L, Dickman P, Jones R (2005) Birrell’s distributed reference listing revisited. ACM Trans Program Lang Syst (TOPLAS) 2005:1344–2395

    Article  Google Scholar 

  38. Plainfosse D, Shapiro M (2005) Survey of distributed garbage collection techniques. Mem Manag 2005:211–249

    Google Scholar 

  39. Mohan V (2014) Birrel’s distributed reference listing algorithm formalization and implementation. http://www.vikrammohan.com/uploads/GC. Accessed July 2014

  40. Klein M (1993) A practitioner’s handbook for real-time analysis: guide to rate monotonic analysis for real-time systems. The Kluwer, Kluwer international series in engineering and computer science, New York

    Book  Google Scholar 

  41. Wilhelm R, Engblom J, Ermedahl A, Holsti N, Thesing S, Whalley D, Bernat G, Ferdinand C, Heckmann R, Mitra T (2009) The worst-case execution-time problem overview of methods and survey of tools. ACM Trans Embed Comput Syst (TECS) 7(3):36

    Google Scholar 

  42. Sha L, Abdelzaher T, Årzén K, Cervin A, Baker T, Burns A, Buttazzo G, Caccamo M, Lehoczky J, Mok A (2004) Real time scheduling theory: a historical perspective. Real Time Syst 28 2(3):101–155

  43. Tindell K, Clark J (1994) Holistic schedulability analysis for distributed hard real-time systems. Microproces Microprogram 40(2–3):117–134

    Article  Google Scholar 

  44. González-Harbour Palencia-Gutirrez J (1998) Schedulability analysis for tasks with static and dynamic offsets. RTSS 1998:26–37

    Google Scholar 

  45. Sun J, Gardner M, Liu J (1997) Bounding completion times of jobs with arbitrary release times, variable execution times and resource sharing. IEEE Trans Softw Eng 23(10):603–615

    Article  Google Scholar 

  46. Autosar (2012) Release 4.0 overview and revision history. http://www.autosar.org. Accessed July 2014

  47. Garcia-Valls M, Basanta-Val P (2013) A real-time perspective of service composition: key concepts and some contributions. J Syst Archit (Part D) 59(10):1414–1423

  48. Basanta-Val P, Garcia-Valls M, Baza-Cunado M (2014) A simple data mulling protocol. IEEE Trans Ind Inform 10(2):895–902

    Article  Google Scholar 

  49. Garcia-Valls M, Rodriguez-Lopez I, Fernandez-Villar L (2013) iLAND: an enhanced middleware for real-time reconfiguration of service oriented distributed real-time systems. IEEE Trans Ind Inform 9(1):228–236

    Article  Google Scholar 

  50. Holgado-Terriza J, Viudez-Aivar J (2009) A flexible Java framework for embedded systems. In: Proceedings of the 7th international workshop on Java technologies for real-time and embedded systems, Madrid, Spain, pp 21–30

  51. Korsholm S, Sndergaard H, Ravn A (2013) A real-time Java tool chain for resource constrained platforms. Concurr Comput. doi:10.1002/cpe.3164

  52. Kersten R, van Gastel B, Shkaravska O, Montenegro M, Eekelen M (2013) ResAna: a resource analysis toolset for (real-time) Java. Concurr Comput. doi:10.1002/cpe.3154

Download references

Acknowledgments

The authors have to thank the anonymous reviewers of this article their efforts in improving the quality of this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pablo Basanta-Val.

Additional information

This work has been partly supported by the iLAND project (ARTEMIS- JU 100026) funded by the ARTEMIS JTU Call 1 and the Spanish Ministry of Industry (www.iland-artemis.org), ARTISTDesign NoE (IST-2007- 214373) of the EU 7th Framework Programme, and by the Spanish national project REM4VSS(TIN 2011-28339).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Basanta-Val, P., García-Valls, M. A simple distributed garbage collector for distributed real-time Java. J Supercomput 70, 1588–1616 (2014). https://doi.org/10.1007/s11227-014-1259-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-014-1259-x

Keywords

Navigation