1. A computer system for managing access to shared resources, running at least one primary program instance of an application program and at least one secondary program instance of the same application program, the system comprising: a memory; a processor in communication with the memory, the processor for fetching instructions from memory and for executing fetched instructions, the processor comprising at least one primary processing unit and at least one secondary processing unit; the at least one primary processing unit for requesting access to a set of primary shared resources in a first order for executing a primary instruction instance of the primary program instance within a primary process instance, reserving the set of primary shared resources in the first order by granting the primary process instance the exclusive right to access the members of the set of primary shared resources unless the primary process instance has already reserved the requested primary shared resource, and recording a sequence of corresponding reservation events for the members of the set of primary shared resources in the first order; the at least one secondary processing unit for requesting access to a corresponding set of secondary shared resources in a second order for executing a corresponding secondary instruction instance of the secondary program instance within a corresponding secondary process instance, and reading the recorded sequence of reservation events in the first order controlling the reservation of the set of secondary shared resources in the first order by granting the secondary process instance the exclusive right to access the members of the set of secondary shared resources unless the secondary process instance has already reserved the requested secondary shared resource.