Want to keep learning?

This content is taken from the Raspberry Pi Foundation & National Centre for Computing Education's online course, Design and Prototype Embedded Computer Systems. Join the course to learn more.

What is real-time computing?

In this step you will explore the properties of real-time computing. You will also investigate the different of real-time systems and how that affects tasks carried out within embedded systems.

Real-time computing, also known as reactive computing, is used to describe a computer system that reacts to events by performing tasks within a specific time interval. The time frame for these actions to be carried out is in the order of milliseconds.

Meeting these deadlines is key to the effectiveness of real-time systems. If a real-time system fails to carry out actions in time, it can result in the system being inadequate or useless.

There are three levels of real-time systems: hard, firm, and soft. Which category a real-time system falls into depends on how severely a missed deadline affects the system.

Hard real-time systems

Hard real-time systems have a strict deadline for responding to events and ensuring tasks are carried out in time. It is critical that each action takes place inside the specified time frame, otherwise there will be a system failure, which could result in damaging property or endangering life.

One example of this is a plane engine control system. This embedded system must function without a delay; otherwise it could result in engine failure or damage to the engine.

Another example is an inkjet printer. The printhead must move and deposit the right amount of ink very precisely; failure to meet a deadline will ruin the print job.

A printer with a piece of paper being printed with text and images or messing up a print job with jumbled words

Firm real-time systems

In a firm real-time system, some deadlines can be missed, which may degrade the quality of the task, but will not automatically result in system failure. Subtasks that are completed after the deadline are worthless and won’t be used. If several deadlines are missed, the system may cease to function properly.

An example of a firm real-time system is video streaming. If some of the video frames are not transmitted in time, the media will continue to play, but with a reduction in quality. Any video that has been generated after the deadline is useless and will be ignored. Too many skipped frames will result in video that is unwatchable.

Soft real-time systems

With soft real-time systems, if a deadline is missed, the system will not fail and the result of a task may still be useful. However, the value of the completed task may reduce as time goes on, which will lower the system performance.

For example, a weather station will consist of many sensors for measuring data such as the temperature, wind speed, and visibility. If these sensors do not transmit all of the data at the same time, it will not adversely affect the system, as long as the information is collected relatively close together.

Event-driven

All real-time computing systems are event-driven, meaning that they are built to react to system events.

An event in a computer system is an action or other detectable occurrence that a computer can react to. This could be a mouse click, or a button press.

There can also be system events that are not manually triggered, but are still detectable. These include things like a sensor value changing, or the computer running out of memory.

Responding to these events in a timely manner is what defines a real-time computing system.

Discussion

Can you think of any other examples of real-time systems? What type do you think they are: hard, firm, or soft?

Share your answers in the comments section below.

Share this article:

This article is from the free online course:

Design and Prototype Embedded Computer Systems

Raspberry Pi Foundation