April 24th, 2019 by
Hard real time determinism is characterized by two important qualities determinism and predictability. A hard real time systems operates in manner that can be mathematically predicted. Determinism and predictability refers to the absolute or relative time a real time operating system takes to complete a task. As such, in hard real time determinism, mathematical predictions can be applied to determine whether a given task can be completed within the given deadline or not. Factors that are considered during mathematical predictions include; thread priorities, CPU or CPU core numbers, system workload, number of running threads, and the operating system scheduling algorithm in use.
Determinism refers to system ability to execute tasks without concerns that external factors will disrupt the execution process. Hare real time determinism guarantees system behavior in regards to response durations, performance and functionality. As such, predictability and determinism go hand in hand. But, in a hard real time deterministic system, control of task execution behaviors is determined by the application developer. On the other hand, predictability is a by-product of good programming practices applied on a hard real time system that supports aforementioned behavior.
Another hard real time determinism aspect is that they are fixed. This implies that, unforeseen system events should never interrupt real time system task execution and its ability to work within the given deadlines. For instance, an airplane flight control system and an anti-brake system are two types of hard real time deterministic systems that should always be 100% deterministic and predictable to avoid fatal accidents that can cause loss of lives.
Latency in Hard Real Time Deterministic Systems
Latency is the duration measure of time taken to derive system response once a task command is issued. In hard real time deterministic systems, the main goal is to normalize latency as opposed to minimizing it. Hard real time system developers’ aim at determining latency; its size and consistency should be predictable. Whether the latency measures up to microseconds or minutes, the possibility of being predicated is what counts in hard real time deterministic systems. However, real time system developers may reduce and bound latency within the sub-millisecond range. Factors that determine latency include; programming language, applicable system’s operating system, network relationship and environment.
Jitters in Hard Real Time Deterministic Systems
In reference to real time systems, jitters refer to the fluctuations that affect latency among similar task executions. It entails evaluation of response distribution and standard deviation over time. Jitters can result from different aspects such as; real time system’s scheduling algorithms. For example, a hard real time system can process different periodic tasks where one task completes within its predetermined duration. Other times, the task ends well before the allotted time while other times it ends just before the duration is over. In this case, there is a jitter. Note that, some hard real time systems will have control algorithms that cannot condone such jitter.
In hard real time determinism, task completion before the predetermined duration is allowed. However, tasks must complete before the deadline and within a predefined time value. Deterministic systems always produce same output.