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.
The distinction is generally based on the consequence of failure.
Failure is categorized as
Occasional missed deadlines might be negligible. Repeated missed deadlines are still generally recoverable.
Similar to threads and processes in general purpose systems.
The task executes precisely according to a timer.
The task executes as needed. Also called event-driven.
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.
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.
Recall that failure may be catastrophic.
Are redundant systems enough?
How can reliability be improved?
Other papers are linked throughout.
Access these slides at https://jakob.kaivo.net/talks/2021/09/24/realtime/realtime.html.