Rajib Mall Chapters 1,2,3

Post on 30-Dec-2015

234 views 26 download

Tags:

description

engg book

transcript

03/08/10 11

Characteristics of Real-Time Systems

(Lecture 2)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 22

What is a Real-Time System?

• A system is called real-time: Whenever we need to quantitatively

express time to describe its behaviour.

• Recall how to describe the behaviour of a system? List inputs to the system and the

corresponding system response.

03/08/10 33

Important Characteristics• An embedded system responds to

events.

Process New Data

External Input Event

External Output Event

Example: An Automobile airbag system.

When the airbag’s motion sensors detect a collision, the system needs to respond by deploying the airbag within 10ms or less.

– or the system fails!

03/08/10 44

Embedded Systems = Hardware + RTOS +Application Program

SENSORS D/ACONVERSION

DIAGNOSTICPORT

SOFTWARE

A/DCONVERSION CPU ACTUATORS

MEMORY

HUMANINTERFACE

AUXILLARY SYSTEMS(POWER, COOLING)

ELECTROMECHANICALBACKUP & SAFETY

External

Environment

03/08/10 55

• An embedded system responds to external inputs: If response time to an event is too

long, the system fails.

• General purpose Operating Systems:Not designed for real-time use

• Real-time Operating Systems:Help tasks meet their deadline.

What is a Real-Time OS?

03/08/10 66

Characteristics of An Embedded System

•Real-time:• Every real-time task is associated with some time constraints, e.g. a Deadline.

•Correctness Criterion:• Results should be logically correct,

• And within the stipulated time.

03/08/10 77

Characteristics of an Embedded System cont…

• Safety and Task Criticality: A critical task is one whose failure

causes system failure (example: obstacle avoidance).

A safe system does not cause damage.

A safety-critical real-time system is one where any failure causes severe damage.

03/08/10 88

Characteristics of an Embedded System cont…

• Concurrency:A RT system needs to respond to

several independent events.

Typically separate tasks process each independent event.

For the same inputs, the result can be different (Non-determinism).

03/08/10 99

Characteristics of Embedded Systems cont…

• Distributed and Feedback Structure

• Custom Hardware: An embedded system is often

implemented on custom H/W that is specially designed and developed for the purpose.

03/08/10 1010

Characteristics of Embedded Systems

Feedback structure of real-time systems

03/08/10 1111

Characteristics of Embedded Systems cont…

• Reactive: On-going interaction between

computer and environment.

• Stability: Under overload conditions, work

acceptably for at least important tasks.

• Exception Handling:

03/08/10 1212

Safety and Reliability

•Independent concepts in traditional systems.

• A safe system does not cause damage even when it fails.

• A reliable system operates for long time without any failure.

03/08/10 1313

Safety and Reliability• In traditional systems, safety and

reliability are independent concerns: A system can be safe and unreliable

and vice versa.

Give examples of:• A safe and unreliable system

• A reliable and unsafe system

03/08/10 1414

Safety and Reliability cont…

• Interrelated in safety-critical system.A safety critical system is one

for which any failure of the system would result in severe damage.

• Safety can be ensured only through increased reliability.

03/08/10 1515

Safety and Reliability• An unreliable system can be made

safe upon a failure: By reverting to a fail-safe state.

• A fail-safe state: No damage can result if a system

fails in this state.

Example: For a traffic light, all lights orange and blinking.

03/08/10 1616

Fail-Safe State• The fail-safe state of a word

processing program:The document being processed has

been saved onto the disk.

• Fail-safe states help separate the issues of safety and reliability.Even if a system is unreliable, it

can always be made to fail in a fail-safe state.

03/08/10 1717

Safety and Reliability• For a safety-critical system

No fail-safe state exists.• Consider the navigation system on an

aircraft:• When the navigation system fails:• Shutting down the engine can be of

little help! As a result, for a safety-critical

system:• The only way to achieve safety is by

making it reliable.

03/08/10 1818

Safety-Critical Systems

• A safety-critical system is one for which a failure can cause severe damages.

• A safety-critical system does not have any fail-safe states:Safety can only be ensured through increased reliability.

03/08/10 1919

How to Design a Highly Reliable System?

–Error Avoidance

–Error Detection and Removing

–Fault Tolerance

03/08/10 2020

Fault Tolerance in RT System

• The essential idea: Provide redundancy

• Hardware Fault-Tolerance: Masks the effects of a hardware

fault.

• Software Fault-Tolerance: Masks the effects of a program

fault.

03/08/10 2121

Fault Tolerance in RT System

–Hardware FT:•Built in self test (BIST)

•Triple modular redundancy

–Software FT:•N-Version programming

•Recovery Blocks

03/08/10 2222

Triple Modular Redundancy

C1, C2 and C3 are redundant copies of same component

03/08/10 2323

N-version Programming• Software fault tolerance technique

inspired by TMR of hardware: Different teams are employed to

develop the same software. Unsatisfactory performance in

practice. Reason: Faults are correlated in the

different versions. All versions fail for similar reasons.

03/08/10 2424

Recovery Blocks

Software Fault Tolerance using recovery blocks

03/08/10 2525

Modern Embedded Systems

• Embedded systems incorporate: Application-specific hardware (ASICs, FPGAs

etc.)• performance, low power

Programmable processors: DSPs, controllers etc.

Mechanical transducers and actuators

Application Specific HW

Processor Cores

Analog I/O

Memory

03/08/10 2626

Block Diagram of An Embedded System

Processor

control panel

Real-timeOS

controllerprocesses

UIprocesses

ASIC

ProgrammableDSP

ProgrammableDSP

DSPAssembly

Code

DSPAssembly

Code

Dual-portedRAM

CODEC

03/08/10 2727

Some Basic Issues(Lecture 3)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 2828

Why Have an OS in an Embedded Device?

• Support for: Multitasking, scheduling, and synchronization

Timing aspects.

Memory management

File systems

Networking

Graphics displays

Interfacing wide range of I/O devices

Scheduling and buffering of I/O operations

Security and power Management

03/08/10 2929

• Example: A recent cell phone operating system contained over five million lines of code!

• Few, if any projects will have the time and funding: To develop all of this code on their own!

• Typical Embedded OS license fees are a few dollars per device –-- less than a desktop OS

• Some very simple low-end devices might not need an OS: But new devices are getting more complex.

Why Have an OS in an Embedded Device?

03/08/10 3030

What is Actually Being Used?

• What Types of Processors are used?

• What Operating Systems are used?

• What Programming Languages are used?

• Will examine data from a 2006 Market Survey of design engineers:

Embedded Systems Design Magazine.

03/08/10 3131

Processor Bit Size Used in New Embedded Designs

Data was derived from EETimes and Embedded Systems Design Magazine 2006 Embedded Market Survey

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00%

4-bit

8-bit

16-bit

32-bit

64-bit

03/08/10 3232

Processor Architectures Widely Used in New Embedded Designs

• ARM• X86• PowerPC• MIPS• Xscale (ARM)• Renesas SuperH

03/08/10 3333

32-64 bit Annual Processor Sales

0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00% 35.00% 40.00%

PowerPC

SuperH

MIPS

X86

ARM

Processor Sales Volume

Based on 2002 sales data

03/08/10 3434

Number of Processors Used in New Embedded Designs

Data was derived from EETimes and Embedded Systems Design Magazine 2006 Embedded Market Survey

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00%

More Than 5

3-5 Processors

2 Processors

1 Processor

03/08/10 3535

Processor Selection Issues• Software Support

OS, Compilers, Debug Tools, Applications• Price• Performance• Power

Battery Life (MIPS/Watt), Cooling (Fan?)• Desktop PC 100 W vs. Battery power 200 mw

• Availability Long term availability, Multiple Vendors?

03/08/10 3636

Use of Real-Time OS Kernels in New Embedded Designs

0.00% 10.00% 20.00% 30.00% 40.00% 50.00%

Open Source

Internally Developed

None

Commercial OS

Data was derived from EETimes and Embedded Systems Design Magazine 2006 Embedded Market Survey

03/08/10 3737

Pros and Cons of Open Source OS

• Embedded devices are extremely cost sensitive:Even a $1 license fee per device

can make a product uncompetitive.

• For satisfactory performance:The source code often needs to

be fine tuned.

03/08/10 3838

Open Source OS: Cons• “Free” OS can increase product development

cost: More time to develop device drivers, increased

labor cost.

More than offset the commercial OS license fees saved.

• Some other licenses may still required: Encoders & decoders, encryption, media player

• Open source license model may require: That you publish your device’s source code

03/08/10 3939

Commercial Operating Systems used in New Embedded Designs

0.00% 5.00% 10.00% 15.00% 20.00% 25.00% 30.00%

Others

Palm

Green Hills

Symbian

Wind River

Microsoft Emb.

Data was derived from EETimes and Embedded Systems Design Magazine 2006 Embedded Market Survey

03/08/10 4040

Programming Languages Used in New Embedded Designs

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00%

Others

Assembly

Java

C#

C++

C

Data was derived from EETimes and Embedded Systems Design Magazine 2006 Embedded Market Survey

03/08/10 4141

Future of Embedded Systems

• Use of multi-core processors:Present operating systems and tools do not make satisfactory utilization of the multiple cores.

• Support of wireless and mobile Internet.

• Power minimization.

03/08/10 4242

Modelling Timing Constraints

(Lecture 4)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 4343

Types of Real-Time Systems

• Real-time systems are different from the traditional systems: Tasks have deadlines associated with

them.

• A classified based on the consequence of a failure: Hard real-time systems

Soft real-time systems

Firm real-time systems

03/08/10 4444

Hard Real-Time Systems• If a deadline is not met:

The system is said to have failed.

• The task deadlines are of the order of micro or milliseconds.

• Many hard real-time systems are safety-critical.

• Examples: Industrial control applications

On-board computers

Robots

03/08/10 4545

Firm Real-Time Systems

