Lecture Notes for Concurrent Programming

14 August 2003 - Polychordal Concurrency Control Mechanisms


The path expression

path put() ; get()

is better than the previous semaphore path expression because this path expression provides the proper blocking behavior for get() calls. If a get() arrives first, it is delayed until the corresponding put() arrives.

Unfortunately, this path expression also blocks put() calls, which is not consistent with the expected behavior for binary semaphores. The path expression is not wrong, it just specifies a behavior that is stronger than that of the usual binary-semaphore specification (A semaphore satisfying the expected specification doesn't satisfy the path expression; a semaphore satisfying the path expression does satisfy the expected specification.)


This page last modified on 12 August 2003.