skip to main content
article
Free Access

Distributed programming in Argus

Published:01 March 1988Publication History
Skip Abstract Section

Abstract

Argus—a programming language and system developed to support the implementation and execution of distributed programs—provides mechanisms that help programmers cope with the special problems that arise in distributed programs, such as network partitions and crashes of remote nodes.

References

  1. 1 Andrews, G.R., and Olsson, R.A. The evolution of the SR language. Distrib. Comput. 1, 2 (Apr. 1986). Also Tech. Rep. 85-22, Univ. of Arizona, Tucson, Ariz., Oct. 1985.Google ScholarGoogle ScholarCross RefCross Ref
  2. 2 Davies, C.T. Data processing spheres of control. IBM Syst. J. 12, 2 (1978), 179-198.Google ScholarGoogle Scholar
  3. 3 Gray, J.N. Notes on data base operating systems. In Lecture Notes in Computer Science. G. Goos and J. Hartmanis, Springer-Verlag, New York, 1978, pp. 393-481. Google ScholarGoogle Scholar
  4. 4 Gray, J.N., Lorie, R.A., Putzolu, G.F., and Traiger, I.L. Granularity of locks and degrees of consistency in a shared data base. In Modeling in Data Base Management Systems. G.M. Nijssen, Ed. North Holland, Am~terdam, 1976.Google ScholarGoogle Scholar
  5. 5 Greif, I., Seliger, R., and Weihl, W. A case study of CE?;: A distributed collaborative editing system implemented in Argus. Programming Methodology Group Memo 55. MIT Laboratory for Computer Science, Cambridge, Mass. Apr. 1987. To be published in IEEE Transactions on Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Hayes, B. Computer recreations: On the ups and downs of hailstone numbers. Scientif. Amer. 250, 1 (Jan. 1984).Google ScholarGoogle ScholarCross RefCross Ref
  7. 7 Herlihy, M., and Wing, J. Avalon: Language support for reliable distributed systems. In Proceedings of the 17th International Symposium on Fault-Tolerant Computing, (Pittsburgh, Pa., July). IEEE, New York, 1987.Google ScholarGoogle Scholar
  8. 8 Ichbiah, J., et al. Rationale for the design of the Ada programming language. SIGPLAN Not. 14, 6 {June 1979). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Lampson, B.W., and Sturgis, H.E. Crash recovery in a distributed data storage system. Tech. Rep. Xerox Research Center, Pa}o Alto, Calif., 1979.Google ScholarGoogle Scholar
  10. 10 Liskov B. Overview of the Argus language and system. Programming Methodology Group Memo 40. M.I.T. Laboratory for Computer Science, Cambridge, Mass., Feb. 1984.Google ScholarGoogle Scholar
  11. 11 Liskov B., et al. Argus reference manual. Tech. Rep. MZ{T/LCS/TR- 400. M.I.T. Laboratory for Computer Science, Cambridge, Mass., 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Liskov, B., Curtis, D., Johnson, P., and Scheifler, R. implementation of Argus. In Proceedings of the 11th Symposium on Operating Systems Principles {Austin, Texas, Nov.}. ACM, New York, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Liskov B., and Guttag, J. Iteration abstraction. In Abstraction and Specification in Program Development. MIT Press, Cambridge, Mass., and McGraw Hill, New York, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Liskov B., and Scheifler, R.W. Guardians and actions: Linguistic support for robust, distributed programs. ACM Trans. Prog. Lang. Syst. 5, 3 (July 1983). 381-404. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Liskov B., Snyder, A., Atkinson, R.R., and Schaffert, J.C. Abstraction mechanisms in CLU. Commun. ACM 20, 8 (Aug. 1977), 564-576. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Mitchell, J.G., Maybury, W., and Sweet, R. Mesa language manual version 5.0. Tech. Rep. GSL-79-3. Xerox Research Center, Palo Alto, Calif., 1979.Google ScholarGoogle Scholar
  17. 17 Moss, J.E.B. Nested transactions: An approach to reliable distributed computing. MIT Press, Cambridge, Mass., 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 Mueller, E., Moore, J., and Popek, G. A nested transaction mechanism for LOCUS. In Proceedings of the 9th ACM Symposium on Operating Systems Principles (Bretton Woods, N.H., Oct.}. AClvl, New York, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19 Spector, A.Z., et al. Camelot: A distributed transaction facility for Mach and the lnternet--An interim report. Tech. Rep. CMU-CS-87-129. Dept. of Computer Science, Carnegie Mellon University, Pittsburgh, Pa., 1987.Google ScholarGoogle Scholar
  20. 20 Weihl, W., and Liskov, B. Implementation of resilient, atomic data types. ACM Trans. Prog. Lang. Syst. 7, 2 {Apr. 1985}, 244-269. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Distributed programming in Argus

                      Recommendations

                      Reviews

                      Peter B. Danzig

                      Liskov uses program excerpts to illustrate how the Argus system exploits its programming language to create resilient, easily expressed, distributed programs. The paper walks the reader through the design of a distributed banking database, and serves as an excellent introduction to the author's Argus work. It is written for a general audience and includes references to many Argus papers and related work. The paper describes the tools of resilient programming: atomic actions, nested actions, locking, and recovery. It tersely illustrates nested atomic actions and lock propagation and warns that it has not solved the deadlock detection and avoidance problems inherent to locking. The two principal abstractions of Argus are guardians and actions. “An Argus guardian is a special kind of abstract object whose purpose is to encapsulate a resource or resources. It permits its resource to be accessed by means of special procedures, called handlers.” An Argus action is essentially a nested atomic transaction. Argus is unique because it provides atomic actions within a programming language. It is more general than database transaction processing systems because it operates on general objects within a programming language; it is not an interface to an underlying database. The paper is well written and shorter than previously published descriptions of Argus. It describes an important area of operating system research (see the companion papers in this issue for an overview of other current operating system research projects).

                      Access critical reviews of Computing literature here

                      Become a reviewer for Computing Reviews.

                      Comments

                      Login options

                      Check if you have access through your login credentials or your institution to get full access on this article.

                      Sign in

                      Full Access

                      • Published in

                        cover image Communications of the ACM
                        Communications of the ACM  Volume 31, Issue 3
                        March 1988
                        111 pages
                        ISSN:0001-0782
                        EISSN:1557-7317
                        DOI:10.1145/42392
                        Issue’s Table of Contents

                        Copyright © 1988 ACM

                        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                        Publisher

                        Association for Computing Machinery

                        New York, NY, United States

                        Publication History

                        • Published: 1 March 1988

                        Permissions

                        Request permissions about this article.

                        Request Permissions

                        Check for updates

                        Qualifiers

                        • article

                      PDF Format

                      View or Download as a PDF file.

                      PDF

                      eReader

                      View online with eReader.

                      eReader