Abstract
A shared variable is an abstraction of persistent interprocess communication. Processors execute operations, often concurrently, on shared variables to exchange information among themselves. The behavior of operation executions is required to be “consistent” for effective interprocess communication. Consequently, a consistency specification of a shared variable describes some guarantees on the behavior of the operation executions. A Read/Write shared variable has two operations: a Write stores a specified value in the variable and a Read returns a value from the variable. For Read/Write variables, a consistency specification describes what values Reads may return. Using an intuitive notion of illegality of Reads, we propose a framework that facilitates specifying a large variety of Read/Write variables.
- Abraham, U. and Ben-David, S. 1987. Informal and formal correctness proofs for programs (for the critical section problem). Unpublished manuscript. (Also available at http//www.cs.bgu.ac.il/~abraham/concurrency.html.).Google Scholar
- Agrawal, D., Choy, M., Leong, H., and Singh, A. 1994. Mixed consistency: A model for parallel programming. In Proceedings of the 13th ACM Symposium on Principles of Distributed Computing. ACM, New York, 101--110. Google ScholarDigital Library
- Ahamad, M., Neiger, G., Burns, J., Kholi, P., and Hutto, P. 1995. Causal memory: Definitions, implementation, and programming. Distrib. Comput. 9, 1, 37--49.Google ScholarDigital Library
- Anger, F. 1989. On lamport's interprocess communication model. ACM Trans. Prog. Lang. Syst. 11, 3, 404--417. Google ScholarDigital Library
- Attiya, H., Chaudhuri, S., Friedman, R., and Welch, J. 1993. Shared memory consistency conditions for non-sequential execution: definition and programming strategies. In Proceedings of the 5th ACM Symposium on Parallel Algorithms and Architectures. ACM, New York, 241--250. (Also in SIAM J. Computing 27, 1, 65--89, 1998). Google ScholarDigital Library
- Attiya, H. and Friedman, R. 1992. A correctness condition for high performance multiprocessors. In Proceedings of the 24th ACM Symposium on Theory of Computing. ACM, New York, 679--690. Google ScholarDigital Library
- Awerbuch, B., Kirousis, L., Kranakis, E., and Vitányi, P. 1988. A proof technique for register atomicity (preliminary version). In Proceedings of Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science, vol. 338. Springer-Verlag, New York, 286--303. Google ScholarDigital Library
- Bataller, J. and Bernabeu-Aubn, J. 1997. Synchronized DSM models. In Proceedings of the 3rd International Euro-Par Conference. 468--475. Google ScholarDigital Library
- Ben-David, S. 1988. The global time assumption and semantics for concurrent systems. In Proceedings of the 7th ACM Symposium on Principles of Distributed Computing. ACM, New York, 223--231. Google ScholarDigital Library
- Garg, V. and Raynal, M. 1999. Normality: A consistency condition for concurrent objects. Para. Proc. Lett. 9, 1, 123--134.Google ScholarCross Ref
- Goodman, J. 1989. Cache consistency and sequential consistency. Tech. Rep. No. 61. SCI Committee, Mar.Google Scholar
- Haldar, S. and Vidyasankar, K. 1996. Simple extensions of 1-writer atomic variable constructions to multiwriter ones. Acta Inf. 33, 2, 177--202. Google ScholarDigital Library
- Herlihy, M. and Wing, J. 1990. Linearizability: A correctness condition for concurrent objects. ACM Trans. Prog. Lang. Syst. 12, 3, 463--492. Google ScholarDigital Library
- Hutto, P. and Ahamad, M. 1990. Slow memory: Weakening consistency to enhance concurrency in distributed shared memories. In Proceedings of the 10th International Conference on Distributed Computing Systems. 302--309.Google Scholar
- Kirousis, L. and Kranakis, E. 1989. A brief survey of concurrent readers and writers. CWI Quarterly 2.Google Scholar
- Lamport, L. 1979a. How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Computer C-28, 9, 690--691. Google ScholarDigital Library
- Lamport, L. 1979b. A new approach to proving the correctness of multiprocess programs. ACM Trans. Prog. Lang. Syst. 1, 1, 84--97. Google ScholarDigital Library
- Lamport, L. 1985. On interprocess communication---Part I: Basic formalism, Part II: Algorithms. DEC SRC Report 8. (Also in Distributed Computing, 1, 2, 77--101.)Google Scholar
- Lee, H. and Welch, W. 2001. Applications of probabilistic quorums to iterative algorithms. In Proceedings of the 21st International Conference of Distributed Computing Systems. 21--30. Google ScholarDigital Library
- Lipton, R. and Sandberg, J. 1988. Pram: A scalable shared memory. Tech. Rep. 180-88, Department of Computer Science, Princeton University.Google Scholar
- Misra, J. 1986. Axiom for memory access in asynchronous hardware systems. ACM Trans. Prog. Lang. Syst. 8, 1, 142--153. Google ScholarDigital Library
- Owicki, S. and Gries, D. 1976. An axiomatic proof technique for parallel programs. ACTA Informat. 6, 319--340.Google ScholarDigital Library
- Peterson, G. and Burns, J. 1987. Concurrent reading while writing ii: The multiwriter case. In Proceedings of the 28th IEEE Symposium on Foundations of Computer Science. IEEE Computer Society Press, Los Alamitos, CA, 383--392.Google Scholar
- Raynal, M. and Schiper, A. 1995. From causal consistency to sequential consistency in shared memory systems. In Proceedings of Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science, vol. 1026. Springer-Verlag, New York, 180--194. Google ScholarDigital Library
- Raynal, M. and Schiper, A. 1996. A suite of definitions of consistency criteria in distributed shared memories. In Proceedings of the 9th IEEE Conference of Parallel and Distributed Computing Systems, IEEE Computer Society Press, Los Alamitos, CA, 125--131.Google Scholar
- Shao, C., Pierce, E., and Welch, J. L 2003. Multi-writer consistency conditions for shared memory objects. In Proceedings of the 17th International Conference on Distributed Computing (DISC 2003) (Sorrento, Italy, Oct. 1--3). Lecture Notes in Computer Science, vol. 2848, Springer-Verlag, New York, 106--120.Google Scholar
- Singh, A. 1995. A framework for programming using non-atomic variables. J. Paral. Distrib. Comput. 26, 2, 211--224. (Originally in Proceedings of the 8th International Parallel Processing Symposium, Cancun, Mexico), 26--29. Google ScholarDigital Library
- Steinke, R. and Nutt, G. 2004. A unified theory of shared memory consistency. J. ACM 51, 5, 800--849. Google ScholarDigital Library
- Torres-Rojas, F., Ahamad, M., and Raynal, M. 1999. Timed consistency for shared distributed objects. In Proceedings of the 18th Annual ACM Symposium on Principles of Distributed Computing. ACM, New York, 163--172. Google ScholarDigital Library
- Vidyasankar, K. 1985. A simple characterization of database serializability. In Proceedings of Foundations of Software Technology and Theoretical Computer Science. Lecture Notes in Computer Science, vol. 206. Springer-Verlag, New York, 329--345. Google ScholarDigital Library
Index Terms
- On specification of Read/Write shared variables
Recommendations
A criterion for atomicity
AbstractMost proof methods for reasoning about concurrent programs are based upon theinterleaving semantics of concurrent computation: a concurrent program is executed in a stepwise fashion, with only one enabled action being executed at each step. ...
Constructing regular variables in message passing systems
Developing fault-tolerant programs for distributed systems is a difficult task. It seems that it is more difficult to develop fault-tolerant programs for message passing systems than for shared memory systems. Consequently, there has been a lot of ...
Distributed Computing with Single Read-Single Write Variables
Single-read-single-write (SRSW) variables are presented for synchronous and asynchronous communication between processes. The operational semantics of the instruction accessing these variables is quite simple: a SRSW variable can be written if it is ...
Comments