Understanding Hard Real-time Determinism

Mar 8, 2019

A hard real-time deterministic system is defined by bounded responses to system events. All tasks must run to completion in time window with a pre-defined time period and success must be guaranteed 100% of the time for the system to be deterministic. Further, if a set of real-time tasks were run multiple times the outcome would be exactly the same and in the same order. If a set of tasks exceed the allotted time window or do not finish in a consistent fashion from run to run, serious quality and safety issues can and do occur.  This consistent and predictable execution is known as determinism.

Without determinism, systems cannot be referred to as real-time. On the other hand, without bounded determinism, systems cannot be classified as hard real time. Though fully featured operating systems like Windows are not deterministic, some system designers believe that faster processor are capable of achieving a unique semblance of determinism.  In other words, having a faster processor means that a give set of tasks can complete in the allotted time window.   But a general purpose operating system (GPOS) like Windows will not guarantee that the tasks complete 100% of the time in the allotted time window.  This leads to spurious errors if the GPOS interrupts the tasks being processed.

The level of required determinism is defined by a function of real-time events frequency and the effect of system dynamics delays. That is, how often the set events occur and how quick the system must be at responding to those events. Note that, the system ability to place finite and acceptable bounds on value of such numbers distinguishes between a hard real time system and a soft real time system.   Only a real-time operating system (RTOS) can deliver hard real-time.  Soft Real time means approximately deterministic.

The aggregate hard real time determinism performance is improved by faster processors, peripherals and memory. However, these factors do not affect the bounded determinism of a system. Based on how operating systems like Windows manage tasks and assign task priorities, faster processors may not be in a position to change the poor event response times. Meaning that, increasing speed can reduce the intensity and spread of variations in response to events. In most cases, misplaced priorities are assigned to software tasks.

Speed and performance improvement in a hard real-time deterministic system is crucial. This is because, improved performance boosts an increase in algorithms complexity that is implemented within a given time period. Meaning that, a faster system can effectively boost the quality of data acquisition and control system that you can implement in a software. However, hard real-time determinism will still be required to ensure that an accurate and stable system is deployed regardless of the system’s performance level. So, what happens when you require human directed resources of an operating system like Windows as a measure of real time determinism? In such a case, you need an RTOS that runs alongside Windows. This is because, you need an RTOS that works with Windows and ensures deterministic processing within the Windows platform. The result is usually improved robustness and reliability since real-time processes run in memory segments that are managed separately.

These segments provide protection and address isolation between real-time processes and non-real time Windows platforms. Moreover, they simplify debugging and development since all processes are run in protected user modes as opposed to unprotected kernel-mode. Meaning that, hard real time deterministic systems guarantee increased safety and reliability.

Summary

Using faster processors cannot make full-featured general purpose operating systems more deterministic. However, adding a real-time operating system that is designed to offer hard real-time determinism and system compatibility solves this problem.