Lock-based resource sharing protocols for single processor systems are well understood and supported in programming languages such as Ada and the Real-Time Specification for Java, and in Real-Time Operating Systems, such as those that conform to the Real-Time POSIX standard. In contrast, multiprocessor resource sharing protocols are still in their infancy with no agreed best practices, and yet current real-time programming languages and operating systems claim to be suitable for multiprocessor applications. This paper reviews the currently available multiprocessor resource allocation policies and analyzes their applicability to the main industry standard real-time programming languages. It then proposes a framework that allows programmers to define and implement their own locking policy. A prototype implementation of the framework for Ada is presented and evaluated. Copyright © 2012 John Wiley & Sons, Ltd.