Function allocation in a robust distributed real-time environment
Karen Kay Lehman · 1991
Critical real-time computing systems are characterized by a stringent set of reliability and performance requirements. Distributed systems, often defined to encompass a broad class of loosely coupled computer systems, are an effective means of achieving reliability and increasing system throughput. Among the many desirable characteristics that can be achieved at the application level using such a system are dynamic response to changing processing loads of functions (tasks) and exploitation of inherent parallelism using distribution. In these systems, functions must be assigned and scheduled in an attempt to be completed prior to their deadlines. Initial assignment of functions to processors (nodes) must not preclude their subsequent dynamic reassignment/configuration in response to load changes or failure/repair. These allocation and reconfiguration methodologies are as diverse as their applications A technique to manage the complexity of building such a system is a layered architecture with reconfiguration accomplished by an individual layer of software. This thesis investigates allocation and reconfiguration algorithms. The proposed scheme for initial allocation is based on load balancing utilizing estimate execution times of the functions. The approach with respect to reconfiguration, simulated using concurrent Ada processing for a four node distribution system, is based on globally ordered broadcast communications between functions of the application program.