• If a deadline is missed occasionally, the system does not fail: The results produced by a task after

the deadline are rejected.

Utility

D Time

03/08/10 4646

Firm Real-Time Systems

• Examples:A video conferencing application

A telemetry application

Satellite-based surveillance applications

03/08/10 4747

Soft Real-Time Systems• If a deadline is missed, the system

does not fail: Only the performance of the system is

said to have degraded.

The utility of a result decreases with time after the deadline.

Utility

D Time

03/08/10 4848

Soft Real-Time Systems

• Examples of soft real-time systems:Railway reservation system

Web browsing

In fact, all interactive applications

03/08/10 4949

Types of Real-Time Tasks Periodic:

• Periodic tasks repeats after a certainfixed time interval.

Sporadic:• Sporadic tasks recurs at random instants.

Aperiodic:• Same as sporadic except that minimumseparation between two instances can be0.

03/08/10 5050

Timing Constraints• A timing constraint:

Defined with respect to some event.

• An event:Can occur at an instant of timeMay also have durationGenerated either by the system

or its environment

03/08/10 5151

Events in a Real-Time System

• Events in a real-time system can be classified into:

Stimulus Events

Response Events

03/08/10 5252

Stimulus Event• Generated by the environment:

Act on the system.

• Typically asynchronous in nature: Aperiodic Can also be periodic

• Example: A user pressing a button on a

telephone set Stimulus event acts on the telephone

system.

Telephone System

03/08/10 5353

Stimulus Event cont…

• Periodic stimulus event example : Periodic sensing of temperature in a

chemical plant.

03/08/10 5454

Response Event• Produced by the system:

In response to some stimulus events

• Example: In a chemical plant as soon as the

temperature exceeds 100°C,

The system responds by switching off the heater.

03/08/10 5555

Classification of Timing Constraints

• Classification of the timing constraints in a system:

Can help us to quickly identify these from a problem description.

03/08/10 5656

Classification of Timing Constraints

• Different timing constraints can broadly be classified into:

Performance constraints

Behavioral constraints

03/08/10 5757

Types of Timing Constraints

• Performance constraints:Imposed on the response of the system.

• Behavioral constraints:Imposed on the stimuli generated by the environment.

03/08/10 5858

Types of Timing Constraints

• Both performance and behaviorial constraints can be classified into:Delay Constraints

Deadline Constraints

Duration Constraints

03/08/10 5959

Delay Constraint• Expresses minimum time delay:

Allowed between the occurrence of two arbitrary events e1 and e2

t(e2) - t(e1) ≥ d if e2 occurs earlier than d then a

delay violation would occur.t(e1) t(e2)

d

03/08/10 6060

Deadline Constraint• Expresses the maximum

permissible separation:

Between any two arbitrary events.

t(e2) - t(e1) ≤ d

03/08/10 6161

Duration Constraint• A duration constraint on an

event:Specifies the time period over

which the event acts.

• A duration constraint can be:minimum typemaximum type.

03/08/10 6262

Duration Constraints• Minumum:

Once a duration event starts:• It must not end before a certain

minimum time.

• Maximum: Once a duration event starts:

• It must end before a certain maximum time.

t(e1) t(e2)

Max

t(e1) t(e2)

Min

03/08/10 6363

Timing Constraints in an Example System

PSTN

03/08/10 6464

SS Deadline Example• Deadline is defined between two

stimuli. A behavioral constraint.

Imposed on stimulus.

• Once a user completes dialling a digit, He must dial the next digit within the

next 5 seconds.

Otherwise an idle tone is produced.

PSTN

03/08/10 6565

RS Deadline Example• Deadline is defined on the stimulus

from the respective response event. A behaviorial constraint.

Imposed on stimulus.

• Once the dial tone appears: The first digit must be dialed within 30

seconds,

Otherwise the system entersan idle state and an idle tone is produced

PSTN

03/08/10 6666

RR Deadline Example• Deadline is defined on the

response from another response. A performance constraint.

Imposed on response.

• Once ring tone is given to the callee, Ring back tone must be given to the

caller within two seconds,

Otherwise the call is terminated.

PSTN

03/08/10 6767

SR Deadline Example• Deadline is defined on the response

from the respective stimulus. A performance constraint. Imposed on response.

• Once the receiver of the hand set is lifted: The dial tone must be produced by the

system within 2 seconds, otherwise a beeping sound is produced

until the handset is replaced.

PSTN

03/08/10 6868

SS Type Delay Constraint

• A behaviorial constraint. Imposed on the environment.

• Once a digit is dialled, The next digit should be dialled

after at least 1 second.

Otherwise, a beeping sound is produced until the call initiator replaces the handset.

PSTN

03/08/10 6969

Duration Constraint• Specifies the time interval over which the

event acts.• If you press the button of the handset for

less than 15 seconds, It connects to the local operator.

• If you press the button for any duration lasting between 15 to 30 seconds, It connects to the international operator.

• If you keep the button pressed for more than 30 seconds, Then on releasing it would produce the dial

tone.

03/08/10 7070

Timing Constraints

Behaviorial ConstraintsPerformance Constraints

Delay Deadline Duration

RR SR RR SR

Delay Deadline Duration

RS SS RS SS

03/08/10 7171

Modelling Timing Constraints (cont…)

(Lecture 5)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 7272

Why Model Timing Constraints?

• Modelling time constraints in a system: Can serve as a formal specification

of the system.

May be used to automaticallygenerate code.

Can help to understand real-time behavior.

03/08/10 7373

Modelling Time Constraints

• Several approaches can be used. We discuss an approach based on FSM

proposed by Dasarathy (IEEE TSE, 1985).

• A state is defined in terms of the values assumed by some attributes. The states of an elevator may be denoted

in terms of its directions of motion.

Values of the attribute direction define the states up, down, and stationery.

03/08/10 7474

FSM

• Transition is annotated with: Enabling event

Action that takes place during transition

S1 S2

e1/set-timer(20 msec)

03/08/10 7575

Model of SS Deadline Constraint

• Once a user completes dialling a digit, He must dial the next digit within the next

5 seconds.

Otherwise an idle tone is produced.

Await second digit

AwaitNextdigit

AwaitCallerOnhook

03/08/10 7676

Model of RS Deadline Constraint

• Once the dial tone appears: The first digit must be dialed within 30 seconds,

Otherwise the system entersan idle state and an idle tone is produced

Await first digit

AwaitNextdigit

AwaitCallerOnhook

03/08/10 7777

Model of SR Deadline Constraint

• Once the receiver is lifted from the hand set: The dial tone must be produced by the system

within 2 seconds,

Otherwise a beeping sound is produced until the handset is replaced.

Await Dialtone

Awaitfirstdigit

AwaitReceiverOnhook

03/08/10 7878

Model of RR Deadline Constraint

• Once ring tone is given to the callee, Ring back tone must be given to the caller within

two seconds,

Otherwise the call is terminated.

Await Ringback

tone

Awaitfirstdigit

AwaitReceiverOnhook

03/08/10 7979

Model of Delay Constraint

• Once a digit is dialled, The next digit should be dialled after at least 1

second.

Otherwise, a beeping sound is produced until the call initiator replaces the handset.

Await nextevent

Awaitnextdigit

AwaitReceiverOnhook

03/08/10 8080

Duration Constraint Example

• If you press the button of the handset for less than 15 seconds, It connects to the local operator.

• If you press the button for any duration lasting between 15 to 30 seconds, It connects to the international operator.

• If you keep the button pressed for more than 30 seconds, Then on releasing it would produce the

dial tone.

03/08/10 8181

Model Construction for Duration Example

• To construct the model:

First identify the deadline and delay constraints.

The constraints are for which events?

03/08/10 8282

Model of Duration Constraint Example

Await event1

Local operator

Internloperator

Await event2

Await Buttonrelease

Dialtone

03/08/10 8383

Exercise 1• When the temperature of a

chemical reactor rises above T°C:The heater needs to be shut-

off within 10mSecOtherwise, the entire plant is

shut-off.

03/08/10 8484

Exercise 2• Identify and model time

constraints:Once the start switch of a

wash machine is pressed, Stirring commences:

• Continues until a preset timer expires or the stop button is pressed by the user.

03/08/10 8585

Basics of Real-Time Task Scheduling

(Lecture 6)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 8686

Introduction• Real-time tasks are generated due

to certain event occurrences:Either internal or external events.

• Example:A task may get generated due to a

temperature sensor sensing high-level.

• When a task gets generated: It is said to be released or arrived .

03/08/10 8787

Real-Time Task Scheduling• Task Scheduling:

Essentially refers to the order in which the various tasks are to be executed.

Primary means adopted by an operating system to meet task deadlines.

So, scheduling is an important problem in RTOS.

03/08/10 8888

Task Instance• A task typically recurs a large

number of times: Each time triggerred by an event

Each time a task recurs, an instance of the task is said to have been generated.

• The ith time a task T recurs: Task instance Ti is said to have

arrived.

03/08/10 8989

Relative and Absolute Deadlines

• Absolute deadline: Counted from time 0.

• Relative deadline: Counted from time of occurrence of

task.

abs

deadline

relative

0 t d

03/08/10 9090

Response Time• The time from the occurrence of the

event generating the task: To the time results are produced by the

task.

Response time

0 e t

03/08/10 9191

Response Time• For soft real-time tasks:

The response time needs to be minimized.

• For hard real-time tasks:As long as the task completes

within its deadline, • No advantage of completing it any early.

03/08/10 9292

Types of Real-Time Tasks Periodic:

• Periodic tasks repeats after a certainfixed time interval.

• A vast majority of real-time tasks areperiodic.

Sporadic:• Sporadic tasks recurs at random instants.

Aperiodic:• Same as sporadic except that minimumseparation between two instances can be0.

03/08/10 9393

Phase of a Periodic Task

• Phase for a periodic task: The time from 0 till the occurrence of

