Abstract
Argus is a programming language and system developed to support the construction and execution of distributed programs. This paper describes the implementation of Argus, with particular emphasis on the way we implement atomic actions, because this is where Argus differs most from other implemented systems. The paper also discusses the performance of Argus. The cost of actions is quite reasonable, indicating that action systems like Argus are practical.
- 1 Birrell, A. D., and Nelson, B. J. "Implementing remote procedure calls". ACM Trans. on Computer Systems ~, 1 (February 1984).]] Google ScholarDigital Library
- 2 Blasgen, M., Gray, J., Mitoma, M., and Price, T. "The convoy phenomenon". ACM Operating Systems Review 13, 2 (Apr" ~.979).]] Google ScholarDigital Library
- 3 Bloom, T. Dynamic module replacement in a distributed programming system. Technical Report MIT/LCS/TR-303, M.I.T. Laboratory for Computer Science, Cambridge Ma., 1983.]] Google ScholarDigital Library
- 4 Dijkstra, E.W. "The structure of the 'THE'-multiprogramming system" Comm. of the ACM 11, 5 (May 1968).]] Google ScholarDigital Library
- 5 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, 1976.]]Google Scholar
- 6 Gray, J.N. Notes on data base operating systems. In Lecture Notes in Computer Science, Goos and Hartmanis, Eds., Springer- Verlag, 1978, pp. 393-481.]] Google ScholarDigital Library
- 7 Gray, J. N., et al. "The Recovery Manager of the System R Database Manager". ACM Computing Surveys 18, 2 (June 1981), 223-242.]] Google ScholarDigital Library
- 8 Greif, I., Seliger, R., and Weihl, W. A Case Study of CES: A istributed Collaborative Editing System Implemented in Argus. Programming Methodology Group Memo 55, MiT Laboratory for Computer Science, Cambridge, Ma., April, 1987. To be published in IEEE Trans. on Software Engineering.]] Google ScholarDigital Library
- 9 Herlihy, M. P., and Liskov, B. "A value transmission method for abstract data types". AOM Trans. on Programming Languages and Systems 4, 4 (October 1982), 527~551.]] Google ScholarDigital Library
- 10 Hwang, D. Constructing Highly-Available Services in a Distributed Environment. S.M. Thesis, M.I.T. Dept. of Electrical Engineering and Computer Science, Cambridge, Ma., forthcoming.]]Google Scholar
- 11 Kolodner, E. Recovery Using Virtual Memory. Technical Report MIT/LCS/TR-404, MIT Laboratory for Computer Science, Cambridge, Ma., 1987.]] Google ScholarDigital Library
- 12 Lampson, B., and Redell, D. "Experience with processes and monitors in Mesa". Comm. of the ACM 23, 2 (February 1980), 105-117.]] Google ScholarDigital Library
- 13 Lampson, B. W., and Sturgis, H. E. Crash Recovery in a Distributed Data Storage System. Xerox Research Center, Palo Alto, Ca., 1979.]]Google Scholar
- 14 Lindsay, B. G., etal. u Computation and communication in R*: A distributed database manager" ACM Trans. on Computer Systems ~, 1 (February 1984).]] Google ScholarDigital Library
- 15 Liskov, B., and Scheifler, R.W. "Guardians and actions: linguistic support for robust, distributed programs". ACM Trans. on Programming Languages and Systems 5, 3 (July 1983), 381-404.]] Google ScholarDigital Library
- 16 Liskov, B. Overview of the Argus language and system. Programming Methodology Group Memo 40, M.I.T. Laboratory for Computer Science, Cambridge, Ma., February, 1984.]]Google Scholar
- 17 Liskov, B., Scheifier, R., Walker, E., and Weihl, W. Orphan Detection. Programming Methodology Group Memo 53, M.I.T. Laboratory for Computer Science, Cambridge, Ma., 1987. Also published in Proc. of the 17th International Symposium on Fault- Tolerant Computing, July 1987.]]Google Scholar
- 18 Liskov, B., Bloom, T., Gifford, D., Scheifier, R., and Weihl, W. Communication in the Mercury System. Submitted for publication.]]Google Scholar
- 19 Liskov, B., and Shrira, L. Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems. Submitted for publication.]]Google Scholar
- 20 Liskov, B., and Guttag, J. Iteration Abstraction. In Abstraction and Specification in Program Development, MIT Press and McGraw Hill, 1986.]]Google ScholarDigital Library
- 21 Mohan, C., and Lindsay, B. Efficient commit protocols for the tree of processes model of distributed transactions. Proc. of the Second Annual Symposium on Principles of Distributed Computing, ACM, August, 1983.]] Google ScholarDigital Library
- 22 Moss, J. E.B.. Nested transactions: an approach to reliable distributed computing. The MIT Press, Cambridge, Ms., 1985.]] Google ScholarDigital Library
- 23 Mueller, E., Moore, J., and Popek, G. A nested transaction mechanism for LOCUS. Proc. of the Ninth ACM Symposium on Operating Systems Principles, ACM, October, 1983.]] Google ScholarDigital Library
- 24 Needham, R., Herbert, A., and Mitchell, J. "How to connect stable memory to a computer". ACM Operating Systems Review 17, 1 (January 1983).]] Google ScholarDigital Library
- 25 Nelson, B. Remote procedure call. Technical Report CMU- CS-81-119, Carnegie Mellon University, Pittsburgh, Pa., 1981.]]Google ScholarDigital Library
- 26 Oki, B., Liskov, B., and Scheifier, R. Reliable object storage to support atomic actions. Proc. of the ACM Tenth Symposium on Operating Systems Principles, ACM, 1985.]] Google ScholarDigital Library
- 27 Postel, J. Internet User Datagram Protocol. Network Information Center RFC-768, USC/Information Sciences Institute, August, 1980.]] Google ScholarDigital Library
- 28 Saltzer, J. H., Reed, D. P., and Clark, D.D. "End-to-end arguments in system design" ACM Trans. on Computer Systems 2, 4 (November 1984), 277-288.]] Google ScholarDigital Library
- 29 Spector, A. Z., et al. Camelot: A Distributed Transaction Facility for Mach and the Internet -- An Interim Report. Technical Report CMU-CS-87-129, Dept. of Computer Science, Carnegie Mellon University, Pittsburgh, Pa., 1987.]]Google Scholar
- 30 Weihl, W., and Liskov, B. "Implementation of Resilient, Atomic Data Types" ACM Trans. on Programming Languages and Systems 7, 2 (April 1985), 244-269.]] Google ScholarDigital Library
Index Terms
- Implementation of Argus
Recommendations
Implementation of Argus
SOSP '87: Proceedings of the eleventh ACM Symposium on Operating systems principlesArgus is a programming language and system developed to support the construction and execution of distributed programs. This paper describes the implementation of Argus, with particular emphasis on the way we implement atomic actions, because this is ...
An efficient lock-aware transactional memory implementation
ICOOOLPS '09: Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming SystemsTransactional memory (TM) is an emerging concurrency control mechanism that provides a simple and composable programming model. Unfortunately, transactions violate the semantics of mutual exclusion locks when they execute concurrently. Due to the ...
Comments