RealTime Embedded Systems Krithi Ramamritham 1 Outline Special
Real-Time Embedded Systems Krithi Ramamritham 1
Outline • Special Characteristics of Real-Time Systems • Scheduling Paradigms for Real-time systems • Operating System Paradigms • Real-Time Linux • Real-Time NT 2
What is “real” about real-time? computer world e. g. , PC real world industrial system, airplane average response for user, interactive occasionally longer events occur in environment at own speed reaction too slow: deadline miss reaction: user annoyed reaction: damage, pot. loss of human life computer controls speed of user computer has to follow real speed of environment “computer time” “real-time” 3
Why real-time, why not simply fast? “Fast enough”: dependent on system and its environment and • turtle: fast enough to eat salad • mouse: fast to enough steal cheese • fly: fast enough to escape 4
what if environment is changed? “systems” not fast enough • mouse trap • fly-swatter time scale depends on - or dictated by - environment cannot slow down environment …is the real world 5
Average vs. Worst Case “There was a man who drowned crossing a river with an average depth of 20 cm. ” Standard computing is concerned with average behavior of system e. g. , if it responds fast enough on average, it is acceptable word processing, etc. Real-time computing requires timely behavior in all given situations e. g. , a single value delivered too late can cause the system to fail, even when the average timing is kept air planes, power plants, etc. 6
Real-Time Systems I/O - data event time Real-time computing system action I/O - data A real-time system is a system that reacts to events in the environment by performing predefined actions within specified time intervals. 7
Real-Time Systems: Properties of Interest • Safety: Nothing bad will happen. • Liveness: Something good will happen. • Timeliness: Things will happen on time -- by their deadlines, periodically, . . 8
In a Real-Time System…. Correctness of results depends on value and its time of delivery correct value delivered too late is incorrect e. g. , traffic light: light must be green when crossing, not enough before Real-time: (Timely) reactions to events as they occur, at their pace: (real-time) system (internal) time same time scale as environment (external) time 9
Types of RT Systems Dimensions along which real-time activities can be categorized: • how tight are the deadlines? --deadlines are tight when the laxity (deadline -- computation time) is small. • how strict are the deadlines? what is the value of executing an activity after its deadline? • what are the characteristics of the environment? how static or dynamic must the system be? Designers want their real-time system to be fast, predictable, reliable, flexible. 10
Hard, soft, firm • Hard result useless or dangerous if deadline exceeded • Soft result of some - lower value if deadline exceeded • Firm If value drops to zero at deadline value hard soft time - Deadline intervals: result required not later and not before + deadline (dl) 11
Examples • Hard real time systems – Aircraft – Airport landing services – Nuclear Power Stations – Chemical Plants – Life support systems • Soft real time systems – Mutlimedia – Interactive video games 12
Example of Real time systems Temperature sensor Input port CPU Memory Heater Output port 13
Code for example While true do { read temperature sensor if temperature too high then turn off heater else if temperature too low then turn on heater else nothing } 14
Comment on code • • Code is by Polling device (temperature sensor) Code is in form of infinite loop No other tasks can be executed Suitable for dedicated system or sub-system only 15
Extended polling example Temperature Sensor 1 Conceptual link Temperature Sensor 2 Heater 1 Task 1 Heater 2 Task 2 Temperature Sensor 3 Heater 3 Task 3 Temperature Sensor 4 Heater 4 Task 4 Computer 16
Polling • Problems – Arranging task priorities – Round robin is usual – Urgent tasks are delayed 17
Other methods • • Use interrupt driven system Use general purpose operating system plus tasks Use task handling language (e. g ADA) Use special purpose operating system 18
Interrupt driven systems • Advantages – Fast – Little delay for high priority tasks • Disadvantages – Programming – Code difficult to debug – Code difficult to maintain 19
How can we monitor a sensor every 100 ms Initiate a task T 1 to handle the sensor T 1: Loop {Do sensor task T 2 Schedule T 2 for +100 ms } Note that the time could be relative (as here) or could be an actual time - there would be slight differences between the methods, due to the additional time to execute the code. 20
An alternative… Initiate a task to handle the sensor T 1: Do sensor task T 2 Repeat {Schedule T 2 for n * 100 ms n: =n+1} There are some subtleties here. . . 21
Clock, interrupts, tasks Interrupts Clock Processor Examines Job/Task queue Task 1 Task 2 Task 3 Task 4 Tasks schedule events using the clock. . . 22
Real-Time: Items and Terms Task – program, perform service, functionality – requires resources, e. g. , execution time Deadline – specified time for completion of, e. g. , task – time interval or absolute point in time – value of result may depend on completion time 23
• Periodic – activity occurs repeatedly – number of instances – e. g. , to monitor environment values, temperature, etc. period time periodic 24
• Aperiodic – can occur any time – no arrival pattern given time aperiodic 25
• Sporadic – can occur any time, but – minimum time between arrivals mint time sporadic 26
Who initiates (triggers) actions? Example: Chemical process – controlled so that temperature stays below danger level – warning system: distance level to danger point, so that cooling can still occur Two possibilities: – action whenever temp raises above warn; event triggered – look every int time intervals; action when temp if measures above warn time triggered 27
t TT time ET 28
t TT time ET 29
ET vs TT • Time triggered – Stable number of invocations • Event triggered – Only invoked when needed – High number of invocation and computation demands if value changes frequently 30
Apollo 11, 1969, first lunar landing Michael Collins (astronaut Apollo 11) “At five minutes into the burn (6000 feet above the surface). . . "Program alarm", barks Neil, "Its a 1202", what the hell is that? I don't have the alarm numbers memorized for my own computer, much less for the LM's I jerk out my checklist and start thumbing through it, but before I can find 1202 Houston say, "Roger, we're GO on that alarm" no problem in other words. My checklist says 1202 is an "executive overflow" meaning simply that the computer has been called upon to do too many things at once and is forced to postpone some of them. A little farther, at just 3000 feet above the surface the computer flashes 1201, another overflow condition, and again the ground is superquick to respond with assurances. Excerpt from Apollo, Expeditions to the Moon, Scientific and Technical Information Office, NASA, Washington D. C. , 1975 31
radar interrupt handler 32
radar interrupt handler 33
radar interrupt handler error 1201 34
Slow down the environment? • Importance – which parts of the system are important? – importance can change over time e. g. , fuel efficiency during emergency landing • Flow control who has control over speed of processing, who can slow partner down? – environment – computer system RT: environment cannot be slowed down 35
Performance Metrics in Real-Time Systems • Beyond minimizing response times and increasing the throughput: – achieve timeliness. • More precisely, how well can we predict that deadlines will be met? 36
What is Predictability A simplified definition: The ability to reliably determine whether an activity will meet its deadline. A complete definition can be quite complex and -subject to assumptions about failure, etc. 37
Achieving Predictability • Layer by layer: Predictability requirement of an activity percolates down/up the layers. • Top-layer: Do your best to meet the deadline of an activity. If deadline cannot be met, handle the exception predictably. 38
Layer-by-layer Predictability Applications: Activities having deadlines. Processes: Processes with deadlines. one or more processes make up an activity. Tasks: Tasks with deadlines multiple (precedence-related) tasks make up a process. Operating System: Bounded code execution time. Bounded Operating System primitives. Bounded synchronization costs. Bounded scheduling costs. Architecture: Bounded memory access times. Bounded instruction execution times. Bounded inter-node communication costs. 39
Top-layer Predictability An activity has • a component executed in the usual case with deadline (d -- r) executed using best-effort approaches • a component executed in the exception case -- typically simple execution (if needed) is guaranteed. 40
Issues to worry about • Meet requirements -- some activities may run only: – after others have completed - precedence constraints – while others are not running - mutual exclusion – within certain times - temporal constraints • Scheduling – planning of activities, such that required timing is kept – models – methods 41
Issue: Running time of programs • • • Depends on hardware, memory wait cycles, clock etc. Depends on virtual memory and caching Depends on data Depends on program control Depends on pipelining Depends on memory management 42
More Issues… • Operating Systems – Off-the shelf (COTS) – Application-specific • Dataflow – data are read from environment - sensors – data are processed by tasks – results are processed by other tasks… – data are transferred to environment – actuators 43
Further Issues • Programming languages – Maximum execution times – Difficult with recursions, unbounded loops, etc • Networks – Bounded transmission times – e. g. , ethernet, CSMA/CD large number of collisions • Synchronization of clocks – Clock drift apart – Faulty clocks can cause wrong synchronization, e. g. , for average 44
Even more issues… • Fault tolerance – Deadlines cannot be kept if computer or network has hardware errors – Tolerate certain faults within timing • Real-Time Databases – maintain data consistent and fresh • Design – derive and specify timing 45
- Slides: 45