Uniform synchronizing robot control and deadlock detection in uniform synchronization
AssigneeKUKA Robotics Corporation
InventorKenneth A. Stoddard
Life of this patent
Estimating the term…
Abstract
Control programs for robotic systems are synchronized through the use of synchronization objects which control access to shared resources and allow for sequencing of events in separate program threads. Where necessary, partner objects generate between control programs and synchronization objects to assure uniform interaction between control program threads and synchronization objects. As all synchronization objects contain searchable partner lists, actual simulated and runtime deadlocks including any type of synchronization object can be detected, and the full system can be analyzed to identify potential deadlocks.
Claims20
A method of controlling synchronization objects associated with a plurality of control programs, each synchronization object including control program data corresponding to the synchronization object, the control program data identifying each control program that is associated with the synchronization object, and the control program data indicating a state of each control program with respect to the associated synchronization object, comprising:
- analyzing a first synchronization object and its corresponding control program data to identify a first control program having a waiting state with respect to the first synchronization object;
- analyzing the first synchronization object and its corresponding control program data to identify a second control program having an owning state with respect to the first synchronization object;
- analyzing the second control program to identify a second synchronization object that the second control program has a waiting state with respect thereto;
- analyzing the second synchronization object and its corresponding control program data to determine if the first control program has an owning state with respect to the second synchronization object;
- analyzing the second synchronization object and its corresponding control program data to identify a third control program having an owning state with respect to the second synchronization object;
- analyzing the third control program to identify a third synchronization object that the third control program has a waiting state with respect thereto;
- analyzing the third synchronization object and its corresponding control program data to determine if the first control program has an owning state with respect to the third synchronization object;
- and
- indicating a deadlock including the first, second, and third control programs.
A method of controlling synchronization objects associated with a plurality of control programs, each synchronization object including control program data corresponding to the synchronization object, the control program data identifying each control program that is associated with the synchronization object, and the control program data indicating a state of each control program with respect to the associated synchronization object:
- analyzing a first synchronization object and its corresponding control program data to identify a first control program associated with the first synchronization object and to identify a second control program associated with the first synchronization object;
- analyzing the first control program to identify a second synchronization object associated with the first control program such that the first control program will have an owning state with respect to the first synchronization object before having a waiting state with respect to the second synchronization object;
- analyzing the second control program to determine if the second control program will have an owning state with respect to the second synchronization object before having a waiting state with respect to the first synchronization object;
- analyzing the second synchronization object and its corresponding control program data to identify a third control program associated with the second synchronization object;
- analyzing the second control program to identify a third synchronization object associated with the second control program such that the second control program will have an owning state with respect to the third synchronization object before having a waiting state with respect to the first synchronization object;
- analyzing the third control program to determine if the third control program will have an owning state with respect to the second synchronization object before having a waiting state with respect to the third synchronization object;
- and
- indicating a potential deadlock including the first, second, and third control programs.
An apparatus comprising:
- a processor;
- a memory;
- and
- program code resident in the memory and configured to be executed by the processor to control synchronization objects associated with a plurality of control programs, each synchronization object includes control program data corresponding to the synchronization object, the control program data identifies each control program that is associated with the synchronization object, and the control program data indicates a state of each control program with respect to the associated synchronization object, the program code further configured to:
- analyze a first synchronization object and its corresponding control program data to identify a first control program having a waiting state with respect to the first synchronization object;
- analyze the first synchronization object and its corresponding control program data to identify a second control program having an owning state with respect to the first synchronization object;
- analyze the second control program to identify a second synchronization object that the second control program has a waiting state with respect thereto;
- analyze the second synchronization object and its corresponding control program data to determine if the first control program has an owning state with respect to the second synchronization object;
- analyze the second synchronization object and its corresponding control program data to identify a third control program having an owning state with respect to the second synchronization object;
- analyze the third control program to identify a third synchronization object that the third control program has a waiting state with respect thereto;
- analyze the third synchronization object and its corresponding control program data to determine if the first control program has an owning state with respect to the third synchronization object;
- and
- indicate a deadlock including the first, second, and third control programs.
Dependencies are inferred from the claim text.