You are on page 1of 14

INTRODUCTION

What is computer?

An electronic device that stores and manipulates information. Unlike a calculator, it is able to store a
program and retrieve information from its memory.

A computer is a machine that can be programmed to carry out sequences of arithmetic or logical
operations (computation) automatically. Modern digital electronic computers can perform generic
sets of operations known as programs. These programs enable computers to perform a wide range of
tasks. A computer system is a nominally complete computer that includes the hardware, operating
system (main software), and peripheral equipment needed and used for full operation. This term may
also refer to a group of computers that are linked and function together, such as a computer network
or computer cluster.

What is real time system?

The term “real-time system” refers to any information processing system with hardware and
software components that perform real-time application functions and can respond to events within
predictable and specific time constraints.

Real-Time systems span several domains of computer science. They are defense and space systems,
networked multimedia systems, embedded automative electronics etc. In a real-time system the
correctness of the system behavior depends not only the logical results of the computations, but also
on the physical instant at which these results are produced. A real-time system changes its state as a
function of physical time, e.g., a chemical reaction continues to change its state even after its
controlling computer system has stopped. Based on this a real-time system can be decomposed into a
set of subsystems i.e., the controlled object, the real-time computer system and the human operator.
A real-time computer system must react to stimuli from the controlled object (or the operator) within
time intervals dictated by its environment. The instant at which a result is produced is called a
deadline. If the result has utility even after the deadline has passed, the deadline is classified as soft,
otherwise it is firm. If a catastrophe could result if a firm deadline is missed, the deadline is hard.
Commands and Control systems, Air traffic control systems are examples for hard real-time systems.
On-line transaction systems, airline reservation systems are soft real-time systems.

Real-Time Systems

Real-Time systems can be classified [Kopetz97] from different perspectives. The first two
classifications, hard real-time versus soft real-time, and fail-safe versus fail-operational, depend on
the characteristics of the application, i.e., on factors outside the computer system. The second three
classifications, guaranteed-timeliness versus best-effort, resource-adequate versus resource-
inadequate, and event-triggered versus time-triggered, depend on the design and implementation,
i.e., on factors inside the computer system. However this paper focuses on the differences between
hard and soft real-time classification.

Hard Real-Time versus Soft Real-Time

Tabel 1 shows the major differences between hard and soft real-time systems. The response time
requirements of hard real-time systems are in the order of milliseconds or less and can result in a
catastrophe if not met. In contrast, the response time requirements of soft real-time systems are
higher and not very stringent. In a hard real-time system, the peak-load performance must be
predictable and should not violate the predefined deadlines. In a soft real-time system, a degraded
operation in a rarely occurring peak load can be tolerated. A hard real-time system must remain
synchronous with the state of the environment in all cases. On the otherhand soft real-time systems
will slow down their response time if the load is very high. Hard real-time systems are often safety
critical. Hard real-time systems have small data files and real-time databases. Temporal accuracy is
often the concern here. Soft real-time systems for example, on-line reservation systems have larger
databases and require long-term integrity of real-time systems. If an error occurs in a soft real-time
system, the computation is rolled back to a previously established checkpoint to initiate a recovery
action. In hard real-time systems, roll-back/recovery is of limited use.

Real-Time Scheduling

A hard real-time system must execute a set of concurrent real-time tasks in a such a way that all time-
critical tasks meet their specified deadlines. Every task needs computational and data resources to
complete the job. The scheduling problem is concerned with the allocation of the resources to satisfy
the timing constraints. Figure 2 given below represents a taxonomy of real-time scheduling
algorithms.

