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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital Library
- HALBWACHS, N. Synchronous Programming of Reactive Systems. Kluwer, 1993. Google Scholar
Digital Library
- HENZINGER, T., AND KIRSCH, C. The Embedded Machine: predictable, portable real-time code. In Proc. PLDI (Berlin, Germany, 2002), pp. 315--326. Google Scholar
Digital Library
- HENZINGER, T., KIRSCH, C., AND HOROWITZ, B. Giotto: A timetriggered language for embedded programming. Proc. IEEE 91, 1 (January 2003), 84--99. Google Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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 Scholar
Digital 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