Real Time Operating Systems - UNIT 1 JNTU Notes
Real Time Operating Systems - UNIT 1 JNTU Notes
Terminology
Systems Concepts
Software is traditionally divided into system programs and application programs.
System programs consist of software that interfaces with the underlying computer
hardware, such as schedulers, device drivers, dispatchers, and programs that act as tools for the
development of application programs. These tools include compilers, which translate high-order
language programs into assembly code; assemblers, which translate the assembly language into
a special binary format called object or machine code; and linkers, which prepare the object code
for execution. An operating system is a specialized collection of system programs that manage
the physical resources of the computer. As such, a real-time operating system is a systems
program.
Application programs are programs written to solve specific problems, such as payroll
preparation, inventory, and navigation. Certain design considerations play a role in the design of
certain systems programs and application software intended to run in real-time environments.
Definition: A system is a mapping of a set of inputs into a set of outputs.
Definition: The time between the presentation of a set of inputs to a system (stimulus)
and the realization of the required behavior (response), including the availability of all associated
outputs, is called the response time of the system.
Real-Time Definitions
Definition: A real-time system is a system that must satisfy explicit (bounded) response-
time constraints or risk severe consequences, including failure.
Definition: A failed system is a system that cannot satisfy one or more of the
requirements stipulated in the formal system specification.
Definition: A real-time system is one whose logical correctness is based on both the
correctness of the outputs and their timeliness.
When Is a System Real-Time?
Definition: A soft real-time system is one in which performance is degraded but not
destroyed by failure to meet response-time constraints.
Definition: A hard real-time system is one in which failure to meet a singledeadline may
lead to complete and catastrophic system failure.
Definition: A firm real-time system is one in which a few missed deadlines will not lead to
total failure, but missing more than a few may lead to complete and catastrophic system failure.
Determinism
Definition: A system is deterministic if, for each possible state and each set of inputs, a
unique set of outputs and next state of the system can be determined.
Common Misconceptions
1. Real-time systems are synonymous with “fast” systems.
2. Rate-monotonic analysis has solved “the real-time problem.”
3. There are universal, widely accepted methodologies for real-time systems specification
and design.
4. There is never a need to build a real-time operating system, because many commercial
products exist.
5. The study of real-time systems is mostly about scheduling theory.
Brief History
Lol
Functional Parameters
While scheduling and resource access-control decisions are made disregarding most functional
characteristics of jobs, several functional properties do affect these decisions. The work-load
model must explicitly describe these relevant properties, and this is done by the values of
functional parameters. Among them are pre-emptivity, criticality, optional interval, and laxity
type.
Preemptivity of Jobs
A job is preemptable if its execution can be suspended at any time to allow the execution of other
jobs and, later on, can be resumed from the point of suspension. Computation jobs that execute
on CPUs are examples of preemptable jobs. In nonreal-time systems, such jobs are typically
scheduled in a round-robin manner; this is possible because they are preemptable.
Criticality of Jobs
The importance (or criticality) of a job is a positive number that indicates how critical the job is
with respect to other jobs; the more critical the job, the larger its importance. the terms priority
and weight are often used to refer to importance; the more important a job, the higher its priority
or the larger its weight. We will use the terms priority and weight extensively later to mean
attributes that are unrelated to the importance.
Optional Executions
It is often possible to structure an application so that some jobs or portions of jobs are optional.
If an optional job or an optional portion of a job completes late or is not executed at all, the
system performance may degrade, but nevertheless function satisfactorily. In contrast, job and
portions of jobs that are not optional are mandatory; they must be executed to completion.
Therefore, during a transient overload when it is not possible to complete all the jobs in time, we
may choose to discard optional jobs (i.e, leave them unexecuted or partially executed) so that
the mandatory jobs can complete in time. In this way, the system can trade the quality of the
results it produces and the services it delivers for timeliness of its results and services.