Opportunistic Mutual Exclusion
Mutual exclusion is an important problem in the context of shared resource usage, where only one process can be using the shared resource at any given time. A mutual exclusion protocol that does not use information on the duration for which each process uses the resource can lead to sub-optimal utilization times. We consider a simple two-process mutual exclusion problem with a central server that provides access to the shared resource. We show that even in the absence of a clock, under certain conditions, the server can opportunistically grant early access to a client based on timing information. We call our new protocol opportunistic mutual exclusion. Our approach requires an extra request signal on each channel between client and server to convey extra information, and the server can grant early access based only on the order of events rather than through measuring time. We derive the handshaking specification and production rules for our protocol, and report on the energy and delay of the circuits in a 65nm process.
READ FULL TEXT