As we know there are several synchronization premises are exist in Linux, such are spinlocks, mutex locks, semaphores, monitors, etc. But ultimately, all these synchronization mechanisms rely on a low level machine instruction, typically, a “test and set” and/or a “compare and exchange” type of machine instruction.