Title: The Design and Performance of a RealTime CORBA Scheduling Service
1The Design and Performance of a Real-Time CORBA
Scheduling Service
- Presented by Ying Lin
- Date 09/30/2002
2Outline
- Motivation
- Overview of TAO
- Overview of Scheduling Strategies
- Taos Strategized Scheduling Service
- Performance
- Comments
3Motivation
- Increasing demand for QoS requirement
- e.g. avionics control systems, video-on-demand
and teleconferencing - Limitations with CORBA for Real-time Applications
- Lack of QoS specification interfaces
- Lack of QoS enforcement
- Lack of real-time programming features
- Lack of performance optimizations
4An example Smart Farm Application
Event Channel
5Overview of TAO
- Optimized IDL Stubs and Skeletons
- Real-time Object Adapter
- Scheduling Service
- Real-time ORB Core
- Real-time I/O subsystem
- High-speed network interface
- TAO internals ACE
6Overview of Scheduling Strategies
- Priority-based scheduling
- Static Scheduling RMS
- Purely Dynamic Scheduling EDF, MLF
- Hybrid Scheduling MUF
7Static Scheduling
- RMS (Rate Monotonic Scheduling)
- Assign the priority of each task according to
its period, so that the shorter the period the
higher the priority . - Advantages
- Simple, low run-time overhead
- Disvantages
- low system utilization
- lack of adaptation to changing situations
-
-
-
8An Example
t1 period 50s, exec_ time25s t2
period70s, exec_ time30s RMS
EDF
9Purely Dynamic Scheduling
- EDF ( Earliest Deadline First) e.g.
- MLF ( Minimum Laxity First)
- Advantages e.g.
- overcome the limitations of RMS, produce
schedules that are optimal in terms of CPU
utilization - Disvantages
- High run-time cost
- No assurance of scheduablity
10Hybrid Scheduling
- MUF ( Maximum Urgency First)
11An Example
12Taos Strategized Scheduling Service
- Synopsis of Scheduling Terminology
- Overview of Architecture
- Flexibility in TAOS Scheduling Framework
13Synopsis of Scheduling Terminology
14Overview of Architecture
3. Assign URGENCY
4. Assign static portions of DISPATCHING PRIORITY
and DISPATCHING SUBPRIORITY
5. Analyze schedule feasibility
6. Assign DISPATCHING QUEUE CONFIGURATION
15TAOs Scheduling Service Input Interface
- interface Scheduler
-
- // . . .
- // Create a new RT_Info descriptor for
entry_point - handle_t create ( in string entry_point )
- raises ( DUPLICATE_NAME )
- // Add dependency to handle's RT_Info descriptor
- void add_dependency ( in handle_t handle,in
handle_t dependency ) - raises ( UNKNOWN_TASK )
- // Set values of operation characteristics
- // in handle's RT_Info descriptor
- void set ( in handle_t handle,
- in Criticality criticality,
- in Time worstcase_exec_time,
- in Period_period,
- in Importance importance )
- raises ( UNKNOWN_TASK )
16An Example
RT_Info Repository
1 2 5 0
17TAOs Scheduling Service Output Interface
- interface Scheduler
-
- // . . .
- // Get configuration information for the queue
that will dispatch all - // RT_Operations that are assigned dispatching
priority d_priority - void dispatch_configuration ( in
Dispatching_Priority d_priority, -
out OS_Priority os_priority, -
out Dispatching_Type d_type ) - raises ( UNKNOWN_DISPATCH_PRIORITY,NOT_SCHEDULED
) - // Get dispatching subpriority and dispatching
- // priority assigned to the handle's RT_Operation
- void priority ( in handle_t handle,
- out Dispatching_Subpriority d_subpriority,
- out Dispatching_Priority d_priority)
- raises ( UNKNOWN_TASK,NOT_SCHEDULED )
- // . . .
-
18TAOs Scheduling Services Variable Mappings
Struct RT_Info wc_exec_time_
period_ criticality_ importance_
dependencies_
19Input Mappings ----- Platform Independent
20Output Mappings ----- Platform Dependent
- Preemptive-by-priority-band Dispatching Model
21Output Mappings ----- Platform Dependent
(cont.)
- Preemptive-by-urgency Dispatching Model
- smaller preemption granularity, support
preemption between urgency level - great complexity
- Non-preemptive Dispatching Model
- Simple
- Priority inversion
22Dispatching Module
- Flexible dispatching module configurations
- integrated in one or more layers in the TAO ORB
endsystem architecture(e.g. I/O subsystem, Event
Service) - Dispatch Queue Configuration
- Queue Type
- 1) Static Dispatching
- 2) Deadline Dispatching
- 3) Laxity Dispatching
- Principles
- Preemption between different priority queues.
- No preemption within a given priority queue.
- Deadline- and laxity-based queues update
operation dispatching subpriorities whenever an
operation is enqueued or dequeued -
Dispatching Priority
Thread Priority
Queue Type
23An ExampleEvent Channel Dispatching
4.enque (fire, fire station)
24Performance
- Measuring Dynamic Scheduling Overhead in TAOs
Real-Time Event Service - condition a single high-priority
supplier/consumer pair , a varied number of
low-priority event supplier/consumer pairs - Minimum End-to-End Overhead Time for run-time
scheduler Time for enqueue operations
Conclusion End-to-end QoS requirements can be
enforced within acceptable levels of overhead,
assuming other sources of system overhead are
minimized.
25Performance (cont.)
- Measuring Dynamic Scheduling Overhead in TAOs
Dispatching Modules - Static and Dynamic Dequeue Overhead
Why the dequeue overhead is not constant?
26Performance (cont.)
- Static and Dynamic Enqueue Overhead
- Conclusion
- The overhead of dynamic scheduling is acceptable
for moderately- - loaded systems.
- For heavily-loaded systems, heap-based queues
may be preferable
27Comments
- Good point
- Develop a scheduling service framework that can
- specify QoS information of operations
- support different scheduling strategies
- minimize run-time overhead by doing part of work
offline. - Limitation All the operations must be known to
the scheduler before run-time. Cannot change
scheduling strategy at run-time.
28