Real-Time scheduling can be categorized into hard vs soft. Hard real-time scheduling can be used for
soft real-time scheduling. Some of the research on QoS [ Klara95] addresses this problem in detail and
is not covered here. The present paper focuses on scheduling algorithms for hard real-time.
Hard real-time scheduling can be broadly classifies into two types: static and dynamic. In static
scheduling, the scheduling decisions are made at compile time. A run-time schedule is generated off-
line based on the prior knowledge of task-set parameters, e.g., maximum execution times,
precedence constraints, mutual exclusion constraints, and deadlines. So run-time overhead is small.
More details on static scheduling can be found in [ Xu90]. On the otherhand, dynamic scheduling
makes its scheduling decisions at run time, selecting one out of the current set of ready tasks.
Dynamic schedulers are flexible and adaptive. But they can incur significant overheads because of run-
time processing. Preemptive or nonpreemptive scheduling of tasks is possible with static and dynamic
scheduling. In preemptive scheduling, the currently executing task will be preempted upon arrival of a
higher priority task. In nonpreemptive scheduling, the currently executing task will not be preempted
until completion.

Dynamic Scheduling Algorithms

Schedulability test often used by dynamic schedulers to determine whether a given set of ready tasks
can be scheduled to meet their deadlines. Different scheduling algorithms and their schedulability
criteria is explained below.

Rate Monotonic Algorithm (RMA)

Rate monotonic algorithm [ Lui94] is a dynamic preemptive algorithm based on static priorities. The
rate monotonic algorithm assigns static priorities based on task periods. Here task period is the time
after which the tasks repeats and inverse of period is task arrival rate. For example, a task with a
period of 10ms repeats itself after every 10ms. The task with the shortest period gets the highest
priority, and the task with the longest period gets the lowest static priority. At run time, the
dispatcher selects the task with the highest priority for execution. According to RMA a set of periodic,
independent task can be scheduled to meet their deadlines, if the sum of their utilization factors of
the n tasks is given as below.

Ealriest Deadline-First (EDF) Algorithm:


EDF algorithm is an optimal dynamic preemptive algorithm based on dynamic priorities. In this after
any significant event, the task with the earliest deadline is assigned the highest dynamic priority. A
significant event in a system can be blocking of a task, invocation of a task, completion of a task etc.
The processor utilization can up to 100% with EDF, even when the task periods are not multiples of
the smallest period. The dispatcher operates in the same way as the dispatcher for the rate
monotonic algorithm.

The Priority Ceiling Protocol:

The priority ceiling protocol [ Lui90] is used to schedule a set dependant periodic tasks that share
resources protected by semaphores. The shared resources, e.g., common data structures are used for
interprocess communication. The sharing of resources can lead to unbounded priority inversion. The
priority ceiling protocols were developed to minimize the priority inversion and blocking time.

Static Scheduling Algorithms

In static scheduling, scheduling decisions are made during compile time. This assumes parameters of
all the tasks is known a priori and builds a schedule based on this. Once a schedule is made, it cannot
be modified online. Static scheduling is generally not recommended for dynamic systems. Applications
like process control can benefit from this scheduling, where sensor data rates of all tasks are known
before hand. There are no explicit static scheduling techniques except that a schedule is made to meet
the deadline of the given application under known system configuration. Most often there is no
notion of priority in static scheduling. Based on task arriaval pattern a time line is built and embedded
into the program and no change in schedules are possible during execution.

Available tools, techniques, and metrics

Real-Time Operating Systems (RTOS) can be used to provide predictable services to the applications.
RTOS provide the primitives real-time scheduling policies, inter process communication and run-time
monitoring. There a number of RTOSs, e.g. RT-Mach, VxWORKS, Solaris, Lynx.

Relationship to other topics


I/O

Real-Time systems interact with their environment by input/output subsystem. Sensors and actuators
are the examples of i/o elements in real-time systems. On the otherhand i/o an important part of
real-time systems.

Fault Tolerant Computing

Fault tolerance is important in safety-critical real-time systems because otherwise a single component
failure can lead to a catastrophic systems failure.

Quality of Service

With the growth of Internet several multimedia applications like multimedia are merging with real-
time systems. Scheduling in these systems is done to provide good quality of service. Some of the
real-time systems research is being extended to QoS scheduling to multimedia applications.

Application of computer to real-time system

The Need for Real-Time Systems

