Title: Software Architectures for Reducing Priority Inversion and Nondeterminism in Realtime Object Request
1Software Architectures for Reducing Priority
Inversion and Non-determinism in Real-time Object
Request Brokers
Zhengping Wu September 23rd, 2002 CS 851 OS
Middleware
2Outline
- Overview
- Comparison between different architectures
- Experiments
- Conclusion
- Discussion
3Trends
- Middleware Integration frameworks
- QoS-enabled components Open systems
- Standardization and leveraging of real-time COTS
hardware and software
4Real-time ORB Endsystem
5General Performance Overhead
- Network
- Communication protocol implementations
- ORB transport protocol implementations
- ORB core implementations
6Optimizing Real-time ORB Endsystem
7Priority Inversion and Non-determinisms Sources
- OS I/O subsystem
- ORB core
- Connection
- Concurrency
- Object adapter
8A Multiplexed Connection Architecture
9- Layered
- CORBA
- Request
- Demultiplexing
10Alternative ORB Core Connection Architectures
- Multiplexed connection architectures
- Active connection architecture
- Leader/followers connection architecture
- Non-multiplexed connection architecture
11- Active
- Connection
- Multiplexing
- Architecture
12- Leader/Follower
- Connection
- Multiplexing
- Architecture
13- Non-multiplexed
- Connection
- Architecture
14Alternative ORB Core Concurrency Architectures
- The worker thread pool architecture
- The leader/follower thread pool architecture
- Threading framework architecture
- The reactor-per-thread-priority architecture
15- Server-side
- Worker
- Thread
- Pool
- Concurrency
- Architecture
16- Server-side
- Leader/Follower
- Concurrency
- Architecture
17- Server-side
- Thread
- Framework
- Concurrency
- Architecture
18- Server-side
- Reactor-per-
- Thread-Priority
- Concurrency
- Architecture
19Experiments on Solaris
- Systems to be compared
- CORBAplus
- miniCOOL
- MT-Orbix
- TAO
20ORB Endsystem Benchmarking Testbed
21Comparative Latency
22Comparative Jitter
23Whitebox Result for CORBAplus
24Whitebox Results for miniCOOL
25Whitebox Results for MT-orbix
26Whitebox Results for TAO
27User-level Locking Overhead
28Kernel-level Locking Overhead
29Experiments on Chorus ClassiX
- Systems to be compared
- miniCOOL
- TAO
30Comparative Latency for Local Configuration
31Comparative Latency for Remote Configuration
32Comparative Jitter
33Conclusion
- Avoid dynamic connection establishment
- Minimize dynamic memory management
- Avoid multiplexing requests of different
priorities over a shared connection - Be flexible, efficient, and predictable
- Avoid reimplementing OS mechanisms
- Be guided by empirical performance benchmarks
34Discussion
- Try every connection architecture on client-side
with all kinds of concurrency architectures on
server-side - Is TAO the ideal architecture?