Upload
stephany-phelps
View
213
Download
1
Embed Size (px)
Citation preview
Real-Time Real-Time CORBACORBA
By Christopher BolducBy Christopher Bolduc
What is Real-Time?What is Real-Time?
Real-time computing is the study of Real-time computing is the study of hardware and software systems that hardware and software systems that are subject to a “real-time are subject to a “real-time constraint”constraint”
The real-time constraint is a set of The real-time constraint is a set of operational deadlinesoperational deadlines
DeadlinesDeadlines
Some programs are useless if they don’t Some programs are useless if they don’t run within a desired timeframerun within a desired timeframe A frame of live streaming video must be A frame of live streaming video must be
encoded before a certain time to be encoded before a certain time to be considered liveconsidered live
VOIP data must arrive before a certain latency VOIP data must arrive before a certain latency timeframetimeframe
Antilock brakes must deploy before a vehicle Antilock brakes must deploy before a vehicle crashescrashes
A nuclear reactor must lower its core A nuclear reactor must lower its core temperature before a meltdown occurstemperature before a meltdown occurs
A real-time program A real-time program failsfails if it does not do if it does not do thisthis
End-to-End System End-to-End System PredictabilityPredictability
What affects it?What affects it?
Components Affecting Components Affecting PredictabilityPredictability
Fixed Priority SchedulingFixed Priority Scheduling
Similar to thread priority in single-Similar to thread priority in single-CPU systemsCPU systems
Determine static priority levels for Determine static priority levels for each task each task
Based on a scheduling methodology Based on a scheduling methodology such assuch as rate monotonic analysis (RMA)rate monotonic analysis (RMA) or deadline monotonic analysis or deadline monotonic analysis
Can change the priority, but it is Can change the priority, but it is predeterminedpredetermined
Real-Time CORBA Real-Time CORBA PriorityPriority
What is it?What is it? How to relate native operating How to relate native operating
system priority throughout the system priority throughout the system consistentlysystem consistently
How to handle communication How to handle communication requests from clients to the server requests from clients to the server without unexpected priority changeswithout unexpected priority changes
Part of the message to the server Part of the message to the server includes a map from OS Priority to includes a map from OS Priority to RT CORBA PriorityRT CORBA Priority
Real-Time CORBA Real-Time CORBA PriorityPriority
Priority BandingPriority Banding
Allows the software developer to Allows the software developer to separate different types of traffic by separate different types of traffic by prioritypriority
Also to dedicate separate Also to dedicate separate connections between the client and connections between the client and server for each priority "band,” or server for each priority "band,” or set of CORBA priority levelsset of CORBA priority levels
Why do this?Why do this? Increased traffic predictabilityIncreased traffic predictability Minimizes risk of priority inversionsMinimizes risk of priority inversions
Thread PoolsThread Pools
Need to manage resources Need to manage resources according to priorityaccording to priority
Ensure high priority connections Ensure high priority connections have dedicated resourceshave dedicated resources
Keep lower-priority applications Keep lower-priority applications from blockingfrom blocking
Special Real-time CORBA mutexSpecial Real-time CORBA mutex
Soft Real-time CORBASoft Real-time CORBA
Favors command optimization over Favors command optimization over worst-case performanceworst-case performance
Does not require definite upper Does not require definite upper boundbound
Some priority inversions are Some priority inversions are acceptableacceptable
Hard Real-time CORBAHard Real-time CORBA
All components in the system (Real-All components in the system (Real-time OS, ORB, and transport) must time OS, ORB, and transport) must use predictable, schedulable logic.use predictable, schedulable logic.
If any one of these is unpredictable, If any one of these is unpredictable, the entire system is unpredictable.the entire system is unpredictable.
SummarySummary
Real-time CORBA provides real-time Real-time CORBA provides real-time computing bycomputing by Creating standardized CORBA thread Creating standardized CORBA thread
prioritiespriorities Mapping these priorities to OS thread Mapping these priorities to OS thread
prioritiespriorities Banding different priority classes Banding different priority classes
together when data is in transporttogether when data is in transport Providing special channels to high-Providing special channels to high-
priority transportpriority transport In hard real-time distributed systems, In hard real-time distributed systems,
requiring all components of the system requiring all components of the system to be predictableto be predictable
ReferencesReferences
http://en.wikipedia.org/wiki/Real-http://en.wikipedia.org/wiki/Real-time_computingtime_computing
http://www.ois.com/Products/What-ishttp://www.ois.com/Products/What-is-Real-time-CORBA.html-Real-time-CORBA.html
OMG, Real-Time CORBA Joint OMG, Real-Time CORBA Joint Revised Submission, OMG TC Revised Submission, OMG TC Document orbos, March (1999)Document orbos, March (1999)