1. Process sends request message with resource name, process number, and timestamp to all other processes
2. If receiver is not accessing the resource and does not want to, it sends OK message
3. If receiver is accessing the resource, it queues the request
4. If receiver wants to access the resource as well, it compares timestamps and sends OK if incoming message has lower timestamp
5. Process waits for all permissions before accessing the resource, and sends OK messages to queued processes when finished