it is abstract data type used in linux and operating system. It is used to control the access to the critical section and shared resources by multiple processes and threads in concurrent system. they provide a mechanism to synchronize the process and manage access to shared resources to avoid conflicts, race around conditions and deadlocks.