Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way.