L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta...

39
15-410, Sʼ 09 1 Real Time Systems Mar 18, 2009 Roger B. Dannenberg Roger B. Dannenberg Dave Dave Eckhardt Eckhardt Additional material by Additional material by Vishakha Gupta 15-410 “Arbitrarily Bad”

Transcript of L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta...

Page 1: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ091

Real Time Systems

Mar 18, 2009

Roger B. DannenbergRoger B. Dannenberg

Dave Dave EckhardtEckhardt

Additional material by Additional material by Vishakha Gupta

15-410“Arbitrarily Bad”

Page 2: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ092

Scheduling on Mars

What happened on Mars?What happened on Mars? (1997)

Photo credits: NASA

Page 3: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ093

What Happened On Mars?Mars Pathfinder probe (1997)Mars Pathfinder probe (1997)Nice launchNice launchNice transitNice transitNice de-orbitNice de-orbitNice thump-down (inflatable air-bag)Nice thump-down (inflatable air-bag)Nice rover disembarkationNice rover disembarkationNice rover Nice rover spontaneous rebootsspontaneous reboots

Photo credits: NASA

Page 4: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ094

Hardware Design

Bus

Instrument#1

Instrument#2

Instrument#3

Computerand

Bus Controller

Weather Sensors

Page 5: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ095

Software Design

BusActivity

DistributeData

BusSched

Pri: 1Pri: 3

T1 T2Other Computation

REPEAT…

So: transfer datacomputetransfer datacompute…

Page 6: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ096

Software Design

BusActivity

DistributeData

BusSched

Pri: 1Pri: 3

T1 T2Other Computation

REPEAT…

T1 < T2 or else system reboots!!!

Page 7: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ097

Software Design

BusActivity

DistributeData

BusSched

Pri: 1Pri: 3

Other ComputationT1 T2

Other threads:W (weather data thread): low priorityMany medium priority tasks

Distribute Data sends data to W via a softwarepipe facility

Page 8: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ098

What could go wrong?

Weather thread (W)Weather thread (W) locks pipe to read data locks pipe to read dataHigh-priority High-priority Distribute DataDistribute Data must wait to write data must wait to write data

Photo credit: NASA

Page 9: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ099

What could go wrong?

WW locks pipe structure to read message locks pipe structure to read messageInterruptInterrupt makes makes other tasksother tasks runnablerunnable

Higher priority, so preempt W W does not release lock for a long time…

Distribute DataDistribute Data becomes becomes runnablerunnable Very high priority, so preempts other tasks Distribute Data tries to send data to W, but blocks Other tasks resume, run for a long time…

Page 10: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0910

Priority Inversion

BusActivity

DistributeData

BusSched

Pri: 1Pri: 3

W

Other TasksT2

T1 < T2 : Oh no! system reboots!!!⁄

Attempt lockand block time

Page 11: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0911

W (pri 5)

Priority InversionBusActivity

DistributeData

BusSched

Pri: 1Pri: 3

W

Other Tasks

T2Attempt lockand block

DistributeData (pri 3)

Wait for lock

Other Computation (pri 4)

Wait for CPU What if W could“borrow” DistributeData’s priority?

Page 12: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0912

Priority Inheritance

BusActivity

DistributeData

BusSched

Pri: 1Pri: 3

W

Other Tasks

Inherit priority from Distribute DataExit critical section, release lockResume low priority

Attempt lockand block

Acquire lock

Page 13: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0913

History of an Idea

Priority Inheritance Protocols: An Approach toPriority Inheritance Protocols: An Approach toReal-Time SynchronizationReal-Time Synchronization IEEE Transactions on Computers 39:9

Lui Sha (CMU SEI) Ragunathan Rajkumar (IBM Research ⇒ CMU ECE) John Lehoczky (CMU Statistics)

Page 14: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0914

History of an Idea

EventsEvents 1987-12 “Manuscript” received 1988-05 Revised 1990-09 Published ???? Implemented in Wind River vxWorks RTOS 1997-07 Rescues Mars Pathfinder

History courtesy of Mike Jones and Glen ReevesHistory courtesy of Mike Jones and Glen Reeves http://www.cs.cmu.edu/~rajkumar/mars.html http://www.cs.duke.edu/~carla/mars.html

Page 15: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0915

Test Your Understanding

What could go wrong with an atomic exchange/spinWhat could go wrong with an atomic exchange/spinlock?lock?

Assume threads have fixed priorities.Assume threads have fixed priorities.

