If you want to do mutual exclusion using distributed locking then you end up in a painful place (as the article points out). In general you can&#x27;t distinguish between a process that is running really slowly and a process that is dead. So when confronted with a non-responsive lock owner you end up with two unpleasant options:
1) Assume the lock owner is alive and don&#x27;t do anything. This approach guarantees mutual exclusion but isn&#x27;t especially useful because it gets stuck when things die.
2) Assume the lock owner is dead and take the lock. This doesn&#x27;t guarantee mutual exclusion but &quot;probably&quot; works if you make the timeout &quot;long enough.&quot; This can work correctly if you have a realtime system which will monitor the lock owner and kill the owner if the lease on the shared resource expires (this would probably require a special hardware&#x2F;OS&#x2F;programming language stack).