Message Passing and Locks
Message passing can be used as a way of controlling access to resources in a concurrent or asynchronous system. One of the main alternatives is mutual exclusion or locking. Examples of resources include shared memory, a disk file or region thereof, a database table or set of rows.
In locking, a resource is essentially shared, and processes wishing to access it (or a sector of it) must first obtain a lock. Once the lock is acquired, other processes are blocked out, ensuring that corruption from simultaneous writes does not occur. After the process with the lock is finished with the resource, the lock is then released.
With the message-passing solution, it is assumed that the resource is not exposed, and all changes to it are made by an associated process, so that the resource is encapsulated. Processes wishing to access the resource send a request message to the handler. If the resource (or subsection) is available, the handler makes the requested change as an atomic event, that is conflicting requests are not acted on until the first request has been completed. If the resource is not available, the request is generally queued. The sending programme may or may not wait until the request has been completed.
Read more about this topic: Message Passing
Famous quotes containing the words message, passing and/or locks:
“The thief. Once committed beyond a certain point he should not worry himself too much about not being a thief any more. Thieving is Gods message to him. Let him try and be a good thief.”
—Samuel Butler (18351902)
“Young poets bewail the passing of love; old poets, the passing of time. There is surprisingly little difference.”
—Mason Cooley (b. 1927)
“If courtesans and strumpets were to be prosecuted with as much rigour as some silly people would have it, what locks or bars would be sufficient to preserve the honour of our wives and daughters?”
—Bernard Mandeville (16701733)