In a multiprocessor, access to shared resources is provided by a semaphore
control mechanism, herein disclosed. The semaphore control mechanism
provides for a high degree of programmable firmware reuse requiring
relatively few modifications from a uniprocessor. A machine check abort
(MCA) handling mechanism is disclosed, which works with the semaphore
control mechanism in the multiprocessor to provide improved system
availability and reliability. The MCA handling mechanism provides for
synchronization of multiple processors and shared resources and for
timely execution resumption within the processors that remain on-line.