posted on 1997-11-01, 00:00authored byJohn C Reynolds
Conventional semantics for shared-variable concurrency suffers
from the \grain of time" problem, i.e., the necessity of specifying a
default level of atomicity. We propose a semantics that avoids any such
choice by regarding all interference that is not controlled by explicit critical
regions as catastrophic. It is based on three principles:
{ Operations have duration and can overlap one another during execution.
{ If two overlapping operations touch the same location, the meaning
of the program execution is \wrong".
{ If, from a given starting state, execution of a program can give
\wrong", then no other possibilities need be considered.