skip to main content
research-article

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

Published:09 February 2009Publication History
Skip Abstract Section

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.Google ScholarGoogle Scholar
  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). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Armstrong, J., Virding, R., Wikstrm, C., and Williams, M. 1996. Concurrent Programming in Erlang, 2nd Ed. Prentice-Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Burns, A. and Wellings, A. 1997. Concurrency in ADA 2nd Ed. Cambridge University Press, Cambridge, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Eclipse Foundation. 2007. The Eclipse open development platform. http://www.eclipse.org.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  18. Halbwachs, N. 1993. Synchronous Programming of Reactive Systems. Kluwer, Norwell, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Henderson, F. 2002. Accurate garbage collection in an uncooperative environment. SIGPLAN Notices 38, 2, 256--263. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Henzinger, T. And Kirsch, C. 2007. The embedded machine: Predictable, portable real-time code. ACM Trans. Prog. Lang. Syst. 29, 6. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Henzinger, T., Kirsch, C., And Horowitz, B. 2003. Giotto: A time-triggered language for embedded programming. Proc. IEEE 91, 1, 84--99.Google ScholarGoogle ScholarCross RefCross Ref
  22. IBM. 2007. DDG1000 next generation Navy destroyers. http://www.ibm.com/press/us/en/pressrelease/21033.wss.Google ScholarGoogle Scholar
  23. IBM Corp. 2006. WebSphere Real-Time User's Guide, 1st Ed.Google ScholarGoogle Scholar
  24. IBM Corporation. 2007. IBM expedited real time task graphs. www.alphaworks.ibm.com/tech/xrtgs.Google ScholarGoogle Scholar
  25. Java Community Process. JSR-121 application isolation API. http://www.jcp.org/aboutJava/communityprocess/final/jsr121.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  27. Lee, E. 2003. Overview of the Ptolemy project. Tech. rep. UCB/ERL M03/25, EECS Department, University of California, Berkeley.Google ScholarGoogle Scholar
  28. Ogata, K. 1997. Modern Control Engineering. Prentice Hall, Upper Saddle River, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Purdue. The OVM virtual machine. http://www.ovmj.org.Google ScholarGoogle Scholar
  32. Real-Time-Workshop. 2007. http://www.mathworks.com/products/rtw.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarCross RefCross Ref
  34. Simulink. 2007. http://www.mathworks.com/products/simulink.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. University of Salzburg. 2007. Exotask htl scheduler. htl.cs.uni-salzburg.at/exotask-htl.Google ScholarGoogle Scholar

Index Terms

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

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!