Skip to Main Content
Real-time control software has been applied to a wide variety of real-world systems for diverse military, aerospace, industrial, medical, and civil applications. Most real-time systems are distributed and embedded applications, which are made up of heterogeneous components including sensors, microprocessors, and actuators. These components intensively interact with each other and with their environments. Thus, there are many dynamic and uncertain factors in these systems. Distinguished from software design for traditional industrial automation systems, real-time software is usually safety- or mission-critical, which requires high dependability during system operations. Such a system not only needs to satisfy all the functional requirements but also fulfill various end-to-end quality-of-service (QoS) demands such as timeliness, availability, fault tolerance, and so on. In such real-time systems, the available system resources such as central processing unit (CPU) cycles, communication bandwidth, and storage memory are usually restricted, and thus efficient resource allocation in different operation scenarios for QoS assurance is highly desired. As a result, the design of such types of complex real-time software is quite challenging and it is significantly distinct from the conventional non-real-time software design.