Granularity and the Development of Concurrent Programs

Cliff B. Jones · Electronic Notes in Theoretical Computer Science · 1995

Interference is what makes the design of concurrent programs difficult. In the case of shared-variables, interference manifests itself as state changes; but the issue of interference is also present with communication-based concurrency. In order to reason about interfering programs it is necessary to assume something about the granularity of the steps of the processes concerned. Many development methods circumvent this difficulty by fixing which statement types are atomic. It can be argued that this is unfortunate and is likely to result in programs which are inefficient (in a particular way). This extended abstract shows how development methods based on rely/guarantee-conditions avoid a commitment to a fixed notion of atomicity and suggests that concurrent object-oriented languages are good targets for such a development method.

Read the paper · More papers on PaperTik