the first instance of the task.

Denoted by Φ.

Φ

0 e1 timee2 e3

P P

03/08/10 9494

Phase Example• The track correction task starts

2000 mSecs after the launch of the rocket: Periodically recurs every 50 milli

Seconds then on. Each instance of the task requires

a processing time of 8 mSecs and its relative deadline is 50 mSecs.

Φ

0e1 timee2

e3

P P

03/08/10 9595

Important Scheduling Terminologies

– Valid Schedule:• At most one task is assigned to a processor at a time.

• No task is scheduled before it is ready.

• Precedence and resource constraints of all tasks are satisfied.

– Feasible Schedule:• Valid schedule is one in which all tasks meet their respective time constraints.

03/08/10 9696

Important Scheduling Terminologies

– Proficient Scheduler:• A scheduler S1 is as proficient as another Scheduler S2:

• If whichever tasks that S2 can feasibly schedule so can S1, but not vice versa.

• Equally proficient schedulers:

• If a task set scheduled by one can also be scheduled by the other and vice versa.

03/08/10 9797

Important Scheduling Terminologies

Optimal Scheduler:•An optimal scheduler can feasibly schedule any task set that can be scheduled by any other scheduler.

03/08/10 9898

Scheduling Points• At these points on time line:

Scheduler makes decision regarding which task to be run next.

• Clock-driven: Scheduling points are defined by

interrupts from a periodic timer.

• Event-driven: Scheduling points defined by task

completion and generation events.

03/08/10 9999

Real-Time Task Scheduling cont…

• Significant amount of research has been carried out to develop schedulers for real-time tasks:

Schedulers for uniprocessors

Schedulers for multiprocessors and distributed systems.

03/08/10 100100

Task Scheduling on Uniprocessors

• Focus of much research during the 1970s and 80s.

• Real-time task schedulers can be broadly classified into: Clock-driven

Event-driven

03/08/10 101101

Clock-Driven Scheduling: Basics

• Decision regarding which job to run next is made only at clock interrupt instants: Timers are used to determine the

scheduling points.

• Which task to be run when and for how long is stored in a table.

03/08/10 102102

Clock-Driven Scheduling

• Popular examples:Table-driven scheduler

Cyclic scheduler

• Round robin scheduling is also an example of clock-driven scheduling.

03/08/10 103103

Clock-Driven Schedulers• Also called offline schedulers

and also static schedulers:Used extensively in embedded

applications.

• Pro: Very space and time efficient.

• Con: Cannot handle sporadic or aperiodic tasks.

03/08/10 104104

Table-Driven Scheduling

TaskStart timeStop time

T1 0 100

T2 101 150

T3 151 225

03/08/10 105105

Cyclic Schedulers(Lecture 7)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 106106

Task Scheduling on Uniprocessors

• Focus of much research during the 1970s and 80s.

• Real-time task schedulers can be broadly classified into: Clock-driven

Event-driven

03/08/10 107107

Clock-Driven Scheduling

• For scheduling n periodic tasks:The schedule is stored in a table.•Repeated forever.

The designer needs to develop aschedule for what period?

• LCM(P1,P2,...,Pn).

03/08/10 108108

Clock-Driven Scheduling• Used in low cost applications:

Pro:• Compact: Require very little storage space

• Efficient: Incur very little runtime overhead.

Con:• Inflexible: Very difficult to accommodate dynamic tasks.

• The simplest is table-driven scheduler.

03/08/10 109109

Disadvantage of Table-Driven Schedulers

• When the number of tasks are large:Requires setting a timer large

number of times.The overhead is significant:

•Remember that task instance runs only for a few milli or microseconds.

03/08/10 110110

Cyclic Schedulers• Cyclic schedulers are very

popular:Extensively being used in the

industry. A large majority of small

embedded applications being manufactured at present use cyclic schedulers.

03/08/10 111

Cyclic Schedulers• The schedule is stored for one

major cycle: Precomputed schedule is repeated.

• A major cycle is divided into: One or more minor cycles (frames).

• Scheduling points for a cyclic scheduler: Occur at the beginning of frames.

03/08/10 112

Major Cycle• In each major cycle:

The different tasks recur at identical time points.

Major cycleMajor cycle

Frame (minor cycle)

03/08/10 113

Major Cycle• The major cycle of a set of tasks

ST={T1,T2,...,Tn} is at least:

LCM(p1,p2,...,pn)

Holds even when tasks have arbitrary phasings.

Can be greater than LCM when F does not divide major cycle.

03/08/10 114114

Minor Cycle (Frame)• Each major cycle:

Usually contains an integral number of minor cycles(frames).

• Frame boundaries are marked:

Through interrupts from a periodic timer.

03/08/10 115

A Typical Schedule

T2F3

T3F2

T2F1

TaskFrame

03/08/10 116116

Minor Cycle (Frame)• Each task is assigned to run in

one or more frames.

• Frame size (F) is an important design parameter while using cyclic scheduler.A selected frame size has to

satisfy a few constraints.

03/08/10 117117

Selecting an Appropriate Frame Size (F)

• Minimum context switch: F should be larger than each task size. Sets a lower bound.

• Minimization of table size: F should squarely divide major cycle. Allows only a few discrete frame size.

• Satisfaction of task deadline: Between the arrival of a task and its

deadline:• At least one full frame must exist.

Sets an upper bound

03/08/10 118118

Minimum Context Switch

• A task instance must complete running within its assigned frame:

A task might otherwise have to be suspended and restarted in a later frame.

The scheduler would get invoked many times.

03/08/10 119

Minimum Context Switch

•To avoid unnecessary context switches:

•Selected frame size should be larger than execution time of each task.

•Sets a lower bound for frame size.

03/08/10 120120

Minimization of Table Size• Unless the minor cycle squarely

divides the major cycle: Storing schedule for one major

cycle would not be sufficient.

Schedules in the major cycle would not repeat:• This would

make the size of the table large.

Major cycleMajor cycle

Frame

03/08/10 121

Major cycleMajor cycle

Frame

03/08/10 122122

Satisfaction of Task Deadline

• Between the arrival of a task and its deadline: At least one full frame must exist.

• If there is not even a single frame: The task would miss its deadline,

• By the time it could be taken up for scheduling, the deadline could be imminent. ti di

F F

03/08/10 123123

Satisfaction of Task Deadline

• The worst case for a task occurs when the task arrives just after a frame has started.

ti di

ti di

ti would miss deadline

ti deadline can be met

03/08/10 124124

Satisfaction of Task Deadline

• The minimum separation of an arrival time for ti from a frame start:

GCD(F,pi)

• Thus, for all ti

2F-GCD(F,pi) ≤ di must be satisfied

ti di

F F

03/08/10 125

Selection of a Suitable Frame Size

• Several frame sizes may satisfy the constraints:• Plausible frames.

• A plausible frame size has been found:• Does not mean that the task set is schedulable.

• The smallest plausible frame size needs to be chosen:• The chances of successful scheduling is higher.

03/08/10 126126

Example 1• Compute a suitable frame

size for the following task set:e1 = 1, p1=4, d1=4e2 = 1, p2=5, d2=5e3 = 1.5, p3=20, d3=20

03/08/10 127127

Example 2• Compute a suitable frame

size for the following task set:e1 = 1, p1=4, d1=4e2 = 2, p2=6, d2=6e3 = 3, p3=20, d3=20

03/08/10 128

What If None of the Frame Sizes is Suitable?

•Possible culprit is a task with large

execution time e.g. (20,100,100):

• Prevents a smaller frame from being chosen.• Try splitting task with large execution time into two or three sub-

tasks.

• Example: T1=(20,100,100) can be split into

(10,100,100) and (10,100,100).

03/08/10 129129

Pros and Cons of Cyclic Schedulers

• As number of tasks increases: It becomes very difficult to

select a suitable frame size.

Results in suboptimal schedules. • CPU times in many frames are wasted.

• Results in poor schedulability.

03/08/10 130

A Generalized Task Scheduler

• Many practical systems:• Consist of a mixture of periodic, aperiodic, and sporadic tasks.

• How can sporadic and aperiodic tasks be scheduled using a cyclic scheduler?

• Use the slack time and the unused frames:• As and when the spordic and aperiodic tasks arise.

03/08/10 131

cyclic-scheduler() { current-task T = SchedTab[k];k = k + 1;k = k mod N;

dispatch-current-Task(T);schedule-sporadic-tasks();

schedule-aperiodic-tasks();

idle(), }

Cyclic Scheduler: Pseudocode

03/08/10 132132

Event-Driven Scheduling

(Lecture 8)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 133

Event-Driven Schedulers

• Unlike clock-driven schedulers:

These can handle sporadic and aperiodic tasks.

Used in more complex applications.

03/08/10 134134

Event-Driven Scheduling• Scheduling points:

Defined by task completion and arrival events.

• Preemptive schedulers:

On arrival of a higher priority task, the running task may be preempted.

• Simplest event-driven scheduler:

Foreground-Background Scheduler

03/08/10 135135

Scheduling Points for Event-Driven Schedulers

• Scheduling decisions are made when certain events occur:

•A task becoming ready

•A task completing execution

03/08/10 136

Time-Sliced Round Robin Scheduling: A Hybrid Scheduler

•Time-sliced round robin schedulers:• Commonly used in the traditional operating

systems.•We shall not discuss much about it.

•Scheduling points:• Tasks completing or suspending• Clock interrupts

•Less proficient than cyclic and table-driven schedulers:• Foreground task priorities not taken into

account.

03/08/10 137137

Event-Driven Schedulers• These are called preemptive

schedulers: When a higher priority task becomes ready any executing lower priority task is preempted.

• These are greedy schedulers: Never keep the processor idle if a

task is ready.

03/08/10 138138

Preemptive Scheduling

• Independent tasks execute on a uniprocessor.Two algorithms pretty much summarise the important results in this case:•EDF

•RMA

03/08/10 139139

