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