Programming and execution of object-based, parallel, hard, real-time applications
Karsten Schwan, Prabha Gopinath · 1988
To provide increased performance and reliability, embedded multiprocessors and distributed computer systems are used in real-time systems. Hence the associated control software is complex and dynamic. The performance of embedded control software has come to depend on its ability to adapt to changing real-time needs. CHAOS - A Concurrent Hierarchical Adaptable Object System, is a complete programming system for programming real-time applications. Its goal is to support the programming of real-time applications that are accountable, adaptable, efficient, and predictable. To achieve these goals the CHAOS system includes: (1) The CHAOS object based programming model, which allows application programmers to describe applications in terms of concurrent objects interacting with invocations. The notion of objects is supported by all levels of the CHAOS system. (2) An Entity/Relationship data representation framework augmented with Action Routines. The E-R database represents functional and performance attributes of the application and contains complete representations of all objects and their interactions. (3) An Adaptation Control System (ACS) consisting of: (a) A Monitoring system (MON), which observes and reports runtime information through embedded sensors. (b) A Data Management System (DMS) which stores information about the application. The DMS uses the E-R framework described above. (c) An Adaptation Controller (AC) which decides what adaptations must be made and when such adaptations should be made. (d) An Adaptation Enacter (AE) which actually performs the adaptations selected by the AC. (4) COLD, a declarative language accessed through a syntax-directed editor, that provides a high-level interface to the CHAOS system. COLD constructs describe object structures, object interaction patterns, and application timing characteristics and constraints. It also generates E-R representations in the DMS. This concentrates on one specific class of adaptations, viz. the problem of constructing applications that are predictable in the behavior they exhibit under conditions of overload. This thesis presents two algorithms that allow overload conditions to be handled. The Deadline Recomputation Algorithm statically and dynamically recomputes invocation deadlines in response to an overload condition. The Version Change Algorithm allows an application to dynamically switch versions so as to continue to meet real-time constraints. We present qualitative and quantitative results to show that the object model of application representation exemplified by CHAOS is viable for programming real-time applications.