Foreground-Background Scheduler

• Real-time tasks are run as foreground tasks.

Sporadic, aperiodic, and non-real-time tasks are run as background tasks.

• Among the foreground tasks, at every scheduling point:

The highest priority foreground task is scheduled.

• A background task can run:

When no foreground task is ready.

03/08/10 140

Background Task Completion Time

•Let TB be the only background task• Its processing time be eB

• The time for it to complete would be:

i

i

B

p

e

ectB

1

03/08/10 141

Example 1• Consider a real-time system:

• Tasks are scheduled using foreground-background scheduling.

• There is only one periodic foreground task:• P1=50 msec, e1=100 msec, d1=100 msec

• Background task TB, eB=1020msec.

• Compute the completion time for the background task.

03/08/10 142

Example 2

•On account of every context switch :•Assume an overhead of 1 msec.

•Compute the completion time of TB.

03/08/10 143143

Event-Driven Static Priority Schedulers

• The task priorities once assigned by the programmer:

Do not change during runtime.

RMA (Rate Monotonic Algorithm) is the optimal static priority scheduling algorithm.

03/08/10 144144

Event-Driven DynamicSchedulers

• The task priorities can change during runtime:Based on the relative urgency

of completion of tasks.

EDF (Earliest Deadline First) is the optimal uniprocessor scheduling algorithm.

03/08/10 145145

Event-Driven Schedulers• First let us consider the

simplest scenario:Uniprocessor

Independent tasks:•Tasks do not share resources

•There is no precedence ordering among the tasks

03/08/10 146146

EDF• EDF is the optimal uniprocessor

scheduling algorithm:• If EDF cannot feasibly schedule

a set of tasks:Then, there can exist no other

scheduling algorithm to do that.

• Can schedule both periodic and aperiodic tasks.

03/08/10 147

EDF•At any scheduling point:

•The scheduler dispatches the task

having the shortest deadline among

all ready tasks.

•Preempts any task (with longer

deadline) that might be running.

03/08/10 148

EDF Schedulability Check

•Sum of utilizations due to all tasks is less than one:

•Both the necessary and sufficient condition for schedulability.

11

iup

en

ii

i

03/08/10 149149

Example 1• Compute a suitable frame

size for the following task set:e1 = 1, p1=4, d1=4e2 = 1, p2=5, d2=5e3 = 5, p3=20, d3=20

03/08/10 150

Is EDF Really a Dynamic Priority Scheduling Algorithm?

•If EDF were a dynamic priority

algorithm:

• At any point of time, the priority value

of a task can be determined.

•Also we should be able to show how it

changes with time.

03/08/10 151

Dynamic Priority•The longer a task waits in ready queue:

• The higher the chance (probability) of

its being taken up for scheduling.

• We can imagine a virtual priority value

associated with a task:

• Keeps increasing with time until the task is

taken up for scheduling

03/08/10 152152

EDF: An Evaluation• EDF is:

Simple Optimal

• But, is rarely used:No commercial operating system

directly supports EDF scheduling.Why?

•Let us examine the disadvantages of EDF.

03/08/10 153

Disadvantages of EDF

•Main disadvantages of EDF:

•Poor transient overload handling

•Runtime inefficiency

•Poor support for resource sharing

among tasks.

03/08/10 154154

Poor Transient Overload Handling

• Why does transient overload occur? A task might take more time than

estimated.

Too many tasks might arise on some event.

• When an executing task takes more time: It is extremely difficult to predict

which task would miss its deadline.

03/08/10 155155

Runtime Inefficiency• EDF is not very efficient:

In an implementation of EDF:• The tasks need to be maintained sorted.

• A priority queue based on task deadlines is required.

The complexity of maintaining a priority queue is:• log(n), n is the number of tasks.

03/08/10 156156

Poor Resource Sharing Support

• Support for tasks to share non-premptable resources (critical sections):

Extremely inefficient.

Tasks often miss their deadlines.

We shall elaborate this problem later in our discussions.

03/08/10 157157

General EDF Schedulability• When task deadlines differ from task

periods: The schedulability criterion needs to be

generalized:

• If pi<di, it becomes sufficient: But not a necessary condition

