Real-Time Scheduling Techniques for Hard Real-Time Automotive Control Systems
As modern automotive systems grow in software complexity, it is imperative to have techniques and tools for rigorous analysis of embedded software for its non-functional correctness, especially real-time issues. There are mainly two classes of real-time systems. A hard real-time system is one that cannot afford to miss any deadlines, otherwise catastrophic events will occur. Actually in a real system, there would probably be various fault-tolerance mechanisms built in to ensure a certain degree of safety and reliability in the presence of faults, including timing faults (deadline misses), so that nothing catastrophic will occur even if a few deadlines are missed. Nonetheless, as system designers, we should strive to achieve the goal of not missing any deadlines. Some examples of hard real-time systems are automotive engine control, and x-by-wire applications, including drive-by-wire, steer-by-wire, and so on. Another class of real-time systems is soft real-time systems, which can afford occasional deadline misses. Missed deadlines here will likely affect the quality of service experienced by the user, but will not cause any physical harm. Examples of soft real-time systems include invehicle multimedia and telematics applications. We mainly focus on hard real-time systems in this paper.