Scheduling In Distributed Soft Real-Time Systems With Autonomous Components (Thesis)
|Authors:||Kao, Benjamin Chi-Ming|
Traditional real-time systems are usually used by very specific, mission-critical applications, such as a nuclear reactor monitor. For these applications task deadlines must not be missed. However, with the advances of computer and communication technology, and as computers become a commonplace utility, more applications are requiring a casual use of real-time technology. Task deadlines in these applications are soft in the sense that missing a deadline occasionally is, although undesirable, not a disaster. Example soft real-time applications include 800-number translation, cellular telecommunication, financial databases, patient-monitoring systems and so on. In these applications, deadlines are used as a tool to express performance goals. For example, a buy-sell action triggered by a stock-price update in a financial database system should be implemented within a specified period of time due to the volatility of the market. To conserve resources, soft real-time systems are usually not designed to guarantee every single deadline. Instead, the performance of a system is generally measured as the percentage of deadlines it meets. Deadline driven heuristic scheduling thus plays a major role in the design of soft real-time systems. This thesis studies the scheduling aspect of distributed soft real-time systems. In particular, it addresses the following cost-performance tradeoff. When designing a distributed real-time system, one approach is to build it from scratch, coding each component with algorithms and features that match the applications' needs. However, the development and maintenance cost of such a system would be high, and the development cycle could be long. Alternatively, one can build the system by piecing together well-tested, easy-to-maintain standard components, such as a commercial database server, a token ring network, etc. The disadvantage of this approach is that global real-time scheduling is not possible because it demands cooperation and coordination among the individual local schedulers. In this thesis, we discuss different scheduling techniques in a distributed soft real-time system that is constructed out of a variety of existing conventional non-real-time and real-time components, and show how these techniques improve the real-time performance of such a system without requiring the components to sacrifice autonomy. These techniques include subtask deadline assignment, server prioritization, and real-time emulation.