Growing global connectivity, changing consumer demands for always-available data, and always-on,
sensor-enabled enterprise environments are driving the creation, collection, and analysis of
exponential amounts of data. By 2025, IDC estimates that there will be 79.41 zettabytes of data
created and nearly 30 percent 2 of it will require real-time processing enabled by real-time systems.

The need for real-time processing is especially crucial for businesses in robotics, manufacturing,
healthcare, and high-precision industries, such as oil and gas and power, that rely on real-time data
for continuous improvement in safety, efficiency, and reliability.

One key factor in ensuring data is processed in real-time for businesses in these types of industries is a
system’s ability to prioritize, manage, and execute real-time workloads over non-real-time workloads.
For example, modern automotive manufacturers are highly reliant on robots to work together on a
production line to assemble a car. The robots will pass each other parts, drill or weld, or perform
safety inspections—all of which require a high level of precision and meticulous timing. In this use
case, a real-time system must have the ability to not only process data in a defined, predictable time
frame but also ensure that critical tasks, such as safety-related workloads, are completed prior to less
critical tasks.

Real-Time System Components

For a real-time system to be capable of real-time computing, it must satisfy two requirements:

Timeliness: The ability to produce the expected result by a specific deadline.

Time synchronization: The capability of agents to coordinate independent clocks and operate together
in unison.

When evaluating real-time systems, companies can measure the value of any system in how
predictable it is in completing events or tasks. Predictability can be further evaluated by examining
the system’s:

Latency: Measurement of time between two events

Compute jitter: Latency variation between iterations

Another important characteristic in real-time systems is their ability to perform concurrent execution
of real-time and non-real-time workloads in order to avoid critical system failure.

Finally, it’s important to understand how real-time systems are typically categorized. They are
designated as either a soft real-time system or a hard real-time system based on timing constraints
Benefits of Real-Time Systems for Applications

Real-time systems offer several benefits:

Benefits

More precise timing Real-time systems are designed to perform tasks that must be executed within
precise cycle deadlines (down to microseconds).

Higher predictability and reliability Because real-time systems process data in defined, predictable
time frames, execution of tasks or workloads is practically guaranteed, thus improving the reliability
of critical systems for business.

Prioritization of real-time workloads When specific real-time workloads must be completed within
the set deadline to avoid critical system failure, the ability to prioritize some workloads over others is
paramount. Some, but not all, real-time systems have this capability for workload or task
prioritization.

Applications

When it comes to helping companies meet their growing needs for real-time data processing with
reliable and predictable real-time systems, Intel provides the solutions, technologies, and partners to
make it happen.

Key Takeaways

A real-time system is characterized by its ability to produce the expected result within a defined
deadline (timeliness) and to coordinate independent clocks and operate together in unison (time
synchronization).

A hard real-time system has absolute deadlines, and if those allotted time spans are missed, a system
failure will occur. In soft real-time systems, the system continues to function even if missing a
deadline, but with undesirable lower quality of output.

A real-time system’s capability is “measured” on the basis of two requirements: latency and compute
jitter.
Intel offers hardware and reference system‒level software to develop real-time applications where
every element must perform in a reliable and predictable manner, within a specific time window, to
meet hard real-time requirements.

The Need for Real-Time Systems

Growing global connectivity, changing consumer demands for always-available data, and always-on,
sensor-enabled enterprise environments are driving the creation, collection, and analysis of
exponential amounts of data. By 2025, IDC estimates that there will be 79.41 zettabytes of data
created and nearly 30 percent 2 of it will require real-time processing enabled by real-time systems.

The need for real-time processing is especially crucial for businesses in robotics, manufacturing,
healthcare, and high-precision industries, such as oil and gas and power, that rely on real-time data
for continuous improvement in safety, efficiency, and reliability.

One key factor in ensuring data is processed in real-time for businesses in these types of industries is a
system’s ability to prioritize, manage, and execute real-time workloads over non-real-time workloads.

