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.
- AICAS. The Jamaica virtual machine. http://www.aicas.com.Google Scholar
- 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 Scholar
Digital Library
- Armstrong, J., Virding, R., Wikstrm, C., and Williams, M. 1996. Concurrent Programming in Erlang, 2nd Ed. Prentice-Hall. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Burns, A. and Wellings, A. 1997. Concurrency in ADA 2nd Ed. Cambridge University Press, Cambridge, UK. Google Scholar
Digital Library
- Eclipse Foundation. 2007. The Eclipse open development platform. http://www.eclipse.org.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Halbwachs, N. 1993. Synchronous Programming of Reactive Systems. Kluwer, Norwell, MA. Google Scholar
Digital Library
- Henderson, F. 2002. Accurate garbage collection in an uncooperative environment. SIGPLAN Notices 38, 2, 256--263. Google Scholar
Digital Library
- Henzinger, T. And Kirsch, C. 2007. The embedded machine: Predictable, portable real-time code. ACM Trans. Prog. Lang. Syst. 29, 6. Google Scholar
Digital Library
- Henzinger, T., Kirsch, C., And Horowitz, B. 2003. Giotto: A time-triggered language for embedded programming. Proc. IEEE 91, 1, 84--99.Google Scholar
Cross Ref
- IBM. 2007. DDG1000 next generation Navy destroyers. http://www.ibm.com/press/us/en/pressrelease/21033.wss.Google Scholar
- IBM Corp. 2006. WebSphere Real-Time User's Guide, 1st Ed.Google Scholar
- IBM Corporation. 2007. IBM expedited real time task graphs. www.alphaworks.ibm.com/tech/xrtgs.Google Scholar
- Java Community Process. JSR-121 application isolation API. http://www.jcp.org/aboutJava/communityprocess/final/jsr121.Google Scholar
- 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 Scholar
- Lee, E. 2003. Overview of the Ptolemy project. Tech. rep. UCB/ERL M03/25, EECS Department, University of California, Berkeley.Google Scholar
- Ogata, K. 1997. Modern Control Engineering. Prentice Hall, Upper Saddle River, NJ. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Purdue. The OVM virtual machine. http://www.ovmj.org.Google Scholar
- Real-Time-Workshop. 2007. http://www.mathworks.com/products/rtw.Google Scholar
- 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 Scholar
Cross Ref
- Simulink. 2007. http://www.mathworks.com/products/simulink.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- University of Salzburg. 2007. Exotask htl scheduler. htl.cs.uni-salzburg.at/exotask-htl.Google Scholar
Index Terms
Low-latency time-portable real-time programming with Exotasks
Recommendations
Real-time scheduling in cloud-based virtualized software systems
NordiCloud '13: Proceedings of the Second Nordic Symposium on Cloud Computing & Internet TechnologiesThe number of applications that use virtualized cloud-based systems is growing, and one would like to use this kind of systems also for real-time applications with hard deadlines. There is scheduling on two levels in real-time applications executing in ...
A real-time garbage collector with low overhead and consistent utilization
Now that the use of garbage collection in languages like Java is becoming widely accepted due to the safety and software engineering benefits it provides, there is significant interest in applying garbage collection to hard real-time systems. Past ...






Comments