skip to main content
research-article

Low-latency time-portable real-time programming with Exotasks

Published: 09 February 2009 Publication History

Abstract

Exotasks are a novel Java programming construct that achieve three important goals. They achieve low latency while allowing the fullest use of Java language features, compared to previous attempts to restrict the Java language for use in the submillisecond domain. They support pluggable schedulers, allowing easy implementation of new scheduling paradigms in a real-time Java system. They can achieve deterministic timing, even in the presence of other Java threads, and across changes of hardware and software platform. To achieve these goals, the program is divided into tasks with private heaps. Tasks may be strongly isolated, communicating only with each other and guaranteeing determinism, or weakly isolated, allowing some communication with the rest of the Java application. Scheduling of the tasks' execution, garbage collection, and value passing is accomplished by the pluggable scheduler. Schedulers that we have written employ logical execution time (LET) in association with strong isolation to achieve time portability. We have also built a quad-rotor model helicopter, the JAviator, which we use to evaluate our implementation of Exotasks in an experimental embedded version of IBM's J9 real-time virtual machine. Our experiments show that we are able to maintain very low scheduling jitter and deterministic behavior in the face of variations in both software load and hardware platform. We also show that Exotasks perform nearly as well as Eventrons on a benchmark audio application.

References

[1]
AICAS. The Jamaica virtual machine. http://www.aicas.com.
[2]
Armbuster, A., Baker, J., Cunei, A., Holmes, D., Flack, C., Pizlo, F., Pla, E., Prochazka, M., and Vitek, J. 2006. A Real-time Java virtual machine with applications in avionics. ACM Trans. Embed. Comput. Syst. (TECS).
[3]
Armstrong, J., Virding, R., Wikstrm, C., and Williams, M. 1996. Concurrent Programming in Erlang, 2nd Ed. Prentice-Hall.
[4]
Auerbach, J., Bacon, D. F., Blainey, B., Cheng, P., Dawson, M., Fulton, M., Grove, D., Hart, D., and Stoodley, M. 2007. Design and implementation of a comprehensive real-time Java virtual machine. In Proceedings of The 7th ACM/IEEE International Conference on Embedded Software. ACM, New York, 249--258.
[5]
Auerbach, J., Bacon, D. F., BO Mers, F., and Cheng, P. 2007. Real-time music synthesis in Java using the Metronome garbage collector. In Proceedings of the International Computer Music Conference.
[6]
Auerbach, J., Bacon, D. F., Iercan, D. T., Kirsch, C. M., Rajan, V. T., Roeck, H., and Trummer, R. 2007. Java takes flight: time-portable real-time programming with exotasks. In Proceedings of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools (LCTES'07). ACM, New York, 51--62.
[7]
Bacon, D. F., Cheng, P., and Grove, D. 2004. Garbage collection for embedded systems. In Proceedings of the 4th ACM International Conference on Embedded Software. ACM, New York, 125--136.
[8]
Bacon, D. F., Cheng, P., and Rajan, V. T. 2003. A real-time garbage collector with low overhead and consistent utilization. In Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, New York, 285--298.
[9]
Bacon, D. F. and Sweeney, P. F. 1996. Fast static analysis of C++ virtual function calls. In Proceedings of the 11th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, New York, 324--341.
[10]
Bollella, G., Delsart, B., Guider, R., Lizzi, C., and Parain, F. 2005. Mackinac: Making hotspot realtime. In Proceedings of the Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05). IEEE, Los Alamitos, CA, 45--54.
[11]
Bollella, G., Gosling, J., Brosgol, B., Dibble, P., Furr, S., Hardin, D., and Turnbull, M. 2000. The Real-Time Specification for Java. The Java Series. Addison-Wesley, Boston, MA.
[12]
Burns, A. and Wellings, A. 1997. Concurrency in ADA 2nd Ed. Cambridge University Press, Cambridge, UK.
[13]
Eclipse Foundation. 2007. The Eclipse open development platform. http://www.eclipse.org.
[14]
Fulton, M. and Stoodley, M. 2007. Compilation techniques for real-time Java programs. In Proceedings of the International Symposium on Code Generation and Optimization. ACM, New York, 221--231.
[15]
Gestegard Robertz, S., Henriksson, R., Nilsson, K., Blomdell, A., and Tarasov, I. 2007. Using real-time Java for industrial robot control. In Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES). ACM, New York, 104--110.
[16]
Ghosal, A., Henzinger, T., Iercan, D., Kirsch, C., and Sangiovanni-Vincentelli, A. 2006. A hierarchical coordination language for interacting real-time tasks. In Proceedings of the 6th ACM/IEEE International Conference on Embedded Software. ACM, New York, 132--141.
[17]
Ghosal, A., Iercan, D., Kirsch, C., Henzinger, T., and Sangiovanni-Vincentelli, A. 2007. Separate compilation of hierarchical real-time programs into linear-bounded embedded machine code. In Proceedings of the APGES Workshop.
[18]
Halbwachs, N. 1993. Synchronous Programming of Reactive Systems. Kluwer, Norwell, MA.
[19]
Henderson, F. 2002. Accurate garbage collection in an uncooperative environment. SIGPLAN Notices 38, 2, 256--263.
[20]
Henzinger, T. And Kirsch, C. 2007. The embedded machine: Predictable, portable real-time code. ACM Trans. Prog. Lang. Syst. 29, 6.
[21]
Henzinger, T., Kirsch, C., And Horowitz, B. 2003. Giotto: A time-triggered language for embedded programming. Proc. IEEE 91, 1, 84--99.
[22]
IBM. 2007. DDG1000 next generation Navy destroyers. http://www.ibm.com/press/us/en/pressrelease/21033.wss.
[23]
IBM Corp. 2006. WebSphere Real-Time User's Guide, 1st Ed.
[24]
IBM Corporation. 2007. IBM expedited real time task graphs. www.alphaworks.ibm.com/tech/xrtgs.
[25]
Java Community Process. JSR-121 application isolation API. http://www.jcp.org/aboutJava/communityprocess/final/jsr121.
[26]
Juillerat, N., Müller Arisona, S., And Schubiger-Banz, S. 2007. Real-time, low latency audio processing in java. In Proceedings of the International Computer Music Conference.
[27]
Lee, E. 2003. Overview of the Ptolemy project. Tech. rep. UCB/ERL M03/25, EECS Department, University of California, Berkeley.
[28]
Ogata, K. 1997. Modern Control Engineering. Prentice Hall, Upper Saddle River, NJ.
[29]
Pillai, P. And Shin, K. G. 2001. Real-time dynamic voltage scaling for low-power embedded operating systems. In Proceedings of the 18th ACM Symposium on Operating Systems Principles. ACM, New York, 89--102.
[30]
Pizlo, F., Hosking, A. L., And Vitek, J. 2007. Hierarchical real-time garbage collection. In Proceedings of the ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools (LCTES'07). ACM, New York, 123--133.
[31]
Purdue. The OVM virtual machine. http://www.ovmj.org.
[32]
Real-Time-Workshop. 2007. http://www.mathworks.com/products/rtw.
[33]
Siebert, F. 2004. The impact of realtime garbage collection on realtime Java programming. In Proceedings of the 7th Annual IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'04). IEEE, Los Alamitos, CA, 33--40.
[34]
Simulink. 2007. http://www.mathworks.com/products/simulink.
[35]
Spoonhower, D., Auerbach, J., Bacon, D. F., Cheng, P., and Grove, D. 2006. Eventrons: a safe programming construct for high-frequency hard real-time applications. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, New York, 283--294.
[36]
Spring, J. H., Pizlo, F., Guerraoui, R., And Vitek, J. 2007. Programming abstractions for highly responsive systems. In Proceedings of the 3rd International Conference on Virtual Execution Environments. ACM, New York, 191--201.
[37]
Spring, J. H., Privat, J., Guerraoui, R., And Vitek, J. 2007. StreamFlex: High-throughput stream programming in Java. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA). ACM, New York, 211--228.
[38]
Stewart, D. B., Volpe, R. A., And Khosla, P. K. 1997. Design of dynamically reconfigurable real-time software using port-based objects. IEEE Trans. Softw. Engin. 23, 12, 759--776.
[39]
University of Salzburg. 2007. Exotask htl scheduler. htl.cs.uni-salzburg.at/exotask-htl.

