Computing Foundations and Practice for Cyber- Physical Systems: A Preliminary Report

Cyber-Physical Systems (CPS) are integrations of computation and physical processes. Embedded computers and networks monitor and control the physical processes, usually with feedback loops where physical processes affect computations and vice versa. The economic and societal potential of such systems is vastly greater than what has been realized, and major investments are being made worldwide to develop the technology. There are considerable challenges, particularly because the physical components of such systems introduce safety and reliability requirements qualitatively different from those in general-purpose computing. This report examines the potential technical obstacles impeding progress, and in particular raises the question of whether today’s computing and networking technologies provide an adequate foundation for CPS. It concludes that it will not be sufficient to improve design processes, raise the level of abstraction, or verify (formally or otherwise) designs that are built on today’s abstractions. To realize the full potential of CPS, we will have to rebuild computing and networking abstractions. These abstractions will have to embrace physical dynamics and computation in a unified way.

[1]  David F. Bacon,et al.  Guava: a dialect of Java without data races , 2000, OOPSLA '00.

[2]  Thomas A. Henzinger,et al.  Interface Theories for Component-Based Design , 2001, EMSOFT.

[3]  Edward A. Lee The problem with threads , 2006, Computer.

[4]  Thomas A. Henzinger,et al.  INTERFACE-BASED DESIGN , 2005 .

[5]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.

[6]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[7]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[8]  Nancy M. Amato,et al.  STAPL: An Adaptive, Generic Parallel C++ Library , 2001, LCPC.

[9]  Christoph M. Kirsch,et al.  Giotto: a time-triggered language for embedded programming , 2003 .

[10]  Thomas A. Henzinger,et al.  Resource Interfaces , 2003, EMSOFT.

[11]  James R. Larus,et al.  Software and the Concurrency Revolution , 2005, ACM Queue.

[12]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[13]  Thomas A. Henzinger,et al.  An Interface Algebra for Real-Time Components , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[14]  Stephen A. Edwards,et al.  The Case for the Precision Timed (PRET) Machine , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[15]  Edward A. Lee Model-Driven Development - From Object-Oriented Design to Actor-Oriented Design , 2003 .

[16]  Edward A. Lee,et al.  A causality interface for deadlock analysis in dataflow , 2006, EMSOFT '06.

[17]  Thomas A. Henzinger,et al.  Thread-Modular Abstraction Refinement , 2003, CAV.

[18]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[19]  Antoine Girard,et al.  Time-triggered implementations of dynamic controllers , 2006, EMSOFT '06.

[20]  Edward A. Lee,et al.  Pipeline interleaved programmable DSP's: Architecture , 1987, IEEE Trans. Acoust. Speech Signal Process..

[21]  Andrea C. Arpaci-Dusseau,et al.  Parallel programming in Split-C , 1993, Supercomputing '93. Proceedings.

[22]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[23]  Edward A. Lee,et al.  Actor-Oriented Design of Embedded Hardware and Software Systems , 2003, J. Circuits Syst. Comput..

[24]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[25]  Stephen A. Edwards,et al.  Scheduling-independent threads and exceptions in SHIM , 2006, EMSOFT '06.

[26]  Neeraj Suri,et al.  Compositional design of RT systems: a conceptual basis for specification of linking interfaces , 2003, Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2003..

[27]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[28]  Niklaus Wirth,et al.  Toward a discipline of real-time programming , 1977, CACM.

[29]  T. von Eicken,et al.  Parallel programming in Split-C , 1993, Supercomputing '93.

[30]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[31]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[32]  Stephen A. Edwards,et al.  A Processor Extension for Cycle-Accurate Real-Time Software , 2006, EUC.

[33]  Martyn Thomas,et al.  Software For Dependable Systems , 2008 .

[34]  Gabor Karsai,et al.  Model-Integrated Computing , 1997, Computer.

[35]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[36]  Robert Tappan Morris,et al.  Multiprocessor Support for Event-Driven Programs , 2003, USENIX Annual Technical Conference, General Track.

[37]  Lothar Thiele,et al.  Real-time interfaces for composing real-time systems , 2006, EMSOFT '06.

[38]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[39]  Rajeev Barua,et al.  An optimal memory allocation scheme for scratch-pad-based embedded systems , 2002, TECS.

[40]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[41]  Edward A. Lee,et al.  A Programming Model for Time-Synchronized Distributed Real-Time Systems , 2007, 13th IEEE Real Time and Embedded Technology and Applications Symposium (RTAS'07).

[42]  John Wawrzynek,et al.  BEE2: a high-end reconfigurable computing system , 2005, IEEE Design & Test of Computers.

[43]  Odysseas Papapetrou,et al.  An implementation framework for Software Architectures based on the coordination paradigm , 2006, Sci. Comput. Program..

[44]  Giorgio C. Buttazzo,et al.  Schedulability analysis of periodic fixed priority systems , 2004, IEEE Transactions on Computers.

[45]  S. Johannessen Time synchronization in a local area network , 2004, IEEE Control Systems.

[46]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[47]  Edward A. Lee,et al.  Software Practice in the Ptolemy Project , 1999 .

[48]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[49]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[50]  V. T. Rajan,et al.  The Metronome: A Simpler Approach to Garbage Collection in Real-Time Systems , 2003, OTM Workshops.