1),min(1

n

iii

i

dp

e

03/08/10 158158

Implementation of EDF• Simple FIFO queue:A freshly arriving task is inserted at the end of the queue.

• Sorted queue:Priority queue

03/08/10 159159

An Efficient Implementation of EDF

• Maximum number of distinct deadlines is fixed.

• A queue is maintained for each distinct deadline.

• When a task arrives: Its absolute deadline is

computed and inserted in Q.

03/08/10 160

Efficient EDF Implementation

160

Task Queue

Deadline Levels

1

2

3

4

5

6

03/08/10 161

MLF: Variation of EDF• Minimum Laxity First:

• Laxity= relative deadline – time required to complete task execution

• The task that is most likely to fail first is assigned highest priority.

• EDF=MLF when tasks have equal execution times and deadlines.

• Bonus problem: • Analyze performance of MLF wrt EDF.

03/08/10 162162

Rate Monotonic Scheduling

(Lecture 9)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 163163

RMA• The priority of a task is

proportional to its frequency. The higher the frequency (or lower

the period) of a task, the higher is its priority.

Frequency

Priority

03/08/10 164164

RMA• The optimal uniprocessor static

priority scheduling algorithm:

If RMA cannot schedule a set of periodic tasks:

•No other static priority scheduling algorithm can.

• Schedulability test:

1. Utilization Bound

03/08/10 165

Utilization Bound 1

•Sum of utilization due to tasks is less than one:

•Necessary condition for schedulability:

•But not the sufficient condition.

11

iup

en

ii

i

03/08/10 166166

Sufficient Condition for RMA Schedulability

• Utilization bound II (Liu and Layland 1971):

• ui is the processor utilization due to task Ti

• n is the number of tasks

Utilization bound

Number of tasks

)12(

1

nnui

03/08/10 167

Liu and Layland Bound

•The maximum utilization for a schedulable task set:• Falls as the number of tasks increases.

•For a very large number of tasks:•What is the maximum utilization permitted?

692.02ln)12(1

iu

03/08/10 168168

Example 1• Check whether the followingtask set is schedulable usingRMA:T1: e1 = 1, p1=4, d1=4T2: e2 = 2, p2=6, d2=6T3: e3 = 3, p3=20, d3=20

03/08/10 169

Solution to Example 1

• Therefore the task set is schedulable.

115

11

60

44

20

3

3

1

4

11

iup

enii

i

778.0733.015

11

778.0)1259.1(3)12(3)12( 3

11

iu

nn

03/08/10 170170

Liu and Layland Condition• The upper bound on utilization converges

to 69% (ln2):

As the number of tasks approaches infinity

• Liu and Layland's condition is conservative:

If a set of tasks passes Liu and Layland test, then it is definitely RMA schedulable.

But, even if a task set fails Liu-Layland test:

• Still it may be RMA schedulable (completion time theorem).

03/08/10 171171

Example 2• Check RMA schedulability of three

periodic tasks: T1: e1=20mSec, p1= d1= 100mSec

T2: e2=40msec, p2= d2= 150mSec

T3: e3=100mSec, p3= d3= 350mSec

• The utilization for these 3 tasks are 0.2+0.267+0.286=0.753

• Liu-Layland bound=3((2)1/3-1) =0.779 Therefore, the tasks are schedulable.

03/08/10 172172

Some More Issues in RMA Scheduling

(Lecture 10)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 173

RMA Schedulability

• Utilization bound 1:

• Utilization bound 2:(Liu-Layland)

• Schedulability check 3: Liu and Lehoczky’s Completion Time Theorem

11

iup

en

ii

i

)12(

1

nnui

U1U2

03/08/10 174174

RMA Schedulability Test- III

• Completion time theorem (Liu and Lehoczky 1989):

If each of a set of tasks individually meets its first deadline under zero phasing:

•Then the task set is RMA schedulable for all task phasings.

03/08/10 175175

Completion Time Theorem (Liu and Lehoczky)

• How to check schedulability of a task set? Consider zero phasing for all tasks. Draw up the schedules till the first

deadline of each task. Observe if each task is schedulable. Then the task set is schedulable.

• Drawing the schedule is cumbersome: When the number of tasks is large.

03/08/10 176

Time in milliseconds

Completion Time Theorem: Basic Premise

• Worst case completion time for a task: Occurs when it is in phase with its higher

priority tasks.

176

T1=10,30 Φ=0

T2=60,120 Φ=0

T1=10,30 Φ=20

T2=60,120 Φ=0

(a) T1 is in phase with T2

T2 T2T1

20 30 50 60

T2T1

Time in milliseconds80

(b) T1 has a 20 ms phase lag with T2

T1 T1 T1T2 T2 T2

10 30 40 60 70 90

03/08/10 177177

Testing Liu and Lehoczky's Criterion

03/08/10 178178

Example 3• Consider three periodic tasks–T1: e1=20mSec, p1=100mSec

–T2: e2=30mSec, p2=150mSec

–T3: e3=60mSec, p3=200mSec

• Check whether they are RMA schedulable.

03/08/10 179

Answer 3•Checking for Liu-Layland criterion:

• The criterion satisfied:

–Therefore, the task set is schedulable.

78.07.0600

420

200

60

150

30

100

201

iup

enii

i

03/08/10 180180

Example 4• Consider three periodic tasks–T1: e1=20mSec, p1=100mSec

–T2: e2=30mSec, p2=150mSec

–T3: e3=90mSec, p3=200mSec

• Check whether the tasks are RMA schedulable.

03/08/10 181

Answer 4•Checking for Liu-Layland test:

• Fails Liu-Layland test:

–Before concluding about schedulability, let us check Liu-Lehoczky criterion.

78.085.0600

510

200

90

150

30

100

201

iup

enii

i

03/08/10 182

Checking for Lehoczky’s Criterion

182

T1

20 100

Deadline for T1

(a) T1 meets its first deadline

50

T2

(b) T2 meets its first deadline

Deadline for T2

150

T3 T1 T2

Deadline for T3

T3

120 190

(c) T3 meets its first deadline

T1: e1=20mSec, p1=100mSecT2: e2=30mSec, p2=150mSecT3: e3=90mSec, p3=200mSec

03/08/10 183

Checking for Lehoczky’s Criterion

•For T1: 20< 100 • Satisfied

•For T2: 30+20*2 =70<150 • Satisfied

•For T3: 90 + 20*2+30*2=190<200• Satisfied

•The task set is schedulable.

T1: e1=20mSec, p1=100mSecT2: e2=30mSec, p2=150mSecT3: e3=90mSec, p3=200mSec

03/08/10 184

Practice Problem•Test whether the following task set

is RMA schedulable.

•T1: e1=10, p1=d1=50, Φ1=100

•T2: e2=20,p2=d2=60, Φ2=0

•T3: e3=30, p3=d3=80, Φ3=50

03/08/10 185

Further Tests?• What if a task set fails Liu-Lehoczky’s criterion?

• Can we conclude task set is unschedulable?

• Or is it necessary to check further?

• Liu-Lehoczky test checks the worst case scenario (zero

phasings).

• It is possible that the worst case may not occur for a task set and

the task set may actually be schedulable.

03/08/10 186

A Basic Question

•Construct an example for which EDF and RMA produce different schedules. •Possibly simplest answer is:• Consider a task set unschedulable in RMA

but schedulable in EDF.

•A nontrivial example would be:• Consider a task set in which a task is

preempted before completion.

03/08/10 187

Example•T1: e1=3,p1=8

•T2: e2=6, p2=12

3 8 11

T1 T1

RMA

3 9

T1 T2 T1EDF

123 8 11

T1 T1

RMA

12

03/08/10 188188

RMA Under Transient Overload

• RMA is stable under transient overload conditions:When a task gets late:

• It can be guaranteed that it will not affect higher priority tasks.

Reason: Even when a task gets late• It must yield the CPU to a higher priority task --- unlike EDF.

03/08/10 189

Implementation of RMA

•A naïve RMA implementation:•Maintain tasks in a FIFO Queue.

• Insertion O(1)

• Searching O(n)

•A better implementation:•Maintain tasks in a priority Q

• Insertion O(log(n))

• Searching O(1)

•Efficient implementation:•Multilevel feedback Q

03/08/10 190

Multi-Level Feedback Queue

190

Task Queue

Priority Levels

1

2

3

4

5

6

Bonus Problem:Analyze time and space complexity, etc. and compare with other implementations

03/08/10 191191

Deadline Monotonic Scheduling and Other

Issues(Lecture 11)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 192192

RMA Schedulability of Harmonically Related Tasks

• A set of periodic tasks is harmonically related, iff: For every pair of tasks Ti and Tk:

• If Pi>Pk, then Pi=n*Pk, where n is an integer. (Example p1=10,p2=20,p3=60)

• A set of harmonically related tasks is RMA schedulable: If the sum total of the utilization due

to the tasks is less than 1.

03/08/10 193

Schedulability of a Harmonic Task Set

•By completion time theorem:

•For harmonically related tasks:•Ceiling can be removed since the periods

are integral multiples.

• So,

ik

k

ii

ki pe

p

pe

*

1

1

1,

1

1

1

1

i

k

p

eor

p

e

p

e

in

i

ki

ki

i

03/08/10 194

Deadline Monotonic Algorithm (DMA)

• When task deadline and periods are different, i.e., di ≠ pi:RMA is not an optimal scheduling

algorithm.DMA is optimal for such task

sets

• Essence of DMA:Assign priorities based on task

deadlines.194

03/08/10 195

Deadline Monotonic Algorithm(DMA)

• When do RMA and DMA produce identical schedules? Relative deadline of every task in a

task set is the same as its period.

• For arbitrary relative deadlines: DMA may produce a feasible

schedule even when RMA fails.

On the other hand, RMA will always fail if DMA fails.

195

03/08/10 196

Exercise• Check for schedulability of following

tasks under RMA and DMA. T1 =(e1 = 10 ms, p1 = 50 ms, d1 = 35 ms)

T2 =(e2 = 15 ms, p2 =100 ms, d2 = 20ms)

T3 =(e3 =20 ms, p3 =200 ms,d3 =200ms)

196

03/08/10 197

Answer• RMA: Checking Liu-Layland criterion

• The task set is unschedulable

• DMA completion time check:

• T2 meets its first deadline: 15 < 20

• T1 meets its first deadline: 15+20=35 <=35

• T3 meets its first deadline: 15*2+10*4+20=90<200

• The task set is schedulable.

11400

1590

200

20

20

15

35

101

iup

enii

i

03/08/10 198

Overhead Due to Context Switching

• Context switching of tasks consumes some time: So far we neglected the overhead due to

context switching.

• When a task arrives: It preempts the currently running lower

priority task.

There may be no preemption if the CPU was idle or a higher priority task was running. 198

03/08/10 199

Overhead Due to Context Switching

• In the worst case, each task incurs at most two context switches:

1. When it runs possibly preempting the currently running task.

2. When it completes.

• Let the context switching time be constant and equal c ms.

• Effectively, the execution time of each task increases to (ei + 2*c)

199

T1 T1 T1T2 T2 T2

10 30 40 60 70 90

03/08/10 200

Example•Assume 3 periodic tasks:• T1: e1=10mSec, p1= d1= 50mSec

• T2: e2=25msec, p2= d2= 150mSec

• T3: e3=50mSec, p3= d3= 200mSec

•Assume context switching time = 1msec

•Determine whether the task set is schedulable.

03/08/10 201

Answer•Effect of context switch:• Execution time of each task increases

at most by 2 msec.

• Task T1: 12msec <50 mSec >>Schedulable

• Task T2: 27+ 12*3=63<150 msec >>Schedulable

• Task T3: 52+ 12*4 + 27*2 =154<200msec >>Schedulable

T1: e1=10mSec, p1= d1= 50mS

T2: e2=25msec, p2=d2= 150msec

T3: e3=50mSec, p3= d3= 200mSec

03/08/10 202

Practice Problem• Check for schedulability of following

tasks under RMA. T1 =(e1 = 10 ms, d1 = p1 = 50 ms)

T2 =(e2 = 5 ms, d2 = p2 =20 ms)

T3 =(e3 =9 ms, d3 = p3 =30 ms)

Assume that context switch overhead is 1 ms.

202

03/08/10 203

Self Suspension• When does a task suspend execution?

It performs input/output operations

It is waiting for some event to occur

• Self-suspension introduces an additional scheduling point: The OS removes the self-suspended task

from the ready queue and places it in the blocked queue.

The OS then dispatches the next eligible task.

203

03/08/10 204

Scheduling Points• Scheduling points need to be

redefined:Task completion, Task arrival, Self-suspension events.

• For simplicity let us assume :A task undergoes at most a single self suspension.

204

03/08/10 205

Self Suspension• bti:

Delay that task Ti incurs due its own self suspension and that of all higher priority tasks.

• bi: Worst case self suspension time of task Ti

205

1

1),min(

i

kkkii bebbt

03/08/10 206

Revised RMA Condition• Lehoczky’s criterion needs to be

modified to consider self suspension:

• If a task undergoes multiple self suspensions:Then expression needs to be

changed. 206

ik

k

ii

kii pe

p

pbte

*

1

1

03/08/10 207

Exercise• Consider the following set of

periodic real-time tasks: T1 = (e1=10 ms, p1=50 ms)

T2 = (e2=25 ms, p2=150 ms)

T3 = (e3=50 ms, p3=200 ms) self-suspension times: b1= 3 ms,

b2=3 ms and b3= 5 ms.

• Determine whether the tasks are schedulable using RMA.

207

03/08/10 208

Answer• The tasks are already ordered

according to their priorities.

• Applying the revised RMA condition, For T1:

• T1 will meet its deadline

For T2:

• T2 will meet its deadline 208

ms 500310

ms 15050

150*10)33(25

03/08/10 209

Answer For task T3,

• T3 also would meet its first deadline

209

ms 200150

200*25

50

200*10)633(50

03/08/10 210

Self Suspension with Context Switch

• In a fixed priority preemptable system: Each task suffers at most two context

switches.

• Self suspension introduces: At most two other context switches.

• With context switch overhead and single self suspension: Execution time of a task Ti increases at

most to (ei + 4*c) 210

03/08/10 211

Handling Critical Tasks With Long Periods

•What if task criticalities turn out to be different from task priorities?

•Simply raising the priority of a critical task:•Will make the RMA schedulability check

results inapplicable.

•A solution proposed by Sha and Raj Kumar’s period transformation (1989).

03/08/10 212

Period Transformation Technique• A critical task is logically divided into many small

subtasks.

• Let Ti be a critical task that is split into k subtasks:• Each one has execution time ei/k and deadline di/k.

• This is done virtually at a conceptual level:• Rather than making any changes physically to the task itself.

03/08/10 213

Period Transformation: Example

• Consider 2 tasks:• T1: e1=5, p1=d1=20 msec

• T2: e2=8, p1=d1=30 msec

• Assume that T2 is a critical task:• Should not miss deadline even under transient

underload.

• T2a: e2a=4, p2=d2=15msec

• Period transformation can also be used to improve the schedulability of a task set.

Bonus problem: What is the impact on schedulability?

03/08/10 214214

Few Other Issues in Using RMA

(Lecture 12)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 215

Handling Aperiodic and Sporadic Tasks• It is difficult to assign high priority values

to sporadic tasks:•A burst of sporadic task arrivals could

overload the system:• Cause many tasks to miss deadlines.

• Low priorities can be accorded:• But some sporadic tasks might be critical.

• The aperiodic server technique may be used.

03/08/10 216

Sporadic Tasks

•Two kinds of sporadic tasks:

•High priority: Emergency events

•Non-critical: Background jobs (logging)

•Background jobs can be deferred during

transient overload:

• Tolerate long response time anyway.

•High priority tasks:

•Handled by converting them to periodic

tasks.

03/08/10 217

Aperiodic Server•Selects aperiodic and sporadic tasks at

appropriate times after they arise:

• Passes them to RMA scheduler.

•Server deposits a ticket at start:

•Replenished at the expiration of a certain

replenishment period.

• If a ticket is available, the task is transferred

to RMA scheduler.

03/08/10 218

Differable and Sporadic Servers

• Based on ticket creation policy -- there are two kinds of

aperiodic servers:• Differable

• Sporadic

• Sporadic server results in higher schedulable utilization:• Lends itself more easily to analysis.

• However, it is more complex to implement.

03/08/10 219

Differable Server•Tickets are replenished at regular

intervals:

• Independent of actual usage.

•When no task is sent over a duration:

• Tickets are accumulated.

•Deviates from RMA strict periodic

execution model:

• Leads to conservative system design

and low processor utilization.

03/08/10 220

Sporadic Server•Ticket replenishment time:•Depends on exact ticket usage time.

•As soon as a ticket is used:•The system sets a timer

•When timer goes off, any used tickets is replaced.

03/08/10 221

Sporadic Servercont…

•Guarantees a minimum separation

between two instances of a task.

•Helps to consider a sporadic task as a

periodic task for:

•Schedulability analysis

•Priority assignment

03/08/10 222222

Insufficient Number of Priorities

• All RTOS have a restricted number of priority levels (why?).When the number of tasks is

more than the number of available priority values, the schedulability of the system decreases.

03/08/10 223223

Priority Grid• Assigning priorities using

a priority grid:

Uniform scheme

Arithmetic scheme

Geometric scheme

Logarithmic scheme

03/08/10 224

Uniform Scheme•If there are N tasks and n priority

levels, then:

•n/N number of task are assigned to

each level.

•Rest of the tasks are distributed among

the lower priority levels.

03/08/10 225

Example

•Consider 6 tasks and 4 priority levels.

•T1=(5,10), T2=(10,20), T3=(20,40), T4=(30,60), T5=(40,80); T6=(50,100)

•Priority 1: T1

•Priority 2: T2

•Priority 3: T3,T4

•Priority 4: T5,T6

03/08/10 226

Arithmetic Scheme•Consider N tasks:•N=r+2r+3r+4r+....nr

• r tasks having the shortest periods are assigned to the highest priority level,

•2r tasks are assigned the next highest priority level, and so on.

03/08/10 227

Geometric Scheme•Consider N tasks:

•N=r+r2+r3+r4+.... rn

• r tasks having the shortest periods are assigned to the highest priority level,

•r2 tasks are assigned the next highest priority level, and so on.

03/08/10 228

Logarithmic Scheme•Experiments show that the logarithmic

grid works the best.

•Basic idea:

• Shorter period tasks should be allotted

distinct priority levels as much as

possible.

•Assume: r = (pmax/pmin) 1/n

03/08/10 229

Logarithmic Scheme•Consider N number of tasks:•N=r+r2+r3+r4+.... rn

• r tasks having the shortest periods are assigned to the highest priority level,

•r2 tasks are assigned the next highest priority level, and so on.

03/08/10 230230

Insufficient Number of Priorities: Example

• r=(Pmax/Pmin)1/nprio

• Pmin=1msec, Pmax=100,000 and nprio=32

• R=1.43

• The gridlines become 1.00, 1.43, 2.04, ...

03/08/10 231

Dealing With Task Jitter

•Task jitter:

•Magnitude of variation in arrival or

completion times of a task.

•Certain applications require jitter be

minimized as much as possible.

•Arrival time jitter:

•Latest arrival - Earliest arrival

03/08/10 232

Approach 1: To Deal With Task Jitter

•Applicable in situations where:

•Set of tasks is highly schedulable

•One or two tasks have high jitter

requirements.

•Assign these tasks high priorities

03/08/10 233

Approach 2: To Deal With Task Jitter

• Assume a task set is barely schedulable.

• Each task with jitter constraints is split into two: • One which computes the output,

• One which passes the output on.

• Set the second task's priority to very high values:• Its period is the same as that of the first task.

03/08/10 234

Quiz• Which of the following is an /(are)

important concern(s) of real-timeoperating systems:

1. Average response time

2. Average throughput

3. Worst case execution time

4. Best case execution time

03/08/10 235

Identify True or False• Cyclic scheduler is more proficient compared table-driven

schedulers.

• Unlike table-driven schedulers,

cyclic schedulers do not require to store a precomputed

schedule.

• In a non-preemptive event-driven

task scheduler, scheduling decisions are made only at the

arrival and completion of tasks.

03/08/10 236

Identify True or False• For scheduling a set of soft real-time tasks on a

uniprocessor:• RMA is a better scheduling algorithm compared

to time-sliced round-robinalgorithm.

•A set of periodic real-time tasks are being scheduled on a uniprocessor using RMA scheduling: • Assume they have similar arrival time jitter .• All tasks would show similar completion time

jitter.

03/08/10 237

Practice Problem• Identify a constraint on the task set

which will make RMA as proficient as EDF.

• In any implementation of EDF:• The scheduler needs to frequently

examine the ready queue of the tasks at regular intervals to determine which task should start running next.

03/08/10 238238

Resource Sharing Among Real-Time

Tasks(Lecture 13)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 239239

Introduction• So far, the only resource that

we considered is CPU.

CPU is serially reusable

Can be used by one task at a time

The task can be preempted at any time without affecting correctness.

03/08/10 240

Critical Section

•Tasks in reality need to share many

types of resources:

• Files, data structures, devices.

• These are nonpreemptable resources

•A piece of code in which a shared

nonpreemptable resource is accessed:

• Called a critical section in the operating

systems literature.

03/08/10 241241

Critical Section Execution• Traditional operating system

solution to execute critical sections: Semaphores.

• However, in real-time systems this solution does not work well ---results in: Priority inversion

Unbounded priority inversion

03/08/10 242242

Priority Inversion• A task instance executing a

critical section:

Cannot be preempted.

• Consqeuence: A higher priority task keeps waiting:

While the lower priority task progresses with its computations.

03/08/10 243243

Priority Inversion• When a resource needs to be

shared in the exclusive mode.

A task may be blocked by a lower priority task which is already holding the resource.

03/08/10 244244

Unbounded Priority Inversion

• Consider the following situation:A low priority task is holding a

resource.

A high priority task is waiting

An intermediate priority task which does not need resource preempts the low priority task.

03/08/10 245

Unbounded Priority Inversion Example

T6

T5

T4

T3

T2

T1

CPU Usage Time

Lock CR

Lock CR

Unlock CR

03/08/10 246246

Unbounded Priority Inversion

• Number of priority inversions suffered by a high priority task :Can be too many causing it to miss

its deadline.

• Most celebrated example:Mars path finder

03/08/10 247

Mars Pathfinder•Landed on the Mars surface on July 4th,

1997. • Bounced onto the Martian surface

surrounded by airbags.

•Deployed the Sojourner rover.

•Gathered and transmitted voluminous data back to Earth:• Included the panoramic pictures now available

on the Web.

03/08/10 249

Mars Pathfinder

03/08/10 250

03/08/10 251

Mars Pathfinder Bug•Pathfinder began experiencing total system resets:•Each resulting in loss of data.

•The newspapers reported these failures using terms such as:•Software glitches

•The computer was trying to do too many things at once, etc.

03/08/10 252

Debugging Mars Pathfinder

•The real-time kernel used was VxWorks

(Wind River Systems Ltd.)

•RMA scheduling of threads was used

•Pathfinder contained:

•A information bus -- a shared memory

•Used for passing information between

different spacecraft components.

03/08/10 253

Debugging Mars Pathfinder

•VxWorks can be run in trace mode:

• Interesting system events: context switches,

uses of synchronization objects, and

interrupts are recorded.

• JPL engineers spent hours running exact

spacecraft replica in lab:

•Replicated the precise conditions under

which the reset occurred.

03/08/10 254

Debugging Mars Pathfinder• VxWorks mutex object:

• Accepts a boolean parameter indicating whether priority inheritance should be performed.

• It was clear to the JPL engineers:• Turning ON priority inheritance would prevent the resets.• Initialization parameters were stored in global variables. • A short C program was uploaded to the spacecraft.

03/08/10 255

Solution for Simple Priority Inversion

• Longest duration for which a simple priority inversion can occur:Bounded by the duration for which a lower priority task needs the resource in exclusive mode.

.255

03/08/10 256

Solution to Simple Priority Inversion•A simple priority inversion can be

tolerated:

•Limit the time for which a task

executes its critical section.

•A simple priority inversion can be

limited to tolerable levels by careful

programming.

03/08/10 257257257

Unbounded Priority Inversion• Consider the following situation:

A low priority task is holding a resource:• A high priority task is waiting.

An intermediate priority task which does not need resource:• Preempts the low priority task.

There can be an unlimited number of such intermediate tasks.

03/08/10 258

Unbounded Priority Inversion

258

TH

TI1 TI2 TI3

TL

R

03/08/10 259259259

Unbounded Priority Inversion

• Number of priority inversions suffered by a high priority task can be unbounded:Can cause the task to miss its

deadline.

In the worst case:•The high priority task might have to wait indefinitely.

03/08/10 260260

Priority Inheritance Protocol Sha and Rajkumar

• The main idea behind this scheme:

• A task in critical section cannot be preempted:It should be allowed to complete as early as possible.

03/08/10 261

Priority Inheritance Protocol

•How do you make a task complete as early as possible?•Raise its priority, so that low priority tasks

are not able to preempt it.

•By how much should its priority be raised?•Make its priority as much as that of the task

it is blocking.

03/08/10 262262

Priority Inheritance Protocol Sha and Rajkumar

• When a resource is busy:Requests to lock the resource are queued in FIFO order.

Then apply the inheritance clause after a higher priority task blocks. TH

TL

R

03/08/10 263263

Inheritance Clause

• The priority of the task in the critical section:Raised to equal the highest priority task in the queue.

TH

TL

R

03/08/10 264

Priority Inheritance Protocol (PIP)Sha and Rajkumar

• As soon as the task releases the resource, It gets back its original priority value

if it is holding no other critical resource.

• In case it is holding other critical resources: It inherits priority of the highest

priority task waiting for resource.264

03/08/10 265

PIP: Pseudocodeif the required resource is free,

then grant itif the required resource is being held by a higher

priority task, then wait for the resource

if the required resource is held by a lower priority task, then

{• Wait for the resource• The low priority task holding the resource

acquires the priority of highest priority task waiting for the resource.

} 265

03/08/10 266

Understanding PIP

•How does PIP prevent unbounded

priority inversions?

•The priority of low priority task holding

resource is raised to that of the waiting

high priority task:

• Intermediate priority tasks can not

preempt it.

03/08/10 267

Working of PIP

267

pri(Ti)=5 pri(Ti)=5 pri(Ti)=10 pri(Ti)=5

pri(Tj)=10 pri(Tj)=10

Ti

CRTiTi

CR

Ti

CR

Tj Tj Tj

CR

pri(Tj)=10

Instance 1 Instance 2 Instance 3 Instance 4

03/08/10 268268268

Shortcomings of the Basic Priority Inheritance Scheme

• PIP suffers from two important drawbacks: Deadlocks

Chain blocking

• PIP is susceptible to chain blocking:

Also does nothing to prevent deadlocks

03/08/10 269269269

Deadlocks• Consider two tasks T1 and T2 accessing

critical resources CR1 and CR2.

• Assume:

T1 has a higher priority than T2

T2 starts running first

• T1: Lock R1, Lock R2, Unlock R2, Unlock R1

• T2: Lock R2, Lock R1, Unlock R1, Unlock R2

03/08/10 270

Chain Blocking• A task needing to use a set of

resources is said to undergochain blocking:If each time it needs a resource, it undergoes priority inversion.

• Example:Assume a high-priority task T1needs several resources 270

03/08/10 271

Chain Blocking Example

271

T2

CR1

CR2

T1

Waiting for CR1

T1

T2 CR2

Waiting for CR2

CR1

T2 CR2

T1 CR1

T2 executing T1 executing T2 executing

T1 blocked T2 blocked T1 blocked

Snapshot 1 Snapshot 2 Snapshot 3

03/08/10 272

Practice Questions

•What do you understand by priority

inversion?

•(T/F) When several tasks share a set of

critical resources,

• Is it possible to avoid priority inversion

altogether by using a suitable task

scheduling algorithm?

03/08/10 273

Practice Question

•When priority inheritance is used:

•What do you understand by inheritance-

related inversion?

•When a set of real-time tasks share certain

critical resources using the priority

inheritance protocol:

• The highest priority task does not suffer any

inversions. (T/F)

03/08/10 274

Practice Question

•When priority inheritance scheme is used, a task needing a resource undergoes priority inversions due to:•A higher priority task holding the resource•A lower priority task holding the resource•An equal priority task holding the resource• Either a higher or a lower priority task

holding the resource

03/08/10 275

Practice Question

• Using semaphores of traditional operating systems,

what is the maximum duration for which a task may

undergo priority inversion:

1. Longest duration for which a higher priority task uses a

shared resource.

2. Longest duration for which a lower priority task uses a

shared resource.

3. Sum of the durations for which different lower priority

tasks may use the shared resource.

4. Greater than the longest duration for which a lower

priority task uses a shared resource

03/08/10 276276

Highest Locker and Priority Ceiling Protocols

(Lecture 14)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 277277

Highest Locker Protocol

• During the design of a system A ceiling priority value is assigned to all

resources.

The ceiling priority is equal to the highest priority of all tasks needing to use that resource.

• When a task acquires a resource: Its priority value is raised to the

ceiling priority of that resource.

03/08/10 278278278

Highest Locker Protocol (HLP)

• Addresses the shortcomings of PIP: However, introduces new complications.

Addressed by Priority Ceiling Protocol(PCP).

Easier to first understand working of HLP and then PCP.

• During the design of a system: A ceiling priority value is assigned to all

critical resources.

The ceiling priority is equal to the highest priority of all tasks using that resource.

03/08/10 279

Ceiling Priority of a Resource

•When a task acquires a resource:• Its priority value is raised to the ceiling

priority of that resource.

T1 T2 T3

RCeil(R) =

max-prio(T1,T2,T3)

03/08/10 280

Example

T1 T2 T3

R Ceil(R) =

max-prio(T1,T2,T3) =2

prio(T1)=5

prio(T2)=2

prio(T3)=8

03/08/10 281

Highest Locker Protocol (HLP)

• If higher priority values indicate higher priority (e.g., Windows):

• If higher priority values indicate lower priority (e.g., Unix):

281

}) |)(max({)( ijji RneedsTTpriRCeil

}) |)(min({)( ijji RneedsTTpriRCeil

03/08/10 282

Highest Locker Protocol (HLP)

• As soon as a task acquires a resource R: Its priority is raised to Ceil(R)Helps eliminate the problems of:

•Unbounded priority inversions,•Deadlock, and •Chain blocking.

• However, introduces inheritance blocking. 282

03/08/10 283

Example

T1 T2 T3

R

Ceil(R) =

max-prio(T1,T2,T3) =2

T1

RT5T4

T2

03/08/10 284

Highest Locker Protocol (HLP)• Theorem:

When HLP is used for resource sharing:• Once a task gets any one of the resource

required by it, it is not blocked any further.

• Corollary 1: Under HLP, before a task is granted one

resource:• All the resources required by it must be free.

• Corollary 2: A task can not undergo chain blocking in

HLP. 284

03/08/10 285285285

Highest Locker Protocol

• Avoids unbounded priority inversion

• Prevents deadlock (Corollary 1) T1: lock R1, Lock R2, Unlock R2, Unlock R1

T2: lock R2, Lock R1, Unlock R1, Unlock R2

• Prevents unbounded priority inversion.

03/08/10 286286286

Shortcomings of HLP• Inheritance blocking occurs:

When the priority value of a low priority task holding a resource is raised to a high value.

Intermediate priority tasks not needing the resource:•Cannot execute and undergo priority inversion.

03/08/10 287

Inheritance Inversion Example

T1 T2 T3

R

Ceil(R) =

max-prio(T1,T2,T3) =2

T1

RT5T3

03/08/10 288

Shortcomings of HLP• Due to the problem of inheritance-

related priority inversion.: HLP is rarely used in real applications.

This may lead to several intermediate priority tasks to miss their deadlines.

• Priority Ceiling Protocol: Extension of PIP and HLP to

overcome their drawbacks.

Can you list the drawbacks?288

03/08/10 289289

Priority Ceiling Protocol• Each resource is assigned a ceiling

priority: Like in HLP

• An operating system variable denoting highest ceiling of all locked semaphores is maintained.We will call it Current System

Ceiling (CSC).

03/08/10 290

Priority Ceiling Protocol (PCP)

• Difference between PIP and PCP:

PIP is a greedy approach

• Whenever a request for a resource is made, the resource is promptly allocated if it is free.

PCP is not a greedy approach

• A resource may not be allocated to a requesting task even if it is free.

290

03/08/10 291

PCP: CSC• At any instant of time,

CSC = max({Ceil(CRi)|CRi is currently in use})

At system start,• CSC is initialized to zero.

• Resource sharing among tasks in PCP is regulated by two rules:Resource Grant Rule.Resource Request Rule. 291

03/08/10 292

PCP: Resource Grant Rule

• Resource grant rule has two clauses:Resource request clause

•Applied when a task request a resource.

Inheritance clause•Applied when a task is made to wait for a resource.

292

03/08/10 293293

PCP: Resource Request Clause

• Unless a task holds a resource that set the current system ceiling:It can lock a resource only if its priority is greater than CSC.

03/08/10 294294294

PCP: Resource Request Clause

If a task Ti is holding a resource CRj whose ceiling priority equals CSC, Then:

The task is granted access to the resource.

Otherwise, Ti is not granted CRj, unless pri(Ti) > CSC.

03/08/10 295295295

PCP: Resource Request Clause

• In both (a) and (b):If Ti is granted access to the resource CRj, and if CSC < Ceil(CRj):•Then CSC is set to Ceil(CRj).

03/08/10 296296296

PCP: Inheritance Clause• If a task is prevented from

locking a resource:The task holding the resource inherits the priority of the blocked task:•If the priority of the task holding the resource is lower than that of the blocked task.

03/08/10 297

Features of PCP• In PCP, a task when granted a

resource: It does not immediately acquire the

ceiling priority of the resource.

On acquiring a resource, the priority of the task does not change.

• The priority of a task changes: Only when the inheritance clause is

applied. 297

03/08/10 298298298

PCP: Analysis• Prevents deadlocks.

• Prevents chain blocking.

• Prevents unbounded priority inversion.

• Limits inheritance-related inversion.

03/08/10 299

PCP: Resource Release Rule• If a task Ti releases a critical

resource CRj that it was holding and if Ceil(CRj) is equal to CSC, Then, CSC = max({Ceil(CRk)|CRk is any

resource remaining in use}).

Else, CSC remains unchanged.

• The priority of Ti is also updated: Reverts to its original priority, or

Reverts to the highest priority of all tasks waiting for any resource which Tiis still holding 299

03/08/10 300

Example

Ceil(R) =

max-prio(T1,T2,T3) =10

T1 T2 T3

R

T4

CR1

03/08/10 301

Working of PCP

301

pri(T2)=2 pri(T2)=2 pri(T2)=5 pri(T2)=5

pri(Tj)=5 pri(T3)=3

T2

CRT1T1

CR

T1

CR

T3 T3 T3

CR

pri(Tj)=5

Instance 1 Instance 2 Instance 3 Instance 4

CSC=10 CSC=10

T4

CR1CSC=10

03/08/10 302302302

Types of Priority Inversions in PCP

• Direct inversion

• Inheritance-related inversion

• Avoidance-related inversion

03/08/10 303303303

Direct Inversion• A lower priority task is

holding the resource CR:Higher priority task waits for the resource.

TH

TL

CR

03/08/10 304

Identify The Direct Inversions

T1 T2 T3

R1

T4 T5 T6

R3

R2

Assume tasks have been sorted in order of priority

03/08/10 305305

Inheritance-related Inversion

• When a low priority task is holding a resource and a high priority task is waiting for it: The priority of the low priority task is

raised.

An intermediate priority task not needing that resource:• Undergoes inheritance-related inversion.

03/08/10 306

Inheritance-Related Inversion

306

TLCR

TH

TI

03/08/10 307

Identify The Inheritance-Related Inversions

T1 T2 T3

R1

T4 T5 T6

R3

R2

Assume tasks have been sorted in order of priority

03/08/10 308308

Analysis of PCP(Lecture 15)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 309309309

Avoidance-Related Inversion

• Consider that a low priority task is holding a resource: CSC is made equal to the ceiling of the

resource being held.

A higher priority task, whose priority is lower than the CSC, needs a resource currently not in use:• Undergoes avoidance-related inversion

• Due to the resource grant rule

• Also called priority ceiling-related or deadlock-avoidance inversion.

03/08/10 310

Avoidance-Related Inversion

310

TL

CR1

THCeil(CR1) = 10

CSC=10

pri(TH) = 8

CR2

03/08/10 311

Identify The Avoidance-Related Inversions

T1 T2 T3

R1

T4 T5 T6

R3

R2

Assume tasks have been sorted in order of priority

03/08/10 312

Avoidance-Related Inversion

• Theorem:Tasks are single-blocking under

PCP.• Once a task acquires a resource, it cannot undergo any inversion.

Corollary 1:• Under PCP a task can undergo at most one inversion during its execution.

312

03/08/10 313

Why is PCP Deadlock Free?

•Deadlocks occur only when •Different tasks hold parts of each other's

required resources.

• They request for the resources being held by each other.

•But under PCP, when one task is executing with some resource, •Any other can not hold a required

resource.

03/08/10 314

How is Unbounded Priority Inversion Avoided?

•A task suffers unbounded priority inversion, when • It is waiting for a lower priority task to

release a resources required by it.

• In the mean while intermediate priority tasks preempt the low priority task from CPU usage.

03/08/10 315

How is Unbounded Priority Inversion Avoided?

•Whenever a high priority task waits for a resource held by a low priority task, •The lower priority task inherits the

priority of high priority task.

• Intermediate priority tasks can not preempt the low priority task from CPU usage.

03/08/10 316

How is Chain Blocking Avoided?

•Already we have proved:•Resource sharing among tasks under PCP is single blocking. •This would give the clue how chain blocking is avoided.

03/08/10 317

Inversion Analysis

T1 T2 T3

R1

T4 T5 T6

R3R2

Direct Blocking

T5

T6

8T4

1T3

8T2

82T1

T6T5T4T3T2T1

03/08/10 318

8T5

T6

T4

T3

8T2

T1

T6T5T4T3T2T1

Inheritance Inversion

T5

T6

8T4

1T3

T2

T1

T6T5T4T3T2T1

Avoidance Inversion

03/08/10 319

Analysis of Inversions

•Each inversion table is an upper triangular matrix:•Why?•A task does not suffer any inversions due to higher priority task.

03/08/10 320

Maximum Inversion for a Task

•A task can suffer at best one of direct, inheritance, or avoidance-related inversion.

•Therefore the maximum inversion that a task can suffer is:• The maximum of the entry of the

corresponding row of the inversion table.

03/08/10 321321

Handling Task Dependencies

(Lecture 16)

Dr. RAJIB MALLProfessor

Department Of Computer Science & Engineering

IIT Kharagpur.

03/08/10 322

Plan of This Lecture

•We shall first complete:•Our incomplete discussions on resource sharing.

•We shall then discuss how scheduling algorithms can be extended:•To handle task dependencies.

03/08/10 323

Priority Inversions Under PCP

•PCP reduces priority inversions:

•As compared to HLP.

•Higher priority tasks may still suffer from three main types of inversions:•Direct inversions

•Inheritance-related inversions

•Avoidance-related inversions

Recall

03/08/10 324

Inversion Analysis Exercise 1

T1 T2 T3

R1

T4 T5 T6

R3

R2

Assume tasks have been sorted in increasing order of priority.

03/08/10 325

Inversion Analysis Exercise 2

T1 T2 T3

R1

T4 T5 T6

R3

R2

Assume tasks have been sorted in increasing order of priority

03/08/10 326326

Liu and Lehoczky Condition Under Resource Sharing

• Let bi denote: The longest time for which a task Ti can undergo

priority inversions due to resource sharing.

Ti will meet its first deadline if,

where pi is the period of task Ti and

iji

jj

iii pe

p

peb

)*(

1

1

npppp ...321

03/08/10 327327

PCP for Dynamic Priority Systems

• The priority ceiling values: Need to change dynamically with time.

A solution: Each time the priority of a task changes:• Update the priority ceiling of each resource and the current system ceiling.

However, this would incur unacceptablyhigh processing overhead.

03/08/10 328

Comparison of Resource Sharing Protocols

• PIP:Simplest --- requires minimal

support from the OS.Effectively overcomes the

unbounded priority inversion problem.

However, tasks may suffer from chain blockings and deadlocks.

328

03/08/10 329

Comparison of Resource Sharing Protocols

• HLP:Requires moderate support from

the OS.Solves the chain blocking and

deadlock problems. Intermediate priority tasks:

•May suffer from inheritance-related inversions.

329

03/08/10 330

Comparison of Resource Sharing Protocols

• PCP:Overcomes shortcomings of PIP.

• Free from deadlocks and chain blocking.

Low chances of inheritance-related inversions:

Priority of a task on acquiring a resource does not change :• Until a higher priority task requests the resource. 330

03/08/10 331

Quiz•When a set of real-time tasks share

certain critical resources using priority ceiling protocol (PCP):• The highest priority task does not suffer any

inversions.

•Under PCP, a task not requiring any resource:•May still undergo priority inversion for some

duration.

03/08/10 332

Quiz•Construct an example to justify:

•Why PCP is not a greedy algorithm?

•Why PIP is a greedy algorithm?

•Why under dynamic priority protocols:

•Supporting resource sharing among real-

time tasks is difficult.

03/08/10 333

Handling Task Dependencies

• So far, our discussions assumed no dependencies exist among tasks:

However, in practical situations this is far from the truth.

Existing scheduling techniques need to be suitably modified.

333

03/08/10 334334334

Table-Driven Algorithm• Arrange the tasks in increasing order of

their deadlines• Do

Scan the list from the rightmost end

Find a yet to be scheduled tasks whose all successors have been scheduled. • Schedule it as late as possible.

• While there are tasks yet to be scheduled

• Move all the tasks forward as much as possible

03/08/10 335

Example• Determine a feasible schedule for

real-time a task set {T1, T2, …T5}

• T1= (2, 8)

• T2= (5 , 25)

• T3= (6 , 24)

• T4= (10, 50)

• T5 =(7, 48)335

03/08/10 336

Precedence Relationships

336

T1

T2

T5

T3

T4

03/08/10 337

SolutionStep 1: Arrangement of tasks in ascending order

of task deadlines:T1 T3 T2 T5 T4

Step 2: Schedule tasks as late as possible without violating precedence constraints:

0 6 8 14 20 25 33 40 50

Step 3: Move tasks as early as possible without altering the schedule

0 2 8 13 20 30

T1 T3 T2 T5 T4

T1 T3 T2 T5 T4

03/08/10 338

Extending EDF and RMA-based Schedulers

• Precedence constraints can be handled with the following modifications to the basic algorithm: Do not enable a task until all its

predecessors complete their execution.

Check the tasks waiting to be enabled (on account of its predecessors completing their executions) after every task completes.

338

03/08/10 339

RMA Scheduling of Tasks with Precedence Relations

Scheduler{T1, T2}

Conventional task set

T1 T2 Modify task parameters Scheduler

Task set with precedence constraints

03/08/10 340

Modifying Task Parameters for RMA

•Rj* ≥ Max (Rj, Ri*) where Ri* is the modified ready time of the task Ti

•Priority Prioi ≥ Prioj

03/08/10 341

Modifying Ready Times for RMA: Example

T1

1T2

2

T3

3

T4

1

T5

5

2006550T5

70

40

25

15

10

di

20055T6

20010T4

20030T3

20026T2

20010T1

pieiΦiTask

Task Set

T6

5

03/08/10 342

Modifying the Ready times for RMA

T1

1

T2

2

T3

2

T4

1

T5

3

R1 = 0 R2 = 6

R3 = 0R4 = 0

R5 = 0

R3’ = max(R1, R3)

R3’ = 0

R4’ = max(R1, R2,R4)

R4’ = 6

R5’ = max(R3’, R4’,R5)

R5’ = 6

2006556T5

70

40

25

15

10

di

20055T6

20016T4

20030T3

20026T2

20010T1

pieiΦiTask

Initial Task Parameters

T6

4

R6’ = 5

03/08/10 343

Modifying Ready Times for RMA: Example

T1

1T2

2

T3

3

T4

1

T5

3

200

200

200

200

200

200

pi

56556T5

70

40

25

15

10

di

655T6

416T4

330T3

226T2

110T1

Priority

eiΦiTask

Initial Task Parameters

T6

4