Electronic – Real time operating systems

cpumicrocontrolleroperating systemrtos

I have been asked this question: “Do you think the system will need deterministic time or real time responses?” The problem I have is distinguishing the difference between the two. I know that a real time response will respond to an input within a specific time period but I not sure what a deterministic response will do? Thanks.

Best Answer

A real time system has a constraint set as: the system should respond to an event within 10ms. Or: the system should run PID loop control at a fixed rate of 10kHz. Implicitly a period time of 100us is used.

Both are well set maximum time limits. However they are not exactly deterministic; one PID loop update may take 10us, while the next may take 15us. It also does not say about the passed time between updates; e.g. the "phase".

This "jitter" can be a problem in some systems. Deterministic describes that the "noise" is very low; i.e. it is very predictable how long an algorithm will run, it will not vary a lot (or it can be determined and compensated for) given varying inputs or states of the program.

Deterministic can be important while producing timed signals for example video. In that case you want to know exactly how long (intermediate) operations take to complete, even when the algorithm needs to take branches that take less or more time to execute.

Some high performance systems are challenging as they are "accelerated" CPU's that incorporate instruction pipelines and caches that may stall code execution in some conditions. Predicting/determining these conditions may be nearly impossible, which is why deterministic is very hard on complex platforms.

Related Topic