Real-Time Systems

Objectives and outcomes

Students learn about the characteristics and way the system functions in real time. They also master the techniques essential for the design and implementation of applications in real time. Upon completion of the course, students have a basic knowledge of fundamental problems, concepts and approaches to designing and analysing real-time systems. They understand and implement appropriate scheduling algorithms. They understand communication models and synchronisation of concurrent processes in such systems. They are able to use and manage resources in real-time systems. Students can make the most suitable choice of programming language for solving specific problems in real-time systems.

Lectures

The concept of time. Achieving predictability. Timing, precedence and resource constraints. Scheduling problems. Aperiodic task scheduling. Jackson’s algorithm. Horn’s algorithm. Non-preemptive scheduling. Bratley’s algorithm. The Spring algorithm. Precedence-constrained scheduling. Periodic task scheduling. Timeline scheduling. Rate monotonic scheduling (RM). Earliest deadline first (EDF). Deadline monotonic (DM). EDF with constrained deadlines. Fixed-priority servers. Background scheduling. Polling server. Deferrable server. Priority exchange server. Sporadic server. Slack stealing. Dynamic priority servers. Dynamic priority exchange server. Dynamic sporadic server. Total bandwidth server. Earliest deadline late server. Improved priority exchange server. Improving total bandwidth server. Constant bandwidth server. Resource access protocols. The priority inversion phenomenon. Non-preemptive protocol. Highest locker priority. Priority inheritance protocol. Priority ceiling protocol. Stack resource policy. Limited preemptive scheduling. Preemption thresholds. Deferred preemptions. Task splitting. Selecting preemption points. Handling overload conditions. Handling aperiodic overloads. Handling overruns. Handling permanent overloads.

Practical classes

Working with the FreeRTOS operating system in a simulated environment and on a microcontroller. Knowledge of the elements of the FreeRTOS operating system. Typical concurrency problems in real-time systems. Implementation and modification of the FreeRTOS scheduler. Implementation of support for aperiodic and periodic jobs. Implementation of support for precedence constraints. Implementation of jobs with limited resources and their scheduling.