Real-time software design and analysis of reconfigurable multi-sensor based systems

Development time and cost of software for real-time multi-sensor based systems can be significantly reduced by reusing software from previous applications. With today's systems, however, even if some software is reused, a large amount of new code is still required to create the "glue" which integrates modules created by programmers at different sites. In this dissertation, the design and analysis of reconfigurable real-time software which supports a software assembly paradigm is presented. The primary contributions of the work are a framework based on modelling software modules as dynamically reconfigurable port-based objects; and the identification, design, and implementation of operating system services required to support the new paradigm. A port-based object combines the design of software using objects with the use of the port-automata theory for formally modelling concurrent processes. Each object executes asynchronously, and has a predefined set of methods. Communication with other objects occurs only through its ports, which are implemented as state variables within a distributed shared memory hardware environment. The operating system services that have been designed and implemented to support the integration of reconfigurable port-based objects without the need for writing or generating new glue code include a global state variable communication mechanism, multiprocessor subsystem control, automatic task profiling, reconfigurable device drivers, global error handling, and external subsystem interfaces. In order to support the real-time scheduling of these dynamically reconfigurable task sets, a mixed-priority algorithm has been developed which combines the advantages of the rate monotonic and earliest-deadline-first algorithms, and provides improved support of aperiodic servers and guarantees for soft real-time tasks. Our reconfigurable software has been demonstrated in a joint Sandia National Laboratory and Carnegie Mellon University virtual laboratory demo, and is already being used by several institutions including NASA's Jet Propulsion Laboratory, Wright Patterson Air Force Base, and NIST (National Institute of Standards and Technology).

[1]  Stefan Savage,et al.  Processor capacity reserves: an abstraction for managing processor usage , 1993, Proceedings of IEEE 4th Workshop on Workstation Operating Systems. WWOS-III.

[2]  Takeo Kanade,et al.  The CMU reconfigurable modular manipulator system , 1988 .

[3]  Pradeep K. Khosla,et al.  Automatic generation of forward and inverse kinematics for a reconfigurable modular manipulator system , 1990, J. Field Robotics.

[4]  B. R. Markiewicz,et al.  Analysis of the computed torque drive method and comparison with conventional position servo for a computer-controlled manipulator , 1973 .

[5]  R.K. Jullig,et al.  Applying formal software synthesis , 1993, IEEE Software.

[6]  Krithi Ramamritham,et al.  Scheduling Tasks with Resource Requirements in Hard Real-Time Systems , 1987, IEEE Transactions on Software Engineering.

[7]  Russell H. Taylor,et al.  A hierarchical exception handler binding mechanism , 1984 .

[8]  Takeo Kanade,et al.  Vision and control techniques for robotic visual tracking , 1991, Proceedings. 1991 IEEE International Conference on Robotics and Automation.

[9]  Bradley J. Nelson,et al.  USING HYPERMEDIA AND RECONFIGURABLE SOFTWARE ASSEMBLY TO SUPPORT VIRTUAL LABORATORIES AND FACTORIES , 1994 .

[10]  Phillip J. McKerrow,et al.  Introduction to robotics , 1991 .

[11]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[12]  Pradeep K. Khosla,et al.  A software architecture-based human-machine interface for reconfigurable sensor-based control systems , 1993, Proceedings of 8th IEEE International Symposium on Intelligent Control.

[13]  Brian W. Beach,et al.  Connecting software components with declarative glue , 1992, International Conference on Software Engineering.

[14]  Mary Shaw,et al.  Abstraction Techniques in Modern Programming Languages , 1984, IEEE Software.

[15]  X. Yuan,et al.  A decomposition approach to non-preemptive scheduling in hard real-time systems , 1989, [1989] Proceedings. Real-Time Systems Symposium.

[16]  Janos Sztipanovits,et al.  Knowledge-Based Approach to Reconfigurable Control Systems , 1988, 1988 American Control Conference.

[17]  Peter Wegner,et al.  Concepts and paradigms of object-oriented programming , 1990, OOPS.

[18]  Lui Sha,et al.  Real-time synchronization protocols for multiprocessors , 1988, Proceedings. Real-Time Systems Symposium.

[19]  James M. Purtilo,et al.  Module reuse by interface adaptation , 1991, Softw. Pract. Exp..

[20]  M.B. Friedman,et al.  Development of a 5-DOF walking robot for Space Station application: overview , 1990, 1990 IEEE International Conference on Systems Engineering.

[21]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[22]  Morris Sloman,et al.  An overview of the REX software architecture , 1990, [1990] Proceedings. Second IEEE Workshop on Future Trends of Distributed Computing Systems.

[23]  Charles U. Martel,et al.  On non-preemptive scheduling of period and sporadic tasks , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[24]  R. Rajkumar Real-time synchronization protocols for shared memory multiprocessors , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[25]  Heinrich Meyr,et al.  High level software synthesis for signal processing systems , 1992, [1992] Proceedings of the International Conference on Application Specific Array Processors.

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

[27]  Lui Sha,et al.  Solutions for Some Practical Problems in Prioritized Preemptive Scheduling , 1986, RTSS.

[28]  Ingemar J. Cox,et al.  Exception handling in robotics , 1989, Computer.

[29]  R.G. Simmons,et al.  Concurrent planning and execution for autonomous robots , 1992, IEEE Control Systems.

