above can alternatively be implemented by check frame 18 a referring now to fig4 a 4c a synchronization process in accordance with an embodiment of the present invention is shown fig4 a 4c illustrate a progression through time as various events in potentially conflicting accesses by two simulator threads ht 1 and ht 2 are received at the same frame proxy 26 a in fig4 a frame proxy 26 a receives a reservation request for a thread simulated by simulator thread ht 1 the request causes a reservation frame 26 b to be created reservation frame is inserted after frame proxy 26 a and is maintained unless another simulated thread writes to the corresponding memory frame which will cause a loss of the reservation and reservation frame 26 b will be removed if another simulator thread ht 2 attempts to simulate an access to the memory frame while reserved frame is being accessed by the simulated thread that placed the reservation frame proxy 26 a sends the request to a trap frame 26 c instead of sending the request onward to the underlying memory frame frame proxy 26 a accomplishes this diversion by setting the head of the frame chain to point to trap frame 26 c simulator thread ht 2 which has entered trap frame 26 c waits on a spinlock 28 that has been initialized by frame proxy 26 a in the wait loop for spinlock 28 trap frame 26 c compares the pointer at the head of the frame proxy 26 a to its own pointer as illustrated by fig4 c spinlock 28 is released once frame proxy 26 a receives the response to the access by the simulated thread that placed the.