_____________ is a type of lock that allows you to limit the number of processes that can concurrently access a resource to some fixed number.
a) Lock with timeouts
b) Optimistic locking
c) Counting semaphore
d) Distributed locking