Supporting resource sharing in multiprocessor architectures is one of the problems which may limit the benefits that can be archived using this type of architecture. Many approaches and algorithms have been proposed to support resource sharing, however, most of them impose either high blocking times on tasks or require a large memory size. In this paper we investigate the possibility of combining the lock-based approaches and wait-free approaches (using multiple buffers) in order to decrease both the blocking time that may affect the schedulability of tasks and the required memory. To achieve this, we propose a solution based on evaluating the maximum allowed blocking time on each task according to the schedulability analysis, and then find the minimum memory requirement for each resource such that it limits the blocking times on tasks to be less than the maximum allowed blocking times.