Architecture and services supporting reconfigurable synchronization in a multiprocessing system
First Claim
1. A synchronization method in a multiprocessor system, the method comprising:
- providing a plurality of synchronization mechanisms as library services for synchronizing data to be accessed by a plurality of concurrently executable tasks that are executable on one or more processor cores;
analyzing design information and runtime information for application software that includes the concurrently executable tasks;
identifying, based on the analysis, software architecture patterns for the concurrently executable tasks that access a shared variable;
associating, based on the analysis, each of the software architecture patterns to one or more of the synchronization mechanisms;
generating synchronization table entries for a synchronization table that identify the shared variable, the software architecture pattern for the concurrently executable tasks that access the shared variable, and the one or more synchronization mechanisms associated with the software architecture pattern; and
accessing the shared variable using the one or more synchronization mechanisms identified in the synchronization table for accessing the shared variable, wherein accessing the shared variable comprises;
locating the shared variable in the synchronization table;
identifying the one or more synchronization mechanisms assigned to the shared variable in the synchronization table;
waiting until access is granted to the shared variable;
protecting data in the shared variable by invoking the assigned one or more synchronization mechanisms; and
adjusting task execution per the assigned one or more synchronization mechanisms; and
releasing the data protection for the shared variable after access to the shared variable is complete.
1 Assignment
0 Petitions
Accused Products
Abstract
A synchronization method in a multiprocessor system is provided. The method includes providing a plurality of synchronization mechanisms for synchronizing data to be accessed by a plurality of concurrently executable tasks, analyzing design information and runtime information for application software that includes the concurrently executable tasks, identifying, based on the analysis, software architecture patterns for the concurrently executable tasks that access a shared variable, and associating, based on the analysis, each of the software architecture patterns to one or more of the synchronization mechanisms. The method further includes generating synchronization table entries for a synchronization table that identify the shared variable, the software architecture pattern for the concurrently executable tasks that access the shared variable, and the one or more synchronization mechanisms associated with the software architecture pattern and also includes accessing the shared variable using the one or more synchronization mechanisms identified in the synchronization table.
-
Citations
20 Claims
-
1. A synchronization method in a multiprocessor system, the method comprising:
-
providing a plurality of synchronization mechanisms as library services for synchronizing data to be accessed by a plurality of concurrently executable tasks that are executable on one or more processor cores; analyzing design information and runtime information for application software that includes the concurrently executable tasks; identifying, based on the analysis, software architecture patterns for the concurrently executable tasks that access a shared variable; associating, based on the analysis, each of the software architecture patterns to one or more of the synchronization mechanisms; generating synchronization table entries for a synchronization table that identify the shared variable, the software architecture pattern for the concurrently executable tasks that access the shared variable, and the one or more synchronization mechanisms associated with the software architecture pattern; and accessing the shared variable using the one or more synchronization mechanisms identified in the synchronization table for accessing the shared variable, wherein accessing the shared variable comprises; locating the shared variable in the synchronization table; identifying the one or more synchronization mechanisms assigned to the shared variable in the synchronization table; waiting until access is granted to the shared variable; protecting data in the shared variable by invoking the assigned one or more synchronization mechanisms; and adjusting task execution per the assigned one or more synchronization mechanisms; and releasing the data protection for the shared variable after access to the shared variable is complete. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer system comprising:
-
a plurality of processor cores; and non-transient computer readable storage medium embodying programming instructions configurable to perform a method, the method comprising; providing a plurality of synchronization mechanisms as library services for synchronizing data to be accessed by a plurality of concurrently executable tasks that are executable on one or more processor cores; analyzing design information and runtime information for application software that includes the concurrently executable tasks to form a database of constraints, the database of constraints including the software architecture pattern for the concurrently executing tasks that access a shared variable; associating, based on the analysis, each of the software architecture patterns to one or more of the synchronization mechanisms; generating synchronization table entries for a synchronization table from the database of constraints, the synchronization table identifying the shared variable, the software architecture pattern for the concurrently executable tasks that access the shared variable, and the one or more synchronization mechanisms associated with the software architecture pattern; accessing the shared variable using the one or more synchronization mechanisms identified in the synchronization table for accessing the shared variable, wherein accessing the shared variable comprises; locating the shared variable in the synchronization table; identifying the one or more synchronization mechanisms assigned to the shared variable in the synchronization table; waiting until access is granted to the shared variable; protecting data in the shared variable by invoking the assigned one or more synchronization mechanisms; and adjusting task execution per the assigned one or more synchronization mechanisms; and releasing the data protection for the shared variable after access to the shared variable is complete. - View Dependent Claims (16, 17, 18)
-
-
19. A non-transitory computer readable storage medium embodying programming instructions configurable to cause a multiprocessor system to perform a method, the method comprising:
-
providing a plurality of synchronization mechanisms as library services for synchronizing data to be accessed by a plurality of concurrently executable tasks that are executable on one or more processor cores; analyzing design information and runtime information for application software that includes the concurrently executable tasks to form a database of constraints, the database of constraints including the software architecture pattern for the concurrently executing tasks that access a shared variable; associating, based on the analysis, each of the software architecture patterns to one or more of the synchronization mechanisms; generating synchronization table entries for a synchronization table from the database of constraints, the synchronization table identifying the shared variable, the software architecture pattern for the concurrently executable tasks that access the shared variable, and the one or more synchronization mechanisms associated with the software architecture pattern; accessing the shared variable using the one or more synchronization mechanisms identified in the synchronization table for accessing the shared variable, wherein accessing the shared variable comprises; locating the shared variable in the synchronization table; identifying the one or more synchronization mechanisms assigned to the shared variable in the synchronization table; waiting until access is granted to the shared variable; protecting data in the shared variable by invoking the assigned one or more synchronization mechanisms; and adjusting task execution per the assigned one or more synchronization mechanisms; and releasing the data protection for the shared variable after access to the shared variable is complete. - View Dependent Claims (20)
-
Specification