![Page 1: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/1.jpg)
perry - 4/25/011
MIT 16.07 Lecture 28
Real Time Operating Systems
Part II
![Page 2: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/2.jpg)
perry - 4/25/012
Realtime Kernel Design Strategies
� Polled Loop Systems
� Interrupt Driven Systems
� Multi-tasking
� Foreground / Background Systems
� Full Featured RTOS
![Page 3: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/3.jpg)
perry - 4/25/013
Multitasking� What is Multitasking?
� Separate tasks share one processor (or processors)
� Each task executes within its own context
� Owns processor
� Sees its own variables
� May be interrupted
� Tasks may interact to execute as a whole program
![Page 4: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/4.jpg)
perry - 4/25/014
Multitasking Example
GPS
SharedMemory
Scheduler
mem_read
mem_write
Navigation Sensor Tasks
Clock interrupt
Sensors
1 Hz Nav
16 Hz Nav
Epoch NavProcessing
Navigation Filter
1 Hz Inputs
16 Hz Inputs
Navigation System Software
Sensor data pools
� Navigation Sensor Task retrieves data from sensor� Each task can only �see� its data� Clock-driven scheduler drives tasks at various frequencies towrite sensor data to shared memory� Navigation filter retrieves data at scheduled intervals Post to mailbox
Task
Data Transfer
![Page 5: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/5.jpg)
perry - 4/25/015
Multitasking� Context switching
� When the CPU switches from running one task to running another, it issaid to have switched contexts.
� Save the MINIMUM needed to restore the interrupted process� Back to the book example, what might be needed? (name, page, paragraph , word#)
� In a Computer System, the MINIMUM is often� contents of registers
� contents of the program counter
� contents of coprocessor registers (if applicable)
� memory page registers
� memory-mapped I/O
� special variables
� During context switching, interrupts are often disabled
� Real Time Systems require minimal times for context switches
![Page 6: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/6.jpg)
perry - 4/25/016
� How do many tasks share the same CPU?
� Cyclic Executive Systems
� Round Robin Systems
� Pre-emptive Priority Systems
Multitasking
![Page 7: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/7.jpg)
perry - 4/25/017
� Cyclic Executive
� Calls to statically ordered threads
� Pros:
� Easy to implement (used extensively in complex safety criticalsystems)
� Cons:
� Not efficient in overall usage of CPU processing
� Does not provide optimal response time
Multitasking
Data in Nav Guid FlightDirector
MissionMgmt BIT
DataOut
Thread callstimer timer
Data in
![Page 8: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/8.jpg)
perry - 4/25/018
� Round Robin Systems� Several processes execute sequentially to completion
� Often in conjunction with a cyclic executive
� Each task is assigned a fixed time slice
� Fixed rate clock initiates an interrupt at a rate corresponding to the timeslice
� Task executes until it completes or its execution time expires
� Context saved if task does not complete
Multitasking
![Page 9: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/9.jpg)
perry - 4/25/019
Multitasking� Round Robin Systems - Time Slicing of 3 Tasks
Task 1Task 2
Task 3
Task 1Task 2
Arr
ival
ord
er
First
Last
Time
![Page 10: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/10.jpg)
perry - 4/25/0110
Multitasking� Pre-emptive Priority Systems
� Higher priority task can preempt a lower priority task if it interrupts thelower-priority task
� Priorities assigned to each interrupt are based upon the urgency of the taskassociated with the interrupt
� Priorities can be fixed or dynamic
![Page 11: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/11.jpg)
perry - 4/25/0111
Multitasking� Round Robin Systems - Preemptive Scheduling of 3 Tasks
Prio
rity
Low
High
Time
Medium
Task 1
Task 2
Task 3
Task 2
Task 1
![Page 12: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/12.jpg)
perry - 4/25/0112
Multitasking� Preemptive Priority Systems - An Example
� Aircraft Navigation System:
� High priority task: Task that gathers accelerometer data every5 msec
� Medium priority task: Task that collects gyro data andcompensates this data and the accelerometer data every 40msec
� Low priority task: Display update, Built-in-Test (BIT)
![Page 13: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/13.jpg)
perry - 4/25/0113
Multitasking� Multitasking is not perfect
� High priority tasks hog resources and starve low priority tasks
� Low priority tasks share a resource with high priority tasks and block highpriority task
� How does a RTOS deal with some of these issues?
� Rate Monotonic Systems (higher execution frequency = higher priority)
� Priority Inheritance
![Page 14: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/14.jpg)
perry - 4/25/0114
MultitaskingPriority Inversion / Priority Inheritance
� Task A and Task C share a resource
� Task A is High Priority
� Task C is Low Priority
� Task A is blocked when Task C runs (effectively assigning A to C�spriority, hence Priority Inversion)
� Task A will be blocked for longer, if a Task B of medium prioritycomes along to keep Task C from finishing
� A good RTOS would sense this condition and temporarily promotetask C to the High Priority of Task A (Priority Inheritance)
![Page 15: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/15.jpg)
perry - 4/25/0115
MultitaskingPriority Inversion - The problem
Priority Inheritance - A solution
priority
high
low
time
C
A
C
A
C
B
priority
high
low
time
C
A C A
B
A is blocked because C hasthe resource
B can block C whichalso keeps A waiting
C inherits A�s priority so it canfinish and then A can have the resource
![Page 16: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/16.jpg)
perry - 4/25/0116
Realtime Kernel Design Strategies
� Polled Loop Systems
� Interrupt Driven Systems\
� Multi-tasking
� Foreground / Background Systems
� Full Featured RTOS
![Page 17: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/17.jpg)
perry - 4/25/0117
FOREGROUND/BACKGROUND SYSTEMS
� Most common hybrid solution for embedded applications
� Involve interrupt driven (foreground) AND noninterrupt driven(background) processes.
� All RealTime solutions are just special cases offoreground/background systems
� Polled loops = Background only system
� Interrupt-only systems = Foreground only system
� Anything not time-critical should be in background
� Background is process with lowest priority
![Page 18: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/18.jpg)
perry - 4/25/0118
Foreground/Background Systems
� Hybrid Systems = Combining what we have learned so far
� Polled Loops
� Interrupt-Driven Systems
� Multi-tasking
� Pre-emptive Priority or...
� Round Robin or...
� Cyclic Executive
![Page 19: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/19.jpg)
perry - 4/25/0119
A Return to the Multitasking Example
GPS
SharedMemory
Scheduler
mem_read
mem_write
Navigation Sensor Tasks
Clock interrupt
Sensors
1 Hz Nav
16 Hz Nav
Epoch NavProcessing
Navigation Filter Tasks
1 Hz Inputs
16 Hz Inputs
Navigation System Software
Sensor data pools
� Polled loops: Navigation Sensor Tasks� Interrupt Driven: Scheduler� Pre-emptive Priority:
�Navigation Filter Tasks�Sensor Data Processing Tasks�Memory Access Tasks
Sensor Data Processing Tasks
Memory Access Tasks
Post to mailbox
Task
Data Transfer
![Page 20: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/20.jpg)
perry - 4/25/0120
Multitasking Pros & Cons
� Pros� Segments the problem into small, manageable pieces
� Makes more modular software (can reuse portions more easily)
� Allows software designer to prioritize certain tasks over others
� Cons� Depending upon the implementation, timing may not be deterministic
(jitter caused by variations in timing of incoming data)
� Context switching adds overhead
![Page 21: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/21.jpg)
perry - 4/25/0121
MIT 16.07 - RTOS lecture 2
Realtime Kernel Design Strategies� Polled Loop Systems
� Phase/State Driven Code
� Coroutines / Cooperative Multi-tasking
� Interrupt Driven Systems
� Foreground / Background Systems
� Full Featured RTOS
![Page 22: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/22.jpg)
perry - 4/25/0122
Full Featured RTOS
� Expand foreground/background solution.
� Add:
� network interfaces
� device drivers
� complex debugging tools
� Most common choice for complex systems
� Many commercial operating systems available
� Chapter 6.6 in the Real Time Text book goes into more detail
![Page 23: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/23.jpg)
perry - 4/25/0123
Choosing a RTOS approach� How do you know which one is right for your application?
� Look at what is driving your sytem (arrival pattern of data)� Irregular (Known but varying sequence of intervals between events)
� Bursty (Arbitrary sequence with bound on number of events)
� Bounded (Minimum interarrival interval)
� Bounded with average rate (Unpredictable event times, but clusteraround mean)
� Unbounded (Statistical prediction only)
� What is the critical I/O?
� Are there any absolute hard deadlines?
![Page 24: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/24.jpg)
perry - 4/25/0124
Choosing a RTOS approach� How do you know which one is right for your application? Let�s look at some
real life choices.
� Reusable Launch Vehicle for satellites. Thrust Vector Control SWrequires new attitude data every 40 msec or rocket becomes unstable.
� We chose cyclic executive.
� Navigation and Control System for submarine. Interface to multiplesensors at multiple data rates. Information from the Inertial ReferenceUnit is most critical, but exact timing of input data is not essential.
� We chose preemptive priority scheme running on a commercialRTOS. Important tasks given highest priority.
![Page 25: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/25.jpg)
perry - 4/25/0125
Choosing a RTOS approach� How do you know which one is right for your application? Let�s look at some
real life choices.
� Avionics System requires new data from flight control surfaces,navigation equipment, and radar system every 50 msec.
� Cyclic executive. Each task runs to completion. Tasks run in series.Last tasks may not finish before 50msec interrupt occurs.
� Microcontroller running to switch radar antennae and check for incomingsignal. If the signal is there, power up the signal processing chip.
� We chose polled loop.
![Page 26: Real Time Operating Systems MIT 16.07 Lecture 28web.mit.edu/16.070/www/year2001/RTOS28.pdfReal Time Operating Systems Part II perry - 4/25/01 2 Realtime Kernel Design Strategies Ł](https://reader036.vdocuments.us/reader036/viewer/2022062920/5f027bf07e708231d4047db8/html5/thumbnails/26.jpg)
perry - 4/25/0126
Summary
� Multi-tasking involves many tasks sharing resources (CPU)
� Each task executes in its own context
� Multiple tasks can combine to create one program
� There are different ways to implement multi-tasking
� Cyclic Executive
� Round Robin
� Priority-Based Systems
� Some systems are built by combining different RTOS constructs
� There is no one right way to build an embedded system, but there arecertainly wrong ones. Carefully choose your RTOS approach!