For example, modern automotive manufacturers are highly reliant on robots to work together on a
production line to assemble a car. The robots will pass each other parts, drill or weld, or perform
safety inspections—all of which require a high level of precision and meticulous timing. In this use
case, a real-time system must have the ability to not only process data in a defined, predictable time
frame but also ensure that critical tasks, such as safety-related workloads, are completed prior to less
critical tasks.

So how can data-driven industries make sure data is processed when and how it should be? Real-time
systems.

By 2025, IDC estimates that there will be 79.41 zettabytes of data created and nearly 30 percent 2 of it
will require real-time processing enabled by real-time systems.

What Is a Real-Time System?


The term “real-time system” refers to any information processing system with hardware and software
components that perform real-time application functions and can respond to events within
predictable and specific time constraints. Common examples of real-time systems include air traffic
control systems, process control systems, and autonomous driving systems.

Benefits of Real-Time Systems for Applications

Real-time systems offer several benefits:

Benefits

More precise timing Real-time systems are designed to perform tasks that must be executed within
precise cycle deadlines (down to microseconds).

Higher predictability and reliability Because real-time systems process data in defined, predictable
time frames, execution of tasks or workloads is practically guaranteed, thus improving the reliability
of critical systems for business.

Prioritization of real-time workloads When specific real-time workloads must be completed within
the set deadline to avoid critical system failure, the ability to prioritize some workloads over others is
paramount. Some, but not all, real-time systems have this capability for workload or task
prioritization.

Real-Time System Components

For a real-time system to be capable of real-time computing, it must satisfy two requirements:

Timeliness: The ability to produce the expected result by a specific deadline.

Time synchronization: The capability of agents to coordinate independent clocks and operate together
in unison.

When evaluating real-time systems, companies can measure the value of any system in how
predictable it is in completing events or tasks. Predictability can be further evaluated by examining
the system’s:
Latency: Measurement of time between two events

Compute jitter: Latency variation between iterations

Real-time system components graphic

Another important characteristic in real-time systems is their ability to perform concurrent execution
of real-time and non-real-time workloads in order to avoid critical system failure.

Finally, it’s important to understand how real-time systems are typically categorized. They are
designated as either a soft real-time system or a hard real-time system based on timing constraints.

Soft Real-Time Systems vs. Hard Real-Time Systems

The concept of real-time can be applied to a variety of use cases. The majority of those use cases, such
as web browsing and gaming, fall within the soft real-time classification.

Soft real-time is when a system continues to function even if it’s unable to execute within an allotted
time. If the system has missed its deadline, it will not result in critical consequences. The system can
continue to function, though with undesirable lower quality of output.

However, there are certain industries, such as robotics, automotive, utilities, and healthcare, where
use cases have higher requirements for synchronization, time lines, and worst-case execution time
guarantee. Those examples fall within the hard real-time classification.

Hard real-time is when a system will cease to function if a deadline is missed, which can result in
catastrophic consequences.

Automated machine working

Applications of Real-Time Systems

Process Control Systems


Process control systems are used in industrial applications where production is continuous and
interruptions cannot happen. These systems help businesses maintain quality and improve
performance by testing processes, collecting relevant data, and returning that data for monitoring and
possible troubleshooting. Companies in the oil and gas sector are key users of process control systems
and often realize numerous benefits, from increased efficiency to safer operation of facilities to less
downtime and fewer losses.

Machine Vision

Machine vision is used to help machines rapidly interpret data so they can see their surroundings and
make decisions quickly based on that visual input. These machines are often key to ensuring
production keeps flowing or critical processes continue. Real-time systems help ensure machines such
as these are able to process that data in near real-time.

Robotics

Robotics technologies are used for a variety of complex applications, many of which require precise
timing constraints to ensure a safe workload execution as well as the ability to continuously function.
Real-time systems are a valuable part of robot operating systems because of the need for real-time
computing and processing.

Manufacturing

Future-focused manufacturers rely on insights gained from real-time applications to avoid product
quality issues, improve efficiency and performance, and, ultimately, gain a competitive edge.
Embedded real-time systems can help manufacturers maximize productivity, improve product quality
and consistency, and enhance safety on the factory floor.

