Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 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 node1 node2 noden GSpace GSpace GSpace Kernel Kernel 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 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 Timing Requirements Distribution Policy Descriptor downloading Timing Constraints Desc. Timing Errors Timing Error Handling Error Handler Descriptor Application Layer Middleware Layer Middleware OS and Network NW Level Layer Examples of Timing Constraints • read((Rob, int ?)) must be finished within 15ms • put((temperature)) will occur every 100ms, and must be finished within 10ms 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 QoS 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 Policy Tables 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 Policy Tables 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 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 Application Controller Component read/put/take Timing Constraints Error Handlers Dynamic Policy Descriptor fetch fetch create distribution manager time needed for the action schedule new thread schedulable insert thread read/put/take map action Thread Pool Scheduler Denying an Action Controller Scheduler schedule new thread not schedulable handle not schedulable Error Handler Handling an Action Application Component Action Thread Dynamic Policy Descriptor read/put/take Distribution Manager Data Space Slice select distribution manager read/put/take read/put/take tuple read/put/take tuple tuple tuple tuple Network 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?