Real-Time Systems


Agenda

Real-Time Definition

A real-time system is one in which the correctness of operation is dependent on calculations meeting specific time deadlines in addition to correctly calculated values.

Real-time systems are often used in monitoring and controlling physical systems.

Hard and Soft Real-Time Systems

The distinction is generally based on the consequence of failure.

Hard Real-Time

Failure is categorized as catastrophic: could result in serious injury or death; damage or destruction of equipment; or, significant financial loss.

Soft Real-Time

Occasional missed deadlines might be negligible. Repeated missed deadlines are still generally recoverable.

Tasks

Similar to threads and processes in general purpose systems.

Periodic

The task executes precisely according to a timer.

Aperiodic

The task executes as needed. Also called event-driven.

Challenges

Temporal Dilemmas

General purpose OSes are not generally suited to scheduling real-time tasks.

Possible solution: Use a purpose-built RTOS, such as FreeRTOS.

Alternative solution: Bypass OS entirely, run directly on hardware.

Interesting research: Temporal Capabilities.

Small Systems

Many real-time systems are also embedded systems. That is, the hardware is typically low-power, with limited CPU performance and memory availability.

Hardware contstraints must be taken into account very early in design.

Reliability

Recall that failure may be catastrophic.

Are redundant systems enough?

How can reliability be improved?

References

Real-Time Systems: Design Principles for Distributed Embedded Applications, Second Edition, Hermann Kopetz, 2011.

Other papers are linked throughout.

Access these slides at https://jakob.kaivo.net/talks/2021/09/24/realtime/realtime.html.

Copyright © 2021 Jakob Kaivo <jakob@kaivo.net>