Explain how priority inversion could arise from a callExplain how priority inversion could arise from a callto to mallocmalloc..

Page 16: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0916

Real-Time Systems

Types of Systems and SchedulingTypes of Systems and SchedulingRate Monotonic SchedulingRate Monotonic SchedulingEarliest Deadline First SchedulingEarliest Deadline First SchedulingReal-Time Audio Application/OS InteractionsReal-Time Audio Application/OS Interactions

Page 17: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0917

Embedded Systems SchedulingOne Big LoopOne Big Loop

Polled I/O One thread: while (true) { task1(); task2(); … }

Time-driven: wait for next period at top of loopTime-driven: wait for next period at top of loopMultiple threadsMultiple threads

Round-Robin, orTime-driven: run tasks at fixed frequencies

Can incorporate interrupt-driven I/O

Static Priority-based Scheduling/Rate MonotonicStatic Priority-based Scheduling/Rate MonotonicDeadline SchedulingDeadline Scheduling

Page 18: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0918

Rate Monotonic Scheduling

AA method of assigning fixed priorities to a set ofmethod of assigning fixed priorities to a set ofperiodic processesperiodic processes

Higher rate (frequency) Higher rate (frequency) ⇒⇒ Higher priority Higher priority

Formal framework for reasoning about Formal framework for reasoning about schedulabilityschedulabilitySchedulable if:Schedulable if:

preemption + execution + blocking < deadline

=> => Schedulability Schedulability is a key question for designers <=is a key question for designers <=

Page 19: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0919

Assumptions

Periodic tasksPeriodic tasksTasks become ready to execute at beginning of theirTasks become ready to execute at beginning of their

periodsperiodsTasksTasks runnable runnable until execution is complete (1 burst)until execution is complete (1 burst)Task deadlines are always start of next periodTask deadlines are always start of next periodNo task is more important/critical than anotherNo task is more important/critical than anotherTasks account for all execution timeTasks account for all execution time

Task switching is instantaneous No interrupts

Page 20: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0920

Schedulability Tests

Utilization Bound Test - fast, conservativeUtilization Bound Test - fast, conservative

Response Time Test - slower, exactResponse Time Test - slower, exact

Page 21: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0921

Utilization

Computation time: Computation time: CCii

Period: TPeriod: Tii,,Utilization: Utilization: UUii = = CCii/T/Tii

Total Utilization: Total Utilization: ∑∑UUii

Note that 0 < Note that 0 < ∑∑UUii < 1< 1

Page 22: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0922

Example

Total utilization for 3 tasks is .200 + .267 + .286 = .753

Example from 14342 –Fundamentals ofEmbedded Systems

Page 23: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0923

Utilization Bound Test

Are all myAre all my taskstasksschedulable?schedulable?

Rate MonotonicRate MonotonicScheduling:Scheduling: Utilization for n tasks: U(n) = n(21/n – 1) This is a worst case (lower) bound

Test: (Test: (∑∑ UUii) < U(n)) < U(n)

Page 24: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0924

Example

Total utilization for 3 tasks is .200 + .267 + .286 = .753U(3) = .779

Total utilization for 3 tasks < U(3)The periodic tasks in the sample problem are schedulableAccording to the upper bound (UB) test

Example from 14342 –Fundamentals ofEmbedded Systems

Page 25: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0925

Timeline for the example

Page 26: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0926

Response Time Test

Theorem: For a set of Theorem: For a set of independent periodic tasks, ifeach task meets its deadline with worst case taskphasing, the deadline will always be met

System might be schedulable with utilization > U(n),but it depends on the particular task mix

Page 27: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0927

Rate Monotonic Extensions

Blocking:Blocking: preemption + execution + blocking < deadline

Interrupt tasksInterrupt tasksAddition/Deletion of tasksAddition/Deletion of tasksAperiodic Aperiodic tasks with computational budgettasks with computational budget

Page 28: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0928

Earliest Deadline First

A dynamic scheduling principleA dynamic scheduling principleAssume independent tasksAssume independent tasksTasks in a priority queue, ordered by deadlineTasks in a priority queue, ordered by deadlineWith periodic processes with deadlines = periods,With periodic processes with deadlines = periods,

EDF has a utilization bound of 100%EDF has a utilization bound of 100%((optimaloptimal))

Page 29: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0929

Example

Page 30: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0930

