0
\$\begingroup\$

I want to check whether I understand correctly:

  • Real-time means an action always performs in a specified amount of time and is never late for deadline - an upper bound, and sometimes a lower bound as well. If a system is real time, its execution time must always be deterministic.

  • To achieve real-time behavior, both hardware and software must be designed to satisfy the above constraint. Not all hardware comonents are real time, for example, the internet, and a real-time network is a network in which every node and connection behaves in real-time. Are there any other examples of non-realtime hardware?

  • When a hardware component is real-time, software that controls the hardware must be designed to do so. For this reason, we have to use low level language like assembly and C (i.e add instruction always takes 1 ms) to have tight control of execution time of every instruction.

  • We can achieve real-time behavior on non-realtime OS like Linux if we write software as if we are writing a realtime software: we can control the execution time of software. However, because desktop OS is non-deterministic (for flexibility), even if we run software designed for realtime execution in it, there's no guarantee that the software executes in realtime. In this situation, we call the software soft-realtimme.

Do I understand correctly?

\$\endgroup\$
3
  • \$\begingroup\$ Often, when we talk about 'real-time', the bounds on maximum response time are quite small. For example, I would expect real-time constraints to be much smaller than human perception or response times, i.e. smaller than 10 milliseconds. (Bigger than that feels like it isn't really hard real-time, unless the processing of inputs is so complex that it is genuinely difficult to achieve.) Failure to achieve the bounded time constraints have a consequence; the real-time upper bound is to ensure physical-world requirements are satisfied. \$\endgroup\$
    – gbulmer
    Commented Nov 9, 2014 at 12:01
  • \$\begingroup\$ Yes, that's why I gave an example of a network with less than 10ms latency. So I think I get this correctly. \$\endgroup\$
    – Amumu
    Commented Nov 9, 2014 at 12:15
  • 1
    \$\begingroup\$ I think you should read more about real time software issues such as priority based tasks, and the two types of multitasking used to implement real time systems - co-operative multitasking and pre-emptive multitasking. In multitasking systems, issues such as deadlock, shared resource starvation, priority inversion, and the software design in general is something to read about. \$\endgroup\$
    – KyranF
    Commented Nov 9, 2014 at 12:31

1 Answer 1

3
\$\begingroup\$

Yes, your understanding is correct. Real-time software must respond by a deadline. It may also need to implement accurate time delays (e.g. a traffic light controller). It must be deterministic in its time behaviour as well as its logical behaviour.

Note that this standard definition of "produces results by a deadline" could also be applied to some business software, e.g. payroll! The payroll program must produce results by a deadline, i.e. pay-day! But we don't normally think of payroll as a real-time program. Typical business payroll programs are not written as real-time, deterministic software.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.