Adapting Futures: Scalability for Real-World Computing

Creating robust real-time embedded software is critical in combining the physical world with computing, such as in consumer electronics or robotics. One challenge is the complexity of dealing with time together with implementation details that often end up implicitly determining the temporal behavior of the program. In this paper we suggest deconstructing a program into two separate aspects, the functional implementation and a temporal pattern, each expressed separately in a different language. This separation enables independent specification, analysis and prediction of the temporal behavior without regard to the implementation. Meanwhile the implementation is optimized for platforms with different capabilities through a scalable programming model that automatically adapts the execution to the level of concurrency a platform can support. Finally the aspects are put together to create a working system. This paper presents the use of futures and partitures to achieve predictability and performance in embedded systems. A new real-time scheduler for partiture based futures execution is introduced, along with multiple implementations, including one for an 8-bit microcontroller. The paper explains how to create, model, and execute futures and partitures.

[1]  Thomas A. Henzinger,et al.  Schedule-Carrying Code , 2003, EMSOFT.

[2]  Harrick M. Vin,et al.  Determining end-to-end delay bounds in heterogeneous networks , 1995, Multimedia Systems.

[3]  Riccardo Bettati,et al.  Providing absolute differentiated services for real-time applications in static-priority scheduling networks , 2004, IEEE/ACM Transactions on Networking.

[4]  Margus Veanes,et al.  Composition of Model Programs , 2007, FORTE.

[5]  Jonathan Jacky,et al.  Model-Based Software Testing and Analysis with C# , 2007 .

[6]  Alan Burns,et al.  Resource Sharing in Hierarchical Fixed Priority Pre-Emptive Systems , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[7]  Johannes Helander,et al.  Self-tuning planned actions time to make real-time SOAP real , 2005, Eighth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'05).

[8]  Emilia Farcas,et al.  Transparent distribution of real-time components based on logical execution time , 2005, LCTES '05.

[9]  Wei Sun,et al.  End-to-end delay bounds for traffic aggregates under guaranteed-rate scheduling algorithms , 2005, IEEE/ACM Transactions on Networking.

[10]  Michael B. Jones,et al.  CPU reservations and time constraints: efficient, predictable scheduling of independent activities , 1997, SOSP.

[11]  Joel H. Saltz,et al.  An interprocedural framework for placement of asynchronous I/O operations , 1996, ICS '96.

[12]  Sang Hyuk Son,et al.  The case for feedback control real-time scheduling , 1998, Proceedings of 11th Euromicro Conference on Real-Time Systems. Euromicro RTS'99.

[13]  John Regehr,et al.  Scheduling tasks with mixed preemption relations for robustness to timing faults , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[14]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.

[15]  Roch Guérin,et al.  Efficient network QoS provisioning based on per node traffic shaping , 1996, TNET.

[16]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[17]  Manas Saksena,et al.  Scheduling fixed-priority tasks with preemption threshold , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[18]  Margus Veanes,et al.  Model-Based Testing of Object-Oriented Reactive Systems with Spec Explorer , 2008, Formal Methods and Testing.

[19]  Johannes Helander Interoperation and Adaptation for Real-World Computing , 2006 .

[20]  Hui Zhang,et al.  WF/sup 2/Q: worst-case fair weighted fair queueing , 1996, Proceedings of IEEE INFOCOM '96. Conference on Computer Communications.

[21]  Jane W.-S. Liu,et al.  Scheduling real-time applications in an open environment , 1997, Proceedings Real-Time Systems Symposium.

[22]  Carlo Ghezzi,et al.  CJava: Introducing Concurrent Objects in Java , 1997, OOIS.

[23]  Edward F. Walker,et al.  Asynchronous remote operation execution in distributed systems , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[24]  James W. Layland,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[25]  Abhay Parekh,et al.  A generalized processor sharing approach to flow control in integrated services networks: the single-node case , 1993, TNET.

[26]  Harrick M. Vin,et al.  Generalized guaranteed rate scheduling algorithms: a framework , 1997, TNET.

[27]  Johannes Helander Deeply embedded XML communication: towards an interoperable and seamless world , 2005, EMSOFT.

[28]  Peter Lee,et al.  Topics in advanced language implementation , 1991 .

[29]  Michael G. Rodd,et al.  Timing analysis of real-time software , 1994 .

[30]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.