Documente Academic
Documente Profesional
Documente Cultură
Contents:
• Introduction
• Key Concepts
• Available tools, techniques, and metrics
• Relationship to other topics
• Conclusions
• Annotated Reference List
• Loose Ends
1.Introduction
Real-Time systems span several domains of computer science. They are defense and
space systems, networked multimedia systems, embedded automotive electronics etc. In a
real-time system the correctness of the system behavior depend 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.
2.Key Concepts
Real-Time systems can be classified 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.
An important common feature of the systems presented above is the fact that
they may be divided into 2 separate parts, the process and the controller. Such
terms may lead us to believe that real time systems only exist within the world of control
engineering. The terms process and controller are in this context only meant to separate
the objects in the world existing independently to our efforts and, on the other hand, the
fruits of our efforts to interact with this world automatically, i.e.
The real world (process) thus determines the proper real-time behavior of the
system.
! Train departure as well as AAU schedule determines the daily live of yours
sincerely.
! The user determines that at normal writing speed the processing and
echoing of characters in his word processor should not be behind more than 5
characters. Users ! demand that the mean service time at
http://www.altavista.com should be below 1min for 20000 hits.
Implementation Issues
In some real-time systems the interaction with the environment is
spread across ar large area so that distribution of functionality is
feasible - such systems are called distributed real-time systems as
opposed to localized real-time systems.
Both distribution and the fact that the real-world interactions are numerous
lead us to recognize that parallel computing (multitasking) is well suited for
real-time systems.
Development models
Following the CODARTS approach we do the same but now with a slight
change of focus. Now the relevant part of the world would not be complex
object structures but instead the physics interfacing directly to our system.
CODARTS is for concurrent object oriented design and analysis of real time
systems. Its emphasis is on the interfaces to the physical world and the
intrinsincly parallel nature of real time systems.
Subsystems
CODARTS proceeds with considering dividing the entire system into
subsystems. Subsystems are recognized as groups of similar functionality
or localization.
Behavioral specification
The behavioral specification of every objects is done by means of:
Task structuring
At this point we are left with a number of control transformations and
data transformations described by MiniSpecs. or STD’s. As we from the
beginning assumed our platform to be of multitasking type so that all our
transformations are to grouped into a preferably lower number of parallel
processes.
First we consider I/O and user role objects. We need to categorize objects
according to the timely nature of the device they are interfacing. We
categorize external devices into
! Periodic
! A periodic devices.
! Periodic I/O objects with similar periods may be grouped into 1 process.
! Periodic I/O objects where periods divide may be grouped into 1 task
3 One may overrule the above criterion when the enabled data
transformation is the one receiving the disabling stimulus.
! Ready time: r is the instant in time so that the job can begin
executing after r and not before.
OO* CODARTS
Analysis of Problem domain: Model component is embedded in
Information modelling which ends dataabstraction objects.
up in the model component.
Analysis of application domain: List Demands and user types are
of demands, user types, user preanalytic (specification phase).
interfaces and use patterns. User types is low numbered.
Real-Time Scheduling
A hard real-time system must execute a set of concurrent real-time tasks in 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 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.
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. On
the other hand, 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
non preemptive 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 non preemptive scheduling, the currently executing task will not
be preempted until completion.
Key people
• SAIEEP J (PESIT)
• David Dill
• Rajeev Alur
• Costas Courcourbetis
• Alan Burns
• Nicolas Halbwachs
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 automotive
industry and embedded real-time systems. Especially the marriage of the Internet with
multimedia applications has opened several new volume applications.