Mutex is a mutual exclusion object that allows the synchronized access to shared resources.
It is a short form of mutual exclusion. When a program is started or initialized, a mutex with unique name is created.
Mutex can have two different states : lock and unlock.
Only one process can lock a mutex at a time and any other process trying to lock it is blocked.
A blocked process can acquire or lock mutex only when mutex is released or unlocked by the locking process.
In case of multiple competing processes, an appropriate scheduling algorithm (priority based or FCFS) determines which blocked process should acquire the mutex