Abstract
Atomic transactions are a widely-accepted technique for organizing activities in reliable distributed systems. In most languages and systems based on transactions, atomicity is implemented through atomic objects, which are typed data objects that provide their own synchronization and recovery. This paper describes new linguistic mechanisms for constructing atomic objects from non-atomic components, and it formulates proof techniques that allow programmers to verify the correctness of such implementations.
This research was sponsored by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 4976, monitored by the Air Force Avionics Laboratory Under Contract F33615-84-K-1520. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the US Government.
Preview
Unable to display preview. Download preview PDF.
References
K.R. Apt, N. Francez, and W.P. De Roever. A Proof System for Communicating Sequential Processes. ACM Transactions on Programming Languages and Systems 2(3):359–385, July, 1980.
P.A. Bernstein and N. Goodman. A survey of techniques for synchronization and recovery in decentralized computer systems. ACM Computing Surveys 13(2):185–222, June, 1981.
E. Best and B. Randell. A Formal Model of Atomicity in Asynchronous Systems. Acta Informatica 16(1):93–124, 1981.
G. Dixon and S.K. Shrivastava. Exploiting Type Inheritance Facilities to Implement Recoverability in Object Based Systems. In Proceedings of the 6th Symposium in Reliability in Distributed Software and Database Systems. March, 1987.
K.P. Eswaran, J.N. Gray, R.A. Lorie, and I.L. Traiger. The Notion of Consistency and Predicate Locks in a Database System. Communications ACM 19(11):624–633, November, 1976.
J.E. Richardson and M.J. Carey. Programming Constructs for Database System Implementation in EXODUS. In ACM SIGMOD 1987 Annual Conference, pages 208–219. May, 1987.
M.P. Herlihy, N.A. Lynch, M. Merritt, and W.E. Weihl. On the correctness of orphan elimination algorithms. In 17th Symposium on Fault-Tolerant Computer Systems. July, 1987. Abbreviated version of MIT/LCS/TM-329.
I. Greif, R. Seliger, and W.E. Weihl. Atomic Data Abstractions in a Distributed Collaborative Editing System. In Proceedings of the 13th Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 160–172. January, 1986.
D. Gries. The Science of Programming. Spinger-Verlag, New York, 1981.
J.V. Guttag, J.J. Horning, and J.M. Wing. The Larch Family of Specification Languages. IEEE Software 2(5):24–36, September, 1985.
M.P. Herlihy. A quorum-consensus replication method for abstract data types. ACM Transactions on Computer Systems 4(1), February, 1986.
M.P. Herlihy and J.M. Wing. Avalon: Language Support for Reliable Distributed Systems. In The Seventeenth International Symposium on Fault-Tolerant Computing, pages 89–94. July, 1987. Also available as CMU-CS-TR-86-167.
M.P. Herlihy and J.M. Wing. Axioms for concurrent objects. In Fourteenth ACM Symposium on Principles of Programming Languages, pages 13–26. January, 1987.
C.A.R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM 12(10):576–583, October, 1969.
C.A.R. Hoare. Proof of Correctness of Data Representations. Acta Informatica 1(1):271–281, 1972.
J. Hooman and W.-P. de Roever. The Quest Goes On: A Survey of Proof Systems For Partial Correctness of CSP. Lecture Notes in Computer Science 224: Current Trends in Concurrency. Springer-Verlag, 1986, pages 343–395.
L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21(7):558–565, July, 1978.
L. Lamport. Specifying Concurrent Program Modules. ACM Transactions on Programming Languages and Systems 5(2):190–222, April, 1983.
B.H. Liskov, and R. Scheifler. Guardians and actions: linguistic support for robust, distributed programs. Transactions on Programming Languages and Systems 5(3):381–404, July, 1983.
B.H. Liskov and J.V. Guttag. Abstraction and Specification in Program Development. The MIT Press, 1986.
N. Lynch. A Concurrency Control For Resilient Nested Transactions. Technical Report MIT/LCS/TR-285, Laboratory for Computer Science, 1985.
N. Lynch and M. Merritt. Introduction to the Theory of Nested Transactions. In Proceedings of the International Conference on Database Theory. Rome, Italy, September, 1986. Sponsored by EATCS and IEEE.
Z. Manna and A. Pnueli. Verification of concurrent Programs, Part I: The Temporal Framework. Technical Report STAN-CS-81-836, Dept. of Computer Science, Stanford University, June, 1981.
J.E.B. Moss. Nested Transactions: An Approach to Reliable Distributed Computing. Technical Report MIT/LCS/TR-260, Laboratory for Computer Science, April, 1981.
S. Owicki and D. Gries. Verifying Properties of Parallel Programs: An Axiomatic Approach. Communications of the ACM 19(5):279–285, May, 1976.
C.H. Papadimitriou. The serializability of concurrent database updates. Journal of the ACM 26(4):631–653, October, 1979.
D.P. Reed. Implementing atomic actions on decentralized data. ACM Transactions on Computer Systems 1(1):3–23, February, 1983.
A.Z. Spector, J. Butcher, D.S. Daniels, D.J. Duchamp, J.L. Eppinger, C.E. Fineman, A. Heddaya, and P.M. Schwarz. Support for Distributed Transactions in the TABS prototype. IEEE Transactions on Software Engineering 11(6):520–530, June, 1985.
B. Stroustrup. The C++ Programming Language. Addison Wesley, 1986.
W.E. Weihl. Specification and implementation of atomic data types. Technical Report TR-314, Massachusetts Institute of Technology Laboratory for Computer Science, March, 1984.
W.E. Weihl, and B.H. Liskov. Implementation of resilient, atomic data types. ACM Transactions on Programming Languages and Systems 7(2):244–270, April, 1985.
C.T. Wilkes and R.J. LeBlanc. Rationale for the design of Aeolus: a systems programming language for an action/object system. Technical Report GIT-ICS-86/12, Georgia Inst. of Tech. School of Information and Computer Science, Dec. 1986.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Herlihy, M.P., Wing, J.M. (1988). Reasoning about atomic objects. In: Joseph, M. (eds) Formal Techniques in Real-Time and Fault-Tolerant Systems. FTRTFT 1988. Lecture Notes in Computer Science, vol 331. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-50302-1_14
Download citation
DOI: https://doi.org/10.1007/3-540-50302-1_14
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-50302-6
Online ISBN: 978-3-540-45965-1
eBook Packages: Springer Book Archive