Systems are called real-time systems, if the correctness of the system does not only depend on the correctness of the system output but also on whether the output is delivered on time. Some... Show moreSystems are called real-time systems, if the correctness of the system does not only depend on the correctness of the system output but also on whether the output is delivered on time. Some examples of real-time systems are medical systems, automotive, aircrafts, etc. With the advent of Internet of Things (IoTs) and Cyber-Physical Systems (CPS), real-time systems and the systems that desire to apply real-time discipline are becoming ubiquitous. The increasing complexity of real-time software and the emerging new hardware inspire us to revisit the ``old-wise'' in the embedded system community and the real-time community and to propose novel solutions dealing with the drastic changes in real-time systems. Therefore, in this dissertation, we propose the new techniques and algorithms to improve the performance of real-time systems in terms of latency, energy, and schedulability. Show less
This dissertation addresses the problem of designing hard real-time streaming systems running a set of parallel streaming programs in an automated way such that the programs provably meet their... Show moreThis dissertation addresses the problem of designing hard real-time streaming systems running a set of parallel streaming programs in an automated way such that the programs provably meet their timing requirements. A scheduling framework is proposed with which it is analytically proven that any streaming program, modeled as an acyclic Cyclo-Static Dataflow (CSDF) graph, can be executed as a set of real-time periodic tasks. The proposed framework computes the parameters of the periodic tasks corresponding to the graph actors and the minimum buffer sizes of the communication channels such that a valid periodic schedule is guaranteed to exist. In order to demonstrate the effectiveness of the proposed scheduling framework, a system-level design flow that incorporates the scheduling framework is proposed. This proposed design flow accepts, as input, algorithmic sequential specifications of streaming programs, and then applies a set of systematic and automated steps that produce, as output, the final system implementation, which provably meets the timing requirements of the programs. The final system implementation consists of the parallelized versions of the input streaming programs together with the hardware needed to run them. The proposed scheduling framework and design flow are evaluated through a set of experiments. These experiments illustrate the effectiveness of the proposed scheduling framework and design flow. Show less