++ Optimal for schedulable task set Optimal for schedulable task set++ Task set need not be periodic Task set need not be periodic++ Deadlines need not equal periods Deadlines need not equal periods–– Overload behavior can be arbitrarily bad Overload behavior can be arbitrarily bad–– Considered more difficult to implement than static Considered more difficult to implement than static

priority schemespriority schemes

Pros and Cons

Page 31: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0931

Rate Monotonic vs.Earliest Deadline FirstRate MonotonicRate Monotonic

More widely supported Maps onto static priority schedulers (NT, CE, Linux, OS X)

Earliest Deadline FirstEarliest Deadline First Sometimes higher utilization Less restrictive assumptions

Neither is really complicatedNeither is really complicated If you have a well-defined problem, analysis is

straightforward If not, think carefully about failure modes (which are

different) and costs

Page 32: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0932

Real World/Real Time Audio

What do you have to work with?What do you have to work with?What are the implications?What are the implications?Putting it together.Putting it together.What performance can you get?What performance can you get?

Page 33: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0933

Audio: What Can You Assume?Potential for priority inversionPotential for priority inversionSystem response time is an issue:System response time is an issue:

system_latencysystem_latency + + preemption preemption + execution + blocking < deadline+ execution + blocking < deadline

Static Priority SchedulingStatic Priority Scheduling(At least) two application classes:(At least) two application classes:

High audio latency (iTunes, sound effects, audio editor) Compute audio well ahead (>100 ms) Leave it to device driver to deliver samples on time

Low audio latency (VoIP, Guitar Hero, real-time music synthesis) Audio depends on real-time input Only compute 1-10ms ahead of time User-level application scheduling is critical

Page 34: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0934

Low Audio LatencyImplicationsNeed to use static priority scheduling Need to use static priority scheduling ⇒⇒

1ms to compute audio < 10ms to refresh displayPriority Inversion Priority Inversion is is a problem a problem ⇒⇒

No lockingNo locking ⇒⇒No shared data structuresNo shared data structures ⇒⇒ Threads communicate via lock-free FIFO Threads communicate via lock-free FIFO No No mallocmalloc ⇒⇒

independent memory pool per thread independent memory pool per threadOR only lock-free shared structures OR only lock-free shared structures ⇒⇒ No No malloc malloc ⇒⇒ write your own write your own+ lots of synchronous polling for I/O+ lots of synchronous polling for I/O

Page 35: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0935

Putting It Togetherwhile (true) { audio_read(&buf); while (!input.empty()) process_input(); process_audio(&buf); // maybe send data to // output fifo audio_write(&buf);}

Audio Processing

Main Program

FIFOs(No othersharedmemory)

Page 36: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0936

What Performance Can YouGet?Current audio applications can deliver end-to-endCurrent audio applications can deliver end-to-end

latencies in the 3 to 10ms range.latencies in the 3 to 10ms range.Note: Note: ““nativenative”” windows audio is quite poor, but 3rd windows audio is quite poor, but 3rd

party (ASIO) drivers exist to improve performance.party (ASIO) drivers exist to improve performance.A big issue is A big issue is ““system latencysystem latency””::

SGI/Irix was a leader: hard real-time kernel Linux has evolved rapidly (now <1ms) OS X: special real-time threads for audio Windows: worst-case system latency is high

Page 37: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0937

Priority InversionPriority InversionReal-Time SchedulingReal-Time Scheduling

Rate Monotonic Earliest Deadline First

Implications of Real-World OS on Real-TimeImplications of Real-World OS on Real-TimeApplicationsApplications Polling Locks limited by Priority Inversion (Un)shared memory

Summary

Page 38: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0938

Blatant Plug

Computer Music Systems and Information ProcessingComputer Music Systems and Information ProcessingSpring 2010Spring 2010 Implement real-time computer music systemsImplement real-time computer music systems Probably a distributed system for musicProbably a distributed system for music

improvisationimprovisation

Page 39: L24 Realtime - cs.cmu.edu410-s10/lectures/L29_Realtime.pdf · Additional material by Vishakha Gupta 15-410 ... Resume low priority Attempt lock and block Acquire lock. 13 15-410,

15-410, Sʼ0939

Further Reading

Comparing Rate Monotonic to Earliest Deadline First:Comparing Rate Monotonic to Earliest Deadline First:

Giorgio C. Buttazzo, “Rate Monotonic vs. EDF: JudgmentDay,” Real Time Systems 29(1) (Jan 2005), TheNetherlands: Springer, pp 5-26.