Cited By

View all
  • (2017)The Perfect GetawayACM Transactions on Embedded Computing Systems10.1145/303554216:4(1-30)Online publication date: 11-May-2017
  • (2012)Separate compilation of hierarchical real-time programs into linear-bounded Embedded Machine codeScience of Computer Programming10.1016/j.scico.2010.06.00477:2(96-112)Online publication date: 1-Feb-2012
  • (2012)Tailor-made JVMs for statically configured embedded systemsConcurrency and Computation: Practice & Experience10.1002/cpe.175524:8(789-812)Online publication date: 1-Jun-2012
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Embedded Computing Systems
ACM Transactions on Embedded Computing Systems  Volume 8, Issue 2
January 2009
243 pages
ISSN:1539-9087
EISSN:1558-3465
DOI:10.1145/1457255
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Journal Family

Publication History

Published: 09 February 2009
Accepted: 01 July 2008
Revised: 01 March 2008
Received: 01 October 2007
Published in TECS Volume 8, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Real-time scheduling
  2. UAVs
  3. time portability
  4. virtual machine

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)1
Reflects downloads up to 20 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2017)The Perfect GetawayACM Transactions on Embedded Computing Systems10.1145/303554216:4(1-30)Online publication date: 11-May-2017
  • (2012)Separate compilation of hierarchical real-time programs into linear-bounded Embedded Machine codeScience of Computer Programming10.1016/j.scico.2010.06.00477:2(96-112)Online publication date: 1-Feb-2012
  • (2012)Tailor-made JVMs for statically configured embedded systemsConcurrency and Computation: Practice & Experience10.1002/cpe.175524:8(789-812)Online publication date: 1-Jun-2012
  • (2011)I4CopterProceedings of the 2011 ACM Symposium on Applied Computing10.1145/1982185.1982267(380-386)Online publication date: 21-Mar-2011
  • (2011)The Logical Execution Time ParadigmAdvances in Real-Time Systems10.1007/978-3-642-24349-3_5(103-120)Online publication date: 27-Oct-2011
  • (2010)LimeACM SIGPLAN Notices10.1145/1932682.186946945:10(89-108)Online publication date: 17-Oct-2010
  • (2010)LimeProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869469(89-108)Online publication date: 17-Oct-2010
  • (2009)Distributed, Modular HTLProceedings of the 2009 30th IEEE Real-Time Systems Symposium10.1109/RTSS.2009.9(171-180)Online publication date: 1-Dec-2009

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media