I. Introduction
The scalability of the performance of multiprocessor systems on chip (MPSoC) is increasingly limited by the efficiency of inter-process communication (IPC) mechanisms. There are a variety of IPC mechanisms designed for either data exchange, synchronization, or a combination of both. In this article, we focus on blocking synchronization primitives in Linux. In general, synchronization primitives manage access to a shared resource. A blocking synchronization primitive puts a thread to sleep when there is no access to that resource (contention).