9.1_RT-Vocabulary
Download
Report
Transcript 9.1_RT-Vocabulary
Unit OS9:
Real-Time and Embedded Systems
9.1. Introduction and Vocabulary
Windows Operating System Internals - by David A. Solomon and Mark E. Russinovich with Andreas Polze
Copyright Notice
© 2000-2005 David A. Solomon and Mark Russinovich
These materials are part of the Windows Operating
System Internals Curriculum Development Kit,
developed by David A. Solomon and Mark E.
Russinovich with Andreas Polze
Microsoft has licensed these materials from David
Solomon Expert Seminars, Inc. for distribution to
academic organizations solely for use in academic
environments (and not for commercial use)
2
Roadmap for Section 9.1
Introduction and Vocabulary
Performance Measures
General Structure of a Real-Time System
Task Assignment and Scheduling
Uni- vs. Multi-Processor Scheduling Algorithms
Critical Sections and Priority Inversion
3
Introduction and Vocabulary
What is a Real-time System?
“A real-time system is one in which the correctness of
the computations not only depends on the logical
correctness of the computation, but also on the time at
which the result is produced. If the timing constraints of
the system are not met, system failure is said to have
occurred.”
Confusion:
Not a clear definition!
What are timing constraints ? (tasks have deadlines)
4
More confusion
What is the meaning of a “deadline"?
Do all tasks have to be executed before their deadline? (not
necessarily)
Sometimes “yes”: flight control in an aircraft
Sometimes “no”: Multimedia-App.
What is the meaning of “executed“?
How to decide whether a task has been (completely) executed?
Relatively simple: bank transaction
Impossible: Computation of π
How to deal with tasks that missed their deadlines?
Terminate or run to completion?
Aircraft accident vs. Videoconference
5
Task Value Functions
Value
Value
deadline
deadline
Value
deadline
6
Hard vs. Soft Real-time Systems
Hard real-time systems
Embedded systems: aircraft control, nuclear power plants,
chemical reactors, jet engines
Missing a deadline has life-threatening results.
Soft real-time systems
Multimedia, airline reservation system
Missing a deadline is undesirable and impacts system
performance but has not destroy lives or equipment.
7
Vocabulary
Example: Car & Driver
Well-known example for human control:
Comparable to a real-time computer system in many respects
Driver: real-time controller
Car: controlled process
Road and additional cars: operating environment
Actuators:
Wheels, engine, brakes
Controls:
Steering wheel, brake pedal, switches
8
Mission Statement
Drive within the allowed speed range from start A to
destination B without collisions with other cars or
stationary objects.
How can driver‘s performance be measured?
Departs from A and reaches destination B
Total driving time
But: road conditions have to be taken into account
What, if driver leaves the road?
Success: collision could be avoided
Failure: control over vehicle was lost
9
The Mission – a closer look
Performance is no absolute measure.
Performance measures quality of a result in terms of the
best possible result under the current environmental
conditions.
A closer look onto the mission:
Mission critical:
steering, brakes
Non-critical:
radio, lights
Deadlines are not constants (rush hour vs. Sunday drive)
How to measure the drivers physical condition?
10
Performance Measures
Average values say very little about the
performance of a real-time controller.
In our scenario:
How to value abrupt acceleration/deceleration
maneuvers ?
How to measure for unnecessarily increased fuel
usage?
What about extra slow driving?
11
Problems of RT Computing
Reliability, Fault-tolerance
Harsh environments, electromagnetic noise, rapidly changing
computation loads
Task Scheduling
Traditional Approach: fairness / round robin scheduling / time
slicing
RT System: fixed priority scheduling / generalized rate
monotonic scheduling / earliest deadline first
Memory Management
Swapping / paging
Static pre-allocation (mpin(), vm_wire())
12
Problems of RT Computing (contd.)
Cache Allocation Policy
Preemption may cause cache invalidation -> missed
deadline
Does tA = tA1 + tA2 hold?
A
tA1
B
A
A preempted
A resumed
tA2
A completed
13
Structure of a Real-time System
Environment
Controlled
process
Sensors
Job list
Clock
Trigger
generator
Actuators
Controller: RT-Computer/
Uni- vs. Multiprocessor
Execution
Display
Operator
Input data rates: typically < 1 KB/sec
Fixed set of processes; software is "pre-loaded“
Scheduler (offline vs. online schedules)
Output data rates: typically < 1 command/25 ms
14
Data Rates
Sensors/Actuators/Display/Input
Panels: low
Data conversion/formatting:
medium
(peripheral area)
Control algorithm: high
(central cluster)
Sensor and actuator layer
Peripheral area
Central
cluster
Controlled process often moves
through different phases
Varying sets of priorities,
control tasks, deadlines
15
Task Classes
Periodic, sporadic and aperiodic tasks
Critical and non-critical tasks
Non-critical real-time (soft real-time tasks):
Objective: maximize percentage of jobs
successfully executed
16
Areas of Interest
Architecture
Processor Architecture
Network Architecture
Architectures for Clock Synchronization
Fault-tolerance and Reliability Evaluation
Operating System
Task Assignment and Scheduling
Communication Protocols
Failure Management and Recovery
Clock Synchronization Algorithms
Others
Programming Languages
Databases
Performance Measures
17
Task Assignment and Scheduling
Objective: allocation and scheduling of tasks on
processors to ensure that deadlines are met
Problem statement:
Given a set of tasks, task precedence constraints, task
characteristics, and deadlines, we are asked to devise a
feasible allocation/schedule on a given computer
Task
consumes resources (cpu, memory, input data)
produces results
Precedence constraints: Ti needs output from Tj
18
Task Dependency Graph
Characteristics:
Precedence-relation "<“
Release time
Deadline (hard, soft)
Relative deadline: absolute deadline - release time
19
Periodicity
Periodic: released periodically, every Pi seconds
Period Pi
Runs once every period (not exactly every Pi sec)
Sporadic: not periodic, invoked irregularly
Upper bound on invocation rate
Aperiodic: sporadic but without bounded invocation rate
Example:
Sensor is read every 10 ms.
If value exceeds threshold, signal is send out
Sensor task is periodic; period p = 10ms
Task that sends the signal is sporadic
Maximum invocation rate for this sporadic task?
20
Feasibility of a Schedule
Task assignment/schedule is feasible if all tasks start
after their release times and complete before their
deadlines
Schedule S: Set of processors x Time
Set of tasks
S(i,t) is the task scheduled to be running on processor i at time t
Offline scheduling: precomputed schedule
Online scheduling: tasks are scheduled at arrival
Must be fast
Static-priority algorithms: tasks' priorities do not change within a
mode (Rate Monotonic Scheduling - RMS)
Dynamic-priority algorithms: priority changes with time (Earliest
Deadline First - EDF)
21
Preemptive vs. non-preemptive
Scheduling
Preemptive: tasks can be interrupted by other tasks
More flexible
Critical task must be allowed to interrupt less critical ones
Non-preemptive: task runs until completion or blocking
• S1: sub optimal; non-preemptive
• S2: T2 misses deadline; nonpreemptive
• S3: preemptive; resource optimal
• Overhead for preemption;
bookkeeping
• Preemption not always possible:
disk write
22
Uni-processor Scheduling
Traditional rate-monotonic scheduling (RMS)
Periodic, preemptable tasks
Deadlines equal task period
Set of n tasks is schedulable if total processor utilization is no
greater than n(2 1/n-1)
Task priorities are static; inversely related to periods
Optimal static-priority uniprocessor algorithm
Some results for deadline ≠ period
Rate monotonic deferred server (DS)
Similar to RMS
Can handle both: periodic and aperiodic tasks
23
Uni-processor Scheduling (contd.)
Earliest deadline first (EDF):
Tasks are preemptible
Task with earliest deadline has highest priority
Optimal uni-processor algorithm
If a task set is not schedulable on a single processor by EDF,
there is no other processor that can successfully schedule that
task set
Precedence and exclusion conditions:
RMS & EDF assume independent preemptible tasks
Only processing requirements are taken into account; memory,
I/O, other resource requirements negligible
24
Uni-processor Scheduling (contd.)
Multiple task versions:
System has primary and alternative version of tasks
Vary in execution time and quality of output
Primary: full-fledged task; top quality output
Alternative: bare-bone; lower-quality (acceptable) output; take
less much execution time
Schedule may pick alternative tasks during overload
IRIS tasks (increased reward with increased service):
Quality of output is monotonically nondecreasing function of
execution time
Example: iterative algorithms for computation of π
25
Multiprocessor Scheduling
Task assignment problem generally is NP-hard
Use heuristics
26
Multiprocessor Scheduling
Utilization balancing algorithm:
Assigns tasks to processors one by one
Balanced utilization at end of each step
Preemptive tasks
Next-fit algorithm:
Works in conjunction with RMS uni-processor algorithm
Divides task set into classes
Processors are exclusively assigned to tasks
Preemptive tasks
27
Multiprocessor Scheduling (contd.)
Bin-packing algorithm:
Assigns tasks to processors so, that utilization does not exceed
given threshold
Threshold is set so that uni-processor algorithm is able to
schedule assigned tasks
Preemptive tasks
Myopic offline scheduling algorithm:
Deals with non-preemptive tasks
Builds schedule using a search process
Focused addressing and bidding algorithm:
Tasks arrive at individual processors
If schedule not feasible: processor may offload some of its
workload onto other processors
Other processors may voluntarily take over tasks
28
Multiprocessor Scheduling (contd.)
Buddy strategy:
Three categories: underloaded, fully loaded, and overloaded
processors
Overloaded processors ask underloaded ones to take over
some load
Assignment with precedence constraints:
Takes precedence constraints into account
Trial-and-error process: assign communicating processes onto
same processor
29
Scheduling Problems
Critical Sections:
Source of anomalous behavior: priority inversion
Lower-priority tasks can block higher-priority tasks
Priority inheritance/priority ceiling protocols: finite upper bound to
the period of priority inversion
Mode Changes:
Mission can have multiple phases
Different task sets
Different priorities/arrival rates
How to add/delete tasks of the task list
Fault-Tolerant Scheduling:
Schedule backups in the event of failure
30
Critical Sections
Binary semaphores
Lower priority task may block higher priority task
• T3 has lock; blocks T1
• T2 interrupts T3
Priority inversion
31
Priority Inheritance Protocol
TIME_CRITICAL
TH starts,
request
resource
NORMAL
TL locks
resource
TH continues
to
completion
TL is boosted
until it frees
resource
TL runs as
scheduled
Time
TL blocks TH (by owning a semaphore)...
TL inherits temporarily priority of TH
Every lower priority task may block higher priority task
exactly once per critical section
Priority inheritance protocol may create deadlocks
32
Priority Ceiling Protocol
Priority ceiling of a semaphore is highest priority of any
task that may lock semaphore
Priority owner of lock = priority ceiling
Critical Section
Accessed By
Priority Ceiling
S1
T1, T2
P(T1)
S2
T1, T2, T3
P(T1)
S3
T3
P(T3)
S4
T2, T3
P(T2)
• Priority ceiling protocol prevents deadlocks
33
Requirements for a RT OS
The OS (operating system) must be multithreaded and preemptive
The OS must support thread priority
A system of priority inheritance must exist
The OS must support predictable thread synchronization
mechanisms
In addition, the OS behavior must be predictable. This means real-time
system developers must have detailed information about the system
interrupt levels, system calls, and timing:
The maximum time during which interrupts are masked by the OS and by device
drivers must be known.
The maximum time that device drivers use to process an interrupt, and specific
IRQ information relating to those device drivers, must be known.
The interrupt latency (the time from interrupt to task run) must be predictable and
compatible with application requirements.
34
Further Reading
Jane W.S. Liu, Real Time Systems, Prentice
Hall, ISBN 0-13-099651-3, 2000.
C.M. Krishna and Kang G. Shin, Real-Time
Systems, McGraw-Hill, ISBN: 0-07-057043-4,
1997.
Hermann Kopetz, Real-Time Systems: Design
Principles for Distributed Embedded
Applications, Kluwer Academic Publishers, ISBN
0-79-239894-7, 1997.
35