Message Passing - Message Passing and Locks

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:

    if once the message greet him
    That his True Love doth stay,
    If Death should come and meet him,
    Love will find out the way!
    —Unknown. Love Will Find Out the Way (l. 53–56)

    I saw the spires of Oxford
    As I was passing by,
    The grey spires of Oxford
    Against a pearl-grey sky;
    My heart was with the Oxford men
    Who went abroad to die.
    Winifred M. Letts (1887–1972)

    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 (1670–1733)