Healthcare and Patient Monitoring

How quickly data is processed in healthcare can often mean the difference between life and death.
Real-time systems are key to ensuring data from patient monitoring systems, such as heart rate
monitors, is available to clinicians when and where they need it to keep patients safe and healthy.

Intel’s Impact on Real-Time Systems


To support new solutions that require a high degree of real-time requirements, Intel has introduced
real-time performance technology, Intel® Time Coordinated Computing (Intel® TCC), to its product line
and continues to expand its support for Time-Sensitive Networking (TSN).

Intel® Time Coordinated Computing (Intel® TCC) is a new set of features that augment the compute
performance of Intel® processors to address the stringent time constraints required for hard real-time
applications. Intel® TCC makes the processors suitable for latency-sensitive applications while staying
generally power efficient and leaving sufficient performance for other concurrent tasks. Intel® TCC
helps ensure that every element in a workload performs in a reliable and predictable manner within
the required time window.

Time-Sensitive Networking (TSN) refers to a collection of IEEE standards, specifications, and


capabilities based on standard Ethernet networks to support time-sensitive applications and precision
time synchronization, timeliness for data delivery, and traffic scheduling. TSN can be used to optimize
performance between systems by leveraging an open, standards-based design. Intel now supports
more TSN standards than ever before, including:

IEEE 802.1AS: Generalized Precision Time Protocol

IEEE 802.1Qbv: Time-Aware Shaper

IEEE 802.1Qav: Credit-Based Shaper

IEEE 802.1Qbu: Frame Preemption

Intel® Solutions Transform Real-Time Systems

The growing need to meet hard-time requirements is not slowing down anytime soon. Intel has the
technology and expertise to help companies prepare for this upcoming deluge of data processing with
the new Intel® TCC and expanded support of TSN. These solutions take a new combined approach to
help address challenges often faced in emerging high-performance real-time solutions.

Conclusions

Real-Time systems span a large part of computer industry. So far most of the real-time systems
research has been mostly confined to single node systems and mainly for processor scheduling. This
needs to be extended for multiple resources and distributed nodes. Real-time systems are expanding
to several other domains such as automative industry and embedded real-time systems. Especially the
marriage of the Internet with multimedia applications has opened several new volume applications.

Reference

[Kopetz97] Kopetz, H., Real-Time Systems, Design Principles for Distributed Embedded Applications,
Klower Academic Publishers, 1997, Chpt. 10-11.

Notes: Wide variety of info on real-time systems.

[Xu90] Xu. J., & Parnas, D. (1990). Scheduling Processes with Release Times, Deadlines, Precedence,
and Exclusion Relations. IEEE Trans. On Software Engineering. Vol. 16(3). (pp. 360-369).

Notes: This paper describes static scheduling of processes with known Release Times, Deadlines,
Precedence, and Exclusion Relations.

[Klara95] Klara. N, & Jonathan, M. Smith(1995). The QoS Broker. IEEE Multimedia Magazine. Spring
1995 2(1),(pp. 53-67).

Notes: This paper talks resource orchestration by QoS brokers in networked multimedia systems. This
can be applicable to other soft real-time systems.

[Lui94] Lui Sha, Rajkumar Ragunathan & Shrish Sathaye (1994). Generalized Rate-Monotonic
Scheduling Theory: A Framework for Developing Real-Time Systems. In Proceeding of the IEEE. Vol.
82. No. 1, Jan 1994,(pp. 68-82).

Notes: This paper gives a good review of rate-monotonic scheduling theory and its application to real-
time systems in real-life.

[Lui90] Lui Sha, Rajkumar Ragunathan & Lehoczky, J. P.(1990). Priority Inheritance Protocols: An
Approach to Real-Time Synchronization. IEEE Transactions on Computers. Vol.: 39(9). (pp. 1175 -
1185).

Notes: This paper discusses about synchronization protocols in real-time systems and a priority
inheritance approach to them.

You might also like