Abstract: |
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.
|