1 / 27

G53SRP: Introduction to Real Time Scheduling

G53SRP: Introduction to Real Time Scheduling. Chris Greenhalgh School of Computer Science. Contents. Specifying timing constraints Specifying the system Current system example Tasks, values, time lines General strategy Fixed Priority Scheduling & DMPO Further issues

salena
Download Presentation

G53SRP: Introduction to Real Time Scheduling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. G53SRP: Introduction to Real Time Scheduling Chris Greenhalgh School of Computer Science

  2. Contents • Specifying timing constraints • Specifying the system • Current system example • Tasks, values, time lines • General strategy • Fixed Priority Scheduling & DMPO • Further issues • Modes, fault tolerance, resource contention • Book: Wellings 7.5-7.7; Burns & Wellings 13.1-13.3

  3. Real time… • A real-time system is any information processing system which has to respond to externally generated input stimuli within a finite and specified period • the correctness depends not only on the logical result but also the time it was delivered

  4. Specifying timing constraints: temporal scopes • For a section of code (“process”, “task”, “scope”, Java Runnable), specify: • When it should (nominally) start • When it must be completed by class Foo implements Runnable { public void run() { … } }

  5. Minimum delay Maximum delay a Blocking (sleeping, waiting, I/O), other task(s) running Maximum elapsed time b c Units of execution i.e. actually on CPU Deadline Release Time Maximum execution time = a + b +c

  6. Specifying the system • Decompose into a fixed set of tasks • For each task: • Specify when it should be started • E.g. periodic (repeated, on a timer) or triggered by some other/external event (such as an interrupt) • Specify then deadline within which it should finish • Timing requirements derived from specification, e.g. system stability requirements • Arrange for the system to run those tasks at the right times and in the right order 

  7. T P S Concurrency Example (review) ADC Thermocouples Pressure Transducer • Overall objective is to keep the temperature and pressure of some chemical process within well-defined limits ADC Switch Heater Screen DAC Pump/Valve

  8. Example system processes (or “tasks”, …) • P1 - temperature control task • (say) Run once every 100ms • Complete within 50ms • P2 – pressure control task • Run once every 150ms • Complete within 100ms

  9. Process Release Time Process Completion Time Deadline Possible task execution 0 50 100 150 200 250 Example system abstract time-line Process P1 P2 Time (ms)

  10. More questions… • How long will each task actually take execute? • In what order should the tasks be executed? • How many processors does the system have? • If more than one, on which processor should each task be run? • Will the deadlines be met?

  11. More questions…example system • How long will each task actually take execute? • (say) P1 40ms, P2 60ms • In what order should the tasks be executed? • (say) P1 before P2 • How many processors does the system have? • (say) 1 • Will the deadlines be met? • See next slide…

  12. 0 50 100 150 200 250 Example system concrete time-line Process Release Time Process All deadlines met  Process Completion Time Deadline met Process Completion Time Deadline missed P1 Actual task execution 60 50 10 P2 Task waiting/ pre-empted Time (ms)

  13. Example system Gantt Chart CPU-1 P1 P2 P1 P2 P1 P2 0 50 100 150 200 250 Time (ms)

  14. More questions…example system (v.2) • How long will each task actually take execute? • (say) P1 40ms, P2 70ms • In what order should the tasks be executed? • (say) P1 before P2 • How many processors does the system have? • (say) 1 • Will the deadlines be met? • See next slide…

  15. 0 50 100 150 200 250 Example system (v.2) concrete time-line Process Release Time Process P2 deadlines missed  Process Completion Time Deadline met Process Completion Time Deadline missed P1 Actual task execution 60 10 50 20 P2 Task waiting/ pre-empted Time (ms)

  16. More questions…example system (v.3) • How long will each task actually take execute? • (say) P1 40ms, P2 60ms • In what order should the tasks be executed? • (say) P2 before P1 • How many processors does the system have? • (say) 1 • Will the deadlines be met? • See next slide…

  17. 0 50 100 150 200 250 Example system (v.3) concrete time-line Process Release Time Process First P1 deadline missed  Process Completion Time Deadline met Process Completion Time Deadline missed P1 Actual task execution 60 60 P2 Task waiting/ pre-empted Time (ms)

  18. General answers… (1) • How long will each task actually take execute? • i.e. worst-case execution time • Determine from static code analysis and/or controlled testing

  19. General answers… (2) • In what order should the tasks be executed? 1. Decide a general strategy, (e.g.) fixed priority scheduling • Assign a priority to each process in advance and always run the highest-priority runnable process • (Want a strategy that is flexible but deterministic and analysable – and supported)

  20. 2. Assign priorities to each process, (e.g.) Shortest Deadline First • Also known as Deadline Monotonic Priority Ordering (DPMO) • Can be shown to be optimal, i.e. if any strategy works then this will • Example system: P1 deadline 40 < P2 deadline 60

  21. General answers… (3) • How many processors does the system have? If more than one, on which processor should each task be run? • Depends on system design • Typically fix tasks to processors for predictability

  22. General answers… (4) • Will the deadlines be met? • Can be tackled through static analysis of whole system • E.g. response time analysis - see later notes • Note: equivalent to example time-line with all processes released at time zero • N.B. this is what we were after: predictable timing behaviour

  23. Further issues: modes • Many systems have different “modes” of operation • e.g. start-up, active, shut-down • Each may have its own • Specified process set • Timing parameters • Priorities • Scheduling analysis • Plus changes between modes must be checked

  24. Further issues: fault tolerance • What if the running system does… • Miss a deadline? • Use more processor time than it should? • System may • Detect missed deadlines or cost overrun • Interrupt or suspect that process • Call an error handler, to take contingency actions

  25. Further issues: resource contention • If processes • share resources (e.g. common data or devices) • and require exclusive access (i.e. locks) then this must be taken into account when • setting process priorities • perhaps dynamically – see later notes • analysing the system’s schedulability • may introduce additional process blocking

  26. Summary • A real-time system is comprised of tasks or processes with specified timing constraints • When/how often it should happen • When it should finish by (deadline) • How long it would take in isolation (cost) • The real-time system schedules these tasks • e.g. using fixed priority scheduling and deadline-monotonic priority ordering

  27. Summary (2) • On- or off-line analysis of the system can then determine whether deadlines should be met or not • Missed deadlines or cost over-runs may be detected, allowing the system to respond to failures (fault tolerance) • Scheduling and analysis may be complicated by (e.g.) system modes or contention for shared resources

More Related