• Corpus ID: 14878764

Distributed Programming in Argu!s Special Section

  title={Distributed Programming in Argu!s Special Section},
  author={IN Argus and Barbara Liskov},
Argus--a programming language and system-was developed to support the implementation and execution of distributed programs. Distribution gives rise to some problems that do not exist in a centralized system, or that exist in a less complex form. For example, a centralized system is either running or crashed, but a distributed system may be partly running and partly crashed. The goal of Argus is to provide mechanisms that make it easier for programmers to cope with these problems. A program in… 

Figures and Tables from this paper

Composable memory transactions
This paper presents a new concurrency model, based on transactional memory, that offers far richer composition, and describes new modular forms of blocking and choice that have been inaccessible in earlier work.
Coqa: Concurrent Objects with Quantized Atomicity
This paper introduces a new language model, Coqa, for deeply embedding concurrent programming into objects, and justifies its approach both from a theoretical basis by showing that a formal representation, Kernel-Coqa, has provable quantized atomicity properties, and by implementing CoqaJava, a Java extension incorporating all of the Coqa features.
Manejo de recursos-procesos y memoria compartida distribuida
Los avances de la tecnologia informatica y la baja de costos del equipamiento hicieron realidad, en las ultimas decadas, el desarrollo de los sistemas distribuidos. Basados en sistemas seguros de


Argus is an experimental language/system designed to support the construction and execution of distributed programs that make use of on-line data that must remain consistent in spite of concurrency and hardware failures, and provide services under real-time constraints that are not severe.
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
The language addresses the writing of robust programs that survive hardware failures without loss of distributed information and that provide highly concurrent access to that information while preserving its consistency.
Avalon : language support for reliable distributed systems
This paper presents an overview of the novel aspects of Avalon/C++: support for testing transaction serialization orders at run-time, and user-defined, but system-invoked, transaction commit and abort operations for atomic data objects.
Camelot : a distributed transaction facility for mach and the internet - an interim report
A number of latency experiments are reported on to show the overhead of Camelot Release 0.4(22) and should not be interpreted as representing the official policies, either expressed or implied, of any of the sponsoring agencies or the United States government.
Nested Transactions: An Approach to Reliable Distributed Computing
The method for implementing nested transactions is novel in that it uses locking for concurrency control and the necessary algorithms for locking, recovery, distributed commitment, and distributed deadlock detection for a nested transaction system are presented.
A Case Study Of CES: A Distributed Collaborative Editing System Implemented In Argus
Experience implementing CES, a distributed collaborative editing system, is described, which exhibits a number of requirements typical of distributed applications and is written in Argus, a language designed to support the construction of reliable distributed programs.
A nested transaction mechanism for LOCUS
A working implementation of nested transactions has been produced for LOCUS, an integrated distributed operating system which provides a high degree of network transparency and an efficient orphan removal algorithm is presented.
Implementation of Argus
The implementation of Argus is described, with particular emphasis on the way the authors implement atomic actions, because this is where Argus differs most from other implemented systems.
Abstraction mechanisms in CLU
This paper provides an introduction to the abstraction mechanisms in CLU and illustrates the utility of the three kinds of abstractions in program construction and shows how CLU programs may be written to use and implement abstractions.
Crash Recovery in a Distributed Data Storage System
An algorithm is described which guarantees reliable storage of data in a distributed system, even when different portions of the data base, stored on separate machines, are updated as part of a