Toward a Grainless Semantics for Shared-Variable Concurrency
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.
KeywordsMutual Exclusion Program Execution Boolean Expression Separation Logic Conventional Semantic
Unable to display preview. Download preview PDF.
- 1.Reynolds, J.C.: Towards a grainless semantics for shared variable concurrency (abstract only). In: Conference Record of POPL 2004: The 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press, New York (2004)Google Scholar
- 2.Hoare, C.A.R.: Towards a theory of parallel programming. In: Hoare, C.A.R., Perrott, R.H. (eds.) Operating Systems Techniques. A.P.I.C, vol. 9, pp. 61–71. London, Academic Press, London (1972)Google Scholar
- 4.Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proceedings Seventeenth Annual IEEE Symposium on Logic in Computer Science, Los Alamitos, California, pp. 55–74. IEEE Computer Society, Los Alamitos (2002)Google Scholar
- 8.Park, D.M.R.: On the semantics of fair parallelism. In: Bjørner, D. (ed.) Abstract Software Specifications. LNCS, vol. 86, pp. 504–526. Springer, Heidelberg (1980)Google Scholar