Abstract
Existing programming methodologies for real-time systems suffer from a low level of abstraction and non-determinism in both the timing and the functional domains. As a result, real-time systems are difficult to test and must be re-certified every time changes are made to either the software or hardware environment. Exotasks are a novel Java programming construct that achievedeterministic timing, even in the presence of other Java threads, and across changes of hardware and software platform. They are deterministic functional data-flow tasks written in Java, combined with an orthogonal scheduling policy based on the logical execution time (LET) model. We have built a quad-rotor model helicopter, the JAviator, which we use as a testbed for this work. We evaluate our implementation of exotasks in IBM's J9 real-time virtual machine using actual flights of the helicopter. Our experiments show that we are able to maintain deterministic behavior in the face of variations in both software load and hardware platform.
- ARMSTRONG, J., VIRDING, R., WIKSTRÖM, C., AND WILLIAMS, M. Concurrent Programming in Erlang, second ed. Prentice-Hall, 1996. Google ScholarDigital Library
- BACON, D. F., CHENG, P., AND GROVE, D. Garbage collection for embedded systems. In Proc. EMSOFT (Pisa, Italy, Sept. 2004), pp. 125--136. Google ScholarDigital Library
- BACON, D. F., CHENG, P., AND RAJAN, V. T. A real-time garbage collector with low overhead and consistent utilization. In Proc. POPL (New Orleans, Louisiana, Jan. 2003). SIGPLAN Notices, 38, 1, 285--298. Google ScholarDigital Library
- BACON, D. F., AND SWEENEY, P. F. Fast static analysis of C++ virtual function calls. In Proc. OOPSLA (San Jose, California, Oct. 1996). SIGPLAN Notices, 31, 10, 324--341. Google ScholarDigital Library
- BOLLELLA, G., GOSLING, J., BROSGOL, B., DIBBLE, P., FURR, S., HARDIN, D., AND TURNBULL, M. The Real-Time Specification for Java. The Java Series. Addison-Wesley, 2000. Google ScholarDigital Library
- BURNS, A., AND WELLINGS, A. Concurrency in Ada, second ed. Cambridge University Press, 1997.Google Scholar
- ECLIPSE FOUNDATION. The Eclipse Open Development Platform. http://www.eclipse.org.Google Scholar
- GHOSAL, A., HENZINGER, T., IERCAN, D., KIRSCH, C., AND SANGIOVANNI-VINCENTELLI, A. A hierarchical coordination language for interacting real-time tasks. In Proc. EMSOFT (Seoul, South Korea, 2006). Google ScholarDigital Library
- HALBWACHS, N. Synchronous Programming of Reactive Systems. Kluwer, 1993. Google ScholarDigital Library
- HENZINGER, T., AND KIRSCH, C. The Embedded Machine: predictable, portable real-time code. In Proc. PLDI (Berlin, Germany, 2002), pp. 315--326. Google ScholarDigital Library
- HENZINGER, T., KIRSCH, C., AND HOROWITZ, B. Giotto: A timetriggered language for embedded programming. Proc. IEEE 91, 1 (January 2003), 84--99. Google ScholarDigital Library
- IBM CORP. TuningFork Visualization Tool for Real-Time Systems. URL www.alphaworks.ibm.com/tech/tuningfork.Google Scholar
- IBM CORP. WebSphere Real-Time User's Guide, first ed., 2006.Google Scholar
- JAVA COMMUNITY PROCESS. JSR-121 application isolation API specification. jcp.org/aboutJava/communityprocess/final/jsr121/index.html.Google Scholar
- LEE, E. Overview of the Ptolemy project. Tech. Rep. UCB/ERL M03/25, EECS Department, University of California, Berkeley, 2003.Google Scholar
- OGATA, K. Modern Control Engineering. Prentice Hall, 1997. Google ScholarDigital Library
- PILLAI, P., AND SHIN, K. G. Real-time dynamic voltage scaling for low-power embedded operating systems. In Proc. SOSP (Banff, Alberta, Canada, 2001), pp. 89--102. Google ScholarDigital Library
- REAL-TIME-WORKSHOP. http://www.mathworks.com/products/rtw/.Google Scholar
- SIMULINK. http://www.mathworks.com/products/simulink/.Google Scholar
- SPOONHOWER, D., AUERBACH, J., BACON, D. F., CHENG, P., AND GROVE, D. Eventrons: a safe programming construct for high-frequency hard real-time applications. In Proc. PLDI (Ottawa, Ontario, Canada, 2006), pp. 283--294. Google ScholarDigital Library
- SPRING, J. H., PIZLO, F., GUERRAOUI, R., AND VITEK, J. Programming abstractions for highly responsive systems. In Proc. VEE (San Diego, California, 2007). Google ScholarDigital Library
- STEWART, D. B., VOLPE, R. A., AND KHOSLA, P. K. Design of dynamically reconfigurable real-time software using port-based objects. IEEE Trans. Softw. Eng. 23, 12 (1997), 759--776. Google ScholarDigital Library
Index Terms
- Java takes flight: time-portable real-time programming with exotasks
Recommendations
Low-latency time-portable real-time programming with Exotasks
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 ...
Java takes flight: time-portable real-time programming with exotasks
LCTES '07: Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsExisting programming methodologies for real-time systems suffer from a low level of abstraction and non-determinism in both the timing and the functional domains. As a result, real-time systems are difficult to test and must be re-certified every time ...
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 ...
Comments