Design of a RealTime Distributed Shared Data Space
Design of a Real-Time Distributed Shared Data Space AKA Real-time GSpace Rob Spoor
Introduction • • Shared Data Space GSpace RGSpace Issues CORBA / TAO RGSpace Architecture Scheduling RGSpace Global Design Conclusion
Shared Data Space Model Overview A B C actions: read, put, take shared data space tuple: ordered sequence of typed fields with specified values (str name, int age) - put ((Rob, 25)) template: ordered sequence of typed fields with or without a specified value (str name, int age) - read ((Rob, int ? )), take ((str ? , 25))
Shared Data Space Features • Uncoupling in time – no need to be online at the same time • Uncoupling in space – no need to know each other, only the data • Computation is separated from coordination
GSpace Overview application middleware node 1 node 2 noden GSpace Kernel network Shared data space . . .
Separating Concerns in GSpace mapping Specification Computation Functionality Coordination Distribution Requirements Implementation Component Distribution Policy Descriptor downloading Application Layer Middleware OS and Network NW Level Layer
GSpace Kernel Structure Application Layer Application Component put read take GSpace API GSpace Kernel System Boot Connection Manager Data Space Slice Controller Distribution Manager Dynamic Policy Selector Communication Module Operating System - Network Interface Policy Table Policy Descriptor Loader Middleware Layer download Distribution Policy Descriptor Low Level Layer
Real-time GSpace: RGSpace • Add timing constraints to actions • Focus on predictability, not performance
Separating Concerns in RGSpace mapping Specification Computation Functionality Coordination Distribution Requirements Implementation Component Timing Requirements Distribution Policy Descriptor downloading Timing Constraints Desc. Timing Errors Timing Error Handler Descriptor Application Layer Middleware OS and Network NW Level Layer
Examples of Timing Constraints • read((Rob, int ? )) must be finished within 15 ms • put((temperature)) will occur every 100 ms, and must be finished within 10 ms
Examples of Policies for Handling Timing Errors • • Reschedule to fit Reject new task Shut down RGSpace ? ? ?
Real-time CORBA: TAO • TAO: The ACE ORB • TAO Subsystems: – I/O Subsystem – Run-time Scheduler – ORB Core – Object Adapter – Stubs and Skeletons – Memory Manager – Qo. S API
TAO ORB Architecture
RGSpace Kernel Structure Application Layer Application Component put read take RGSpace API RGSpace Kernel System Boot Connection Manager Data Space Slice Thread Pool Controller Distribution Manager Dynamic Policy Selector Communication Module Policy Tables Operating System - Network Interface Middleware Layer Scheduler Policy Descriptor Loader download Policy Descriptors Low Level Layer
RGSpace Kernel Flow of Control Application Layer Application Component RGSpace Kernel System Boot Connection Manager Data Space Slice Thread Pool Controller Distribution Manager Dynamic Policy Selector Communication Module Policy Tables Operating System - Network Interface Middleware Layer Scheduler Policy Descriptor Loader download Policy Descriptors Low Level Layer
RGSpace Processes / Threads Communication Module Data Space Slice Communication Module Distribution Manager Dynamic Policy Selector Connection Manager Dynamic Policy Selector Thread Pool Incoming requests Controller Application RGSpace Kernel Scheduler Acceptance test Data Space Slice Scheduling policy OS Scheduler other OS tasks
RGSpace Design Decisions • Limit to periodic actions • Use rate monotonic / deadline monotonic • Limit the size of the data space
Accepting an Action
Denying an Action
Handling an Action
Intermediate Conclusions • • • Scheduling Real-time CORBA Real-time OS Real-time networking Real-time JAVA Real-time (distributed) databases
Plans for Completing this Project • • Implement for one machine only (no network) Extend for multiple machines (networked) Write my report ? ? ?
Questions?
- Slides: 23