[30]  Pradeep K. Khosla,et al.  Integration of real-time software modules for reconfigurable sensor-based control systems , 1992, Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems.

[31]  Jay K. Strosnider,et al.  ENHANCED APERIODIC RESPONSIVENESS IN HARD REAL-TIME ENVIRONMENTS. , 1987, RTSS 1987.

[32]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[33]  Sandeep Gulati,et al.  Parameter learning and compliance control using neural networks , 1992, [1992] Proceedings of the 31st IEEE Conference on Decision and Control.

[34]  Mauricio Ferreira Magalhães,et al.  Developing reconfigurable distributed hard real-time control systems in STER , 1991 .

[35]  S. A. Schneider,et al.  ControlShell: a real-time software framework , 1991, IEEE 1991 International Conference on Systems Engineering.

[36]  David J. Miller,et al.  An object-oriented environment for robot system architectures , 1991, IEEE Control Systems.

[37]  James S. Albus,et al.  NASA/NBS Standard Reference Model for Telerobot Control System Architecture (NASREM) , 1989 .

[38]  Pradeep K. Khosla,et al.  The Chimera II real-time operating system for advanced sensor-based control applications , 1992, IEEE Trans. Syst. Man Cybern..

[39]  Samuel J. Leffler,et al.  The design and implementation of the 4.3 BSD Unix operating system , 1991, Addison-Wesley series in computer science.

[40]  Thomas E. Bihari,et al.  Object-oriented real-time systems: concepts and examples , 1992, Computer.

[41]  Joseph R. Cavallaro,et al.  Robotic fault tolerance: algorithms and architectures , 1993 .

[42]  Pradeep K. Khosla,et al.  Implementing real-time robotic systems using CHIMERA II , 1990, Proceedings., IEEE International Conference on Robotics and Automation.

[43]  Kwei-Jay Lin,et al.  Building flexible real-time systems using the Flex language , 1991, Computer.

[44]  Michael A. Arbib,et al.  A formal model of computation for sensory-based robotics , 1989, IEEE Trans. Robotics Autom..

[45]  D. B. Stewart,et al.  Real-time scheduling of dynamically reconfigurable systems , 1991, IEEE 1991 International Conference on Systems Engineering.

[46]  Dorothy E. Setliff,et al.  Towards an automatic synthesis system for real-time software , 1991, [1991] Proceedings Twelfth Real-Time Systems Symposium.

[47]  Michael A. Arbib,et al.  Port Automata and the Algebra of Concurrent Processes , 1983, J. Comput. Syst. Sci..

[48]  M. A. Arbib,et al.  Linking schemas and module specifications for distributed systems , 1990, [1990] Proceedings. Second IEEE Workshop on Future Trends of Distributed Computing Systems.

[49]  Takeo Kanade,et al.  Real-time control of CMU direct-drive arm II using customized inverse dynamics , 1984, The 23rd IEEE Conference on Decision and Control.

[50]  D. Barstow An Experiment in Knowledge-Based Automatic Programming , 1986, Artif. Intell..

[51]  Satish K. Tripathi,et al.  The MARUTI hard real-time operating system , 1989, OPSR.

[52]  R. B. Hughes Automatic software verification and synthesis , 1989, RTSS 1989.

[53]  Larry Leifer,et al.  Applications of Damped Least-Squares Methods to Resolved-Rate and Resolved-Acceleration Control of Manipulators , 1988 .

[54]  David Alex Lamb,et al.  IDL: sharing intermediate representations , 1987, TOPL.

[55]  Hideyuki Tokuda,et al.  An object-oriented real-time programming language , 1992, Computer.

[56]  Jaideep Srivastava,et al.  Real-time scheduling of multiple segment tasks , 1990, Proceedings., Fourteenth Annual International Computer Software and Applications Conference.

[57]  Armando P. Stettner The design and implementation of the 4.3BSD UNIX operating system , 1988 .

[58]  T. Rodriguez,et al.  I Would Also like to Thank , 2007 .

[59]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[60]  A. Gates,et al.  On a fundamental relationship between software reuse and software synthesis , 1992, Proceedings of the Twenty-Fifth Hawaii International Conference on System Sciences.

[61]  Richard Alan Volpe,et al.  Real and Artificial Forces in the Control of Manipulators: Theory and Experiments , 1990 .

[62]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[63]  Gabor Karsai,et al.  Model-based software synthesis , 1993, IEEE Software.

[64]  Lui Sha,et al.  Exploiting unused periodic time for aperiodic service using the extended priority exchange algorithm , 1988, Proceedings. Real-Time Systems Symposium.

[65]  Krithi Ramamritham,et al.  The Design of the Spring Kernel , 1987, RTSS.

[66]  Karsten Schwan,et al.  CHAOS-Kernel Support for Objects in the Real-Time Domain , 1987, IEEE Transactions on Computers.

[67]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[68]  James F. Ready VRTX: A Real-Time Operating System for Embedded Microprocessor Applications , 1986, IEEE Micro.

[69]  Krithi Ramamritham,et al.  Preemptive Scheduling Under Time and Resource Constraints , 1987, IEEE Transactions on Computers.

[70]  John P. Lehoczky,et al.  The rate monotonic scheduling algorithm: exact characterization and average case behavior , 1989, [1989] Proceedings. Real-Time Systems Symposium.