Как процессы используют мьютекс?
Вариантов три (в posix), настраивается  через pthread_mutexattr_settype()
 - PTHREAD_MUTEX_NORMAL блокировка при попытке захвата - поток будет ждать, пока ресурс не освободится
 - PTHREAD_MUTEX_RECURSIVE рекурсивный захват - тот же самый поток сможет повторно захватить русурс
 - PTHREAD_MUTEX_ERRORCHECK вылет с ошибкой, если ресурс занят

Ну и ненужно забывать, что есть еще и семафоры, у которых есть счетчик. Например, блокировать доступ, если уже 5 потоков или процессов захватили семафор.

А , еще забыл, если процессы, то для этого есть shared memory - туда и помещать семафоры и мьютексы. С мьютексами не уверен точно, а вот семафоры туда нужно !
Вариантов три (в posix), настраивается  через pthread_mutexattr_settype()
 - PTHREAD_MUTEX_NORMAL блокировка при попытке захвата - поток будет ждать, пока ресурс не освободится
 - PTHREAD_MUTEX_RECURSIVE рекурсивный захват - тот же самый поток сможет повторно захватить русурс
 - PTHREAD_MUTEX_ERRORCHECK вылет с ошибкой, если ресурс занят

Ну и ненужно забывать, что есть еще и семафоры, у которых есть счетчик. Например, блокировать доступ, если уже 5 потоков или процессов захватили семафор.

А , еще забыл, если процессы, то для этого есть shared memory - туда и помещать семафоры и мьютексы. С мьютексами не уверен точно, а вот семафоры туда нужно !