Software environment for integrating critical real-time control systems

In the recent few years, integration of multiple real-time control modules has gained increased acceptance in the industry. Such integration can achieve lower overall hardware costs and reduced level of spares by sharing hardware resources among multiple applications. Single contemporary CPU can now harbor several applications which have been traditionally running on several older and slower computing platforms. However, the integrated approach faces new challenges such as the reusability of existing software and the prevention of fault propagation. The reuse of legacy application code, with minimal modifications, is strongly desirable since the cost of application re-development can be prohibitive. Resource sharing introduces dependencies among applications and thus requires additional design precautions to ensure that the effect of a failure in one application will not spread and impact other applications. This paper describes a two-layer software architecture, which enables the integration of multiple real-time applications while maintaining strong spatial and temporal partitioning among application modules. At the lower layer, a system executive creates multiple virtual machines. Each module accommodates an application with its choice of a real-time operating system. This architecture allows the reusability of existent software modules by enabling the integration of applications written for different real-time operating systems. The paper also addresses some issues related to the interapplication communication and to the handling of I/O devices.

[1]  William A. Wulf,et al.  HYDRA/C.Mmp, An Experimental Computer System , 1981 .

[2]  Jochen Liedtke,et al.  The performance of μ-kernel-based systems , 1997, SOSP.

[3]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[4]  Robert P. Goldberg,et al.  Survey of virtual machine research , 1974, Computer.

[5]  Alan Burns,et al.  Loop-free asynchronous data sharing in multiprocessor real-time systems based on timing properties , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[6]  Ragunathan Rajkumar,et al.  Temporal protection in real-time operating systems , 1994, Proceedings of 11th IEEE Workshop on Real-Time Operating Systems and Software.

[7]  Leslie Lamport,et al.  On interprocess communication , 1986, Distributed Computing.

[8]  Margo Seltzer,et al.  Structuring the kernel as a toolkit of extensible, reusable components , 1995, Proceedings of International Workshop on Object Orientation in Operating Systems.

[9]  Andy J. Wellings,et al.  GUARDS: A Generic Upgradable Architecture for Real-Time Dependable Systems , 1997, IEEE Trans. Parallel Distributed Syst..

[10]  Rushby John,et al.  Partitioning in Avionics Architectures: Requirements, Mechanisms, and Assurance , 1999 .

[11]  Anoop Gupta,et al.  Hive: fault containment for shared-memory multiprocessors , 1995, SOSP.

[12]  Jochen Liedtke,et al.  On micro-kernel construction , 1995, SOSP.

[13]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[14]  Jochen Liedtke,et al.  Toward real microkernels , 1996, CACM.

[15]  M. Rosenblum,et al.  Hardware Fault Containment In Scalable Shared-memory Multiprocessors , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[16]  Robert Grimm,et al.  Application performance and flexibility on exokernel systems , 1997, SOSP.

[17]  James H. Anderson,et al.  Real-time computing with lock-free shared objects , 1997, TOCS.

[18]  Hermann Kopetz,et al.  Distributed fault-tolerant real-time systems: the Mars approach , 1989, IEEE Micro.

[19]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[20]  William J. Dally,et al.  Hardware support for fast capability-based addressing , 1994, ASPLOS VI.

[21]  Carma McClure,et al.  Software Reuse Techniques: Adding Reuse to the System Development Process , 1997 .

[22]  Hermann Kopetz,et al.  The non-blocking write protocol NBW: A solution to a real-time synchronization problem , 1993, 1993 Proceedings Real-Time Systems Symposium.

[23]  Emin Gün Sirer,et al.  Protection is a software issue , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[24]  Fred B. Schneider,et al.  Hypervisor-based fault tolerance , 1996, TOCS.

[25]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[26]  Mike Hibler,et al.  Microkernels meet recursive virtual machines , 1996, OSDI '96.

[27]  Mohamed F. Younis,et al.  Resource scheduling in dependable integrated modular avionics , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[28]  Mohamed F. Younis,et al.  Partition scheduling in APEX runtime environment for embedded avionics software , 1998, Proceedings Fifth International Conference on Real-Time Computing Systems and Applications (Cat. No.98EX236).

[29]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[30]  Leslie Lamport,et al.  Concurrent reading and writing , 1977, Commun. ACM.