Patent ID: 8060880
Filing Date: 2011-11-15
Classification: G06F

Abstract:
1. A computer-implemented method of acquiring one or more locks within a concurrent program, the method comprising: identifying an atomic section within the concurrent program, the atomic section including a plurality of statements that reference a plurality of variables used within the atomic section, wherein each variable refers to a memory location; performing a backwards inter-procedural analysis on the atomic section to determine which of the memory locations need to be locked during execution of the atomic section, the backwards inter-procedural analysis comprising examining lines of code within the atomic section in a bottom to top order, the backward inter-procedural analysis including determining that a memory location is referred to by more than one of the plurality of variables, and placing a fine grained lock on only one of the more than one variables which refer to the memory location; after performing the backwards inter-procedural analysis, determining a number of fine grained locks which were placed on the variables of the atomic section; and upon the number of fine grained locks exceeding a specified bound K, determining one or more alternative coarser grained locks to be used in place of the fine grained locks such that the number of locks for the atomic section do not exceed the specified bound K.