messages and delay are necessary to get granted the permission to access the resource (this means entering the critical section) or to release the permission (exiting it)
gain exclusive access to a shared resource; only one thread of control can operate upon that resource at a time - multiple threads of control are serialized.
only allowing one process to access a shared-resource at a time.