Skip to main content
Log in

Real-Time Garbage Collection for a Multithreaded Java Microcontroller

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

Abstract

We envision the upcoming of microcontrollers and systems-on-chip that are based on multithreaded processor kernels due to the fast context switching ability of hardware multithreading. Moreover we envision an extensive market for Java-based applications in embedded real-time systems. This paper introduces two new garbage collection algorithms that are dedicated to real-time garbage collection on a multithreaded Java microcontroller. Our garbage collector runs in a thread slot in parallel to real-time applications. We show that our algorithms require only about 5–10% of the processor time for an effective garbage collection concerning our real-time benchmarks.

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

  • Baker, H. G. 1978. List processing in real-time on a serial computer. Communications of the ACM 21(4): 280-294.

    Google Scholar 

  • Baker, H. G. 1992. The treadmill, real-time garbage collection without motion sickness. ACM SIGPLAN Notices 27(3): 66-70.

    Google Scholar 

  • Bollella, G., Bowman, P., Brosgol, B., Dibble, P., Furr, S., Gosling, J., Hardin, D., and Turnbull, M. 1999. Real Time Specification for Java. The Real Time for Java Experts Group. Draft version.

  • Borkenhagen, J. M., Eickemeyer, R. J., Kalla, R. N., and Kunkel, S. R. 2000. A multithreaded PowerPC processor for commercial servers. IBM Journal Research and Development 44: 885-898.

    Google Scholar 

  • Brinkschulte, U., Krakowski, C., Kreuzinger, J., Marston, R., and Ungerer, T. 1999a. The Komodo Project: Thread-based event handling supported by a multithreaded Java microcontroller. In 25th EUROMICRO Conference. Milano, Vol. 2, pp. 122-128.

    Google Scholar 

  • Brinkschulte, U., Krakowski, C., Kreuzinger, J., and Ungerer, T. 1999b. A multithreaded Java microcontroller for thread-oriented real-time event-handling. In International Conference on Parallel Architectures and Compilation Techniques (PACT 99), Newport Beach, pp. 34-39.

  • Brinkschulte, U., Krakowski, C., Kreuzinger, J., and Ungerer, T. 1999c. Interrupt service threads\3-a new approach to handle multiple hard real-time events on a multithreaded microcontroller. RTSS WIP sessions, Phoenix, pp. 11-15.

  • Brinkschulte, U., Krakowski, C., Riemschneider, J., Kreuzinger, J., Pfeffer, M., and Ungerer, T. 2000. A microkernel architecture for a highly scalable real-time middleware. In RTAS 2000, 6th IEEE Real-time Technology and Application Symposium. Work in Progress session, Washington.

  • Brinkschulte, U., Kreuzinger, J., Pfeffer, M., and Ungerer, T. 2002. A scheduling technique providing a strict isolation of real-time threads. In Seventh IEEE International Workshop on Object-Oriented Real-time Dependable Systems (WORDS), San Diego, CA.

  • Dijkstra, E. W., Lamport, L., Martin, A. J., Scholten, C. S., and Steffens, E. F. M. 1978. On-The-Fly garbage collection: an exercise in cooperation. Communications of the ACM 21(11): 965-975.

    Google Scholar 

  • Emer, J. 1999. Simultaneous multithreading: multiplying alpha's performance. In Microprocessor Forum 1999, San Jose, CA.

  • Fuhrmann, S., Pfeffer, M., Kreuzinger, J., Ungerer, T., and Brinkschulte, U. 2001. Real-time garbage collection for a multithreaded Java microcontroller. In The Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), Magdeburg, Germany, pp. 69-76.

  • Gwennap, L. 1999. MAJC gives VLIW a new twist. Microprocessor Report 13 (12): 12-15.

    Google Scholar 

  • Hansen, C. 1996. MicroUnity's MediaProcessor architecture. IEEE Micro pp. 34-41.

  • Huelsbergen, L., and Winterbottom, P. 1998. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. In International Symposium on Memory Management, Vancouver, Canada.

  • Johnstone, M. S. 1997. Non-compacting memory allocation and real-time garbage collection. Ph.D. thesis, The University of Texas at Austin.

    Google Scholar 

  • Kreuzinger, J., Pfeffer, M., Schulz, A., Ungerer, T., Brinkschulte, U., and Krakowski, C. 2000a. Performance evaluations of a multithreaded Java Microcontroller. In International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA), Las Vegas, Nevada, USA, pp. 95-99.

  • Kreuzinger, J., Schulz, A., Pfeffer, M., Ungerer, T., Brinkschulte, U., and Krakowski, C. 2000b. Real-time scheduling on multithreaded processors. In The 7th International Conference on Real-Time Computing Systems and Applications (RTCSA 2000), Cheju Island, South Korea, pp. 155-159.

  • Krewell, K. 2001. Intel embraces multithreading. Microprocessor Report.

  • Marr, D. T., Binns, F., Hill, D. L., Hinton, G., Koufaty, D. A., Miller, J. A., and Upton, M. 2002. Hyper-threading technology architecture and microarchitecture. Intel Technology Journal 6(1).

  • Nemirovsky, M. 2000. XStream Logic's network communication processor. In Microprocessor Forum 2000, San Jose, CA.

  • Venners, B. 1996. Under the hood: Java's garbage-collected heap. JavaWorld.

  • Wallace, M., and Runciman, C. 1993. An incremental garbage collector for embedded real-time systems. In Chalmers Winter Meeting, Tanum Strand, Sweden, pp. 273-288.

  • Wilson, P. R. 1992. Uniprocessor garbage collection techniques. In International Workshop on Memory Management, Saint-Malo, France.

  • Wilson, P. R., Johnstone, M. S., Neely, M., and Boles D. 1995. Dynamic storage allocation: a survey and critical review. In International Workshop on Memory Management.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Pfeffer, M., Ungerer, T., Fuhrmann, S. et al. Real-Time Garbage Collection for a Multithreaded Java Microcontroller. Real-Time Systems 26, 89–106 (2004). https://doi.org/10.1023/B:TIME.0000009307.23568.4b

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/B:TIME.0000009307.23568.4b

Navigation