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.

















Similar content being viewed by others
Explore related subjects
Discover the latest articles and news from researchers in related subjects, suggested using machine learning.References
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
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
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
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
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
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
Park S, Kim J, Fox G (2014) Effective real-time scheduling algorithm for cyber-physical systems society. Future Gener Comput Syst 32:253–259
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
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
RTEG (2001) The real-time specification for Java. http://www.rtsj.org/. Accessed July 2014
Jensen E (2001) The distributed real-time specification for Java: an initial proposal. Comput Syst Sci Eng 16(2):65–70
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
Dibble P, Wellings A (2009) JSR-282 status report. JTRES 2009:179–182
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
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
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
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
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
Oracle (2004) Java remote method invocation. http://Java.sun.com/j2se/1.5/pdf/rmi-spec-1.5.0. Accessed July 2014
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
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
Jones R, Lins E (1996) Garbage collection—algorithms for automatic dynamic memory management. Wiley, New York
Jones R, Hosking A, Moss E (2011) The garbage collection handbook. The art of automatic memory management. Chapman & Hall CRC, London
Birrell A, Nelson G, Owicki S, Wobber E (1995) Network objects. Softw Pract Exp 25(4):87–130
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
Waldo J, Wyant G, Wollrath A, Kendall S (1996) A note on distributed computing. Mob Object Syst 1996:49–64
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
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
Robertz S, Henriksson R (2003) Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems. LCTES 2003:93–102
Baker H (2009) The treadmill: real-time garbage collection without motion sickness. ACM Sigplan Not 27(3):66–70
Nilsen K, Schmidt W (1996) US Patent No. 5,560,003. U.S. Patent and Trademark Office, Washington, DC
Pizlo F, Petrank E, Steensgaard B (2008) A study of concurrent real-time garbage collectors. SIGPLAN Not 43(6):33–44
Kalibera T, Jones R (2011) Handles revisited: optimising performance and memory costs in a real-time collector. ISMM 2011:89–98
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
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
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
Moreau L, Dickman P, Jones R (2005) Birrell’s distributed reference listing revisited. ACM Trans Program Lang Syst (TOPLAS) 2005:1344–2395
Plainfosse D, Shapiro M (2005) Survey of distributed garbage collection techniques. Mem Manag 2005:211–249
Mohan V (2014) Birrel’s distributed reference listing algorithm formalization and implementation. http://www.vikrammohan.com/uploads/GC. Accessed July 2014
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
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
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
Tindell K, Clark J (1994) Holistic schedulability analysis for distributed hard real-time systems. Microproces Microprogram 40(2–3):117–134
González-Harbour Palencia-Gutirrez J (1998) Schedulability analysis for tasks with static and dynamic offsets. RTSS 1998:26–37
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
Autosar (2012) Release 4.0 overview and revision history. http://www.autosar.org. Accessed July 2014
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
Basanta-Val P, Garcia-Valls M, Baza-Cunado M (2014) A simple data mulling protocol. IEEE Trans Ind Inform 10(2):895–902
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
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
Korsholm S, Sndergaard H, Ravn A (2013) A real-time Java tool chain for resource constrained platforms. Concurr Comput. doi:10.1002/cpe.3164
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
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
Corresponding author
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
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-014-1259-x