Professional Documents
Culture Documents
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.
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.
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.
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 [ 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.
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.
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.
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.
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 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.
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.
For a real-time system to be capable of real-time computing, it must satisfy two requirements:
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:
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
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.
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.
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.
For a real-time system to be capable of real-time computing, it must satisfy two requirements:
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
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.
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.
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.
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® 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.
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.
[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.