This paper presents an abstraction called guardian for exception handling in distributed and concurrent systems that use coordinated exception handling. This model addresses two fundamental problems with distributed e...
详细信息
This paper presents an abstraction called guardian for exception handling in distributed and concurrent systems that use coordinated exception handling. This model addresses two fundamental problems with distributed exception handling in a group of asynchronous processes. The first is to perform recovery when multiple exceptions are concurrently signaled. The second is to determine the correct context in which a process should execute its exception handling actions. Several schemes have been proposed in the past to address these problems. These are based on structuring a distributed program as atomic actions based on conversations or transactions and resolving multiple concurrent exceptions into a single one. The guardian in a distributed program represents the abstraction of a global exception handler, which encapsulates rules for handling concurrent exceptions and directing each process to the semantically correct context for executing its recovery actions. Its programming primitives and the underlying distributed execution model are presented here. In contrast to the existing approaches, this model is more basic and can be used to implement or enhance the existing schemes. Using several examples we illustrate the capabilities of this model. Finally, its advantages and limitations are discussed in contrast to existing approaches.
We define a language whose type system, incorporating session types, allows complex protocols to be specified by types and verified by static typechecking. A session type, associated with a communication channel, spec...
详细信息
ISBN:
(纸本)354022940X
We define a language whose type system, incorporating session types, allows complex protocols to be specified by types and verified by static typechecking. A session type, associated with a communication channel, specifies the state transitions of a protocol and also the data types of messages associated with transitions;thus typechecking can verify both correctness of individual messages and correctness of sequences of transitions. Previously session types have mainly been studied in the context of the pi-calculus;instead, our formulation is based on a multi-threaded functional language with side-effecting input/output operations. Our typing judgements statically describe dynamic changes in the types of channels, our channel types statically track aliasing, and our function types not only specify argument and result types but also describe changes in channels. We formalize the syntax, semantics and typing rules of our language, and prove subject reduction and runtime type safety theorems.
High-level specification of patterns of communications such as protocols can be modeled elegantly by means of session types [Honda, K., V. Vasconcelos and M. Kubo, Language primitives and type discipline for structure...
详细信息
High-level specification of patterns of communications such as protocols can be modeled elegantly by means of session types [Honda, K., V. Vasconcelos and M. Kubo, Language primitives and type discipline for structured communication-based programming, in: Proc. of ESOP'98, LNCS (1998), pp. 122–138]. However, a number of examples suggest that session types fall short when finer precision on protocol specification is required. In order to increase the expressiveness of session types we appeal to the theory of correspondence assertions [Clarke, E. and W. Marrero, Using formal methods for analyzing security, Information Survivability Workshop (1998), Gordon, A. and A. Jeffrey, Typing correspondence assertions for communication protocols, in: Seventeenth Conference on the Mathematical Foundations of programming Semantics (MFPS 2001), number 45 in ENTCS (2001)]. The resulting type discipline augments the types of long term channels with effects and thus yields types which may depend on messages read or written earlier within the same session. We prove that evaluation preserves typability and that well-typed processes are safe. Also, we illustrate how the resulting theory allows us to address the shortcomings present in the pure theory of session types. Keywords: concurrent programming, pi-calculus, type systems, session types, correspondence assertions.
The term inheritance anomaly was coined in 1993 by Matsuoka and Yonezawa [15] to refer to the problems arising by the coexistence of inheritance and concurrency in concurrent object oriented languages (COOLs). The qui...
详细信息
ISBN:
(纸本)9781581138122
The term inheritance anomaly was coined in 1993 by Matsuoka and Yonezawa [15] to refer to the problems arising by the coexistence of inheritance and concurrency in concurrent object oriented languages (COOLs). The quirks arising by such combination have been observed since the early eighties, when the first experimental COOLs were designed [3]. In the nineties COOLs turned from research topic to widely used tools in the everyday programming practice, see e.g. the Java [9] experience. This expository paper extends the survey presented in [15] to account for new and widely used COOLs, most notably Java and C# [19]. Specifically, we illustrate some innovative approaches to COOL design relying on the aspect oriented programming paradigm [13] that aim at better, more powerful abstraction for concurrent OOP, and provide means to fight the inheritance anomaly.
This brief announcement outlines a new model for high-level concurrent and distributed programming based on constraint entailment, and how model-based verification methods can be directly applied to Java programs sync...
详细信息
ISBN:
(纸本)9781581138023
This brief announcement outlines a new model for high-level concurrent and distributed programming based on constraint entailment, and how model-based verification methods can be directly applied to Java programs synchronizing using the model.
This paper gives an overview of the concurrent functional programming language and its development, dissemination, and use. Erlang was developed at Ericsson and is used for several large and important telecom systems....
详细信息
ISBN:
(纸本)0792373316
This paper gives an overview of the concurrent functional programming language and its development, dissemination, and use. Erlang was developed at Ericsson and is used for several large and important telecom systems. It is also available externally, both supported and through open source. Erlang provides a highly relevant case-study of technology diffusion since its development touches upon many relevant topics such as applied research in the industrial environment and spread of technology through open source.
In a distributed shared memory system, sequential consistency is often assumed as the model for the memory, because it is a natural extension from multitasking in uniprocessor systems. Weaker consistency models allow ...
详细信息
In a distributed shared memory system, sequential consistency is often assumed as the model for the memory, because it is a natural extension from multitasking in uniprocessor systems. Weaker consistency models allow greater concurrency, but programming is harder, because programs may produce unexpected results. Data-race-free (DRF) and concurrent-write-free (CWF) programs have the same set of possible executions both under a sequentially consistent memory and under some other, weaker model, memories. They can be written for a sequential memory and run unchanged under such a weaker-model memory. Since the sets of possible executions are the same, the run will only produce results that are possible under sequential consistency. This article proves the undecidability of both classes of concurrent programs in a language with if statements, loops, barriers, dynamic process creation, dynamic storage, and recursive data structures, under many models weaker than sequential consistency. Moreover, the article also proves that methods that only add synchronization statements to programs written for sequential consistency must produce some conservatively DRF or CWF programs. (C) 2003 Elsevier Ltd. All rights reserved.
concurrent programming is more difficult to use and understand than sequential programming. In order to simplify this type of programming a number of approaches have been developed such as visual programming, Visual O...
详细信息
concurrent programming is more difficult to use and understand than sequential programming. In order to simplify this type of programming a number of approaches have been developed such as visual programming, Visual Occam (VISO) is a visual programming language for concurrent programming. It has a graphical syntax based on the language Occam and its semantics is represented both in petri net and process calculus. This paper presents a modular visual approach to write concurrent programs using the VISO language, concurrent programs in VISO are specified graphically at different levels of abstraction, This paper describes this modular visual approach by constructing two examples in VISO, The first example is a simple concurrent program and it is mainly used to show the details of constructing a concurrent program in VISO, The second example is a larger concurrent program with more levels of abstraction. Copyright . (C) 2000 John Wiley & Sons, Ltd.
Structuring real-time concurrent programs in the form of groups of fixed-priority processes is an old art which is appropriate for only a small fraction of modem real-time distributed computing application systems. Ho...
详细信息
ISBN:
(纸本)0769519288
Structuring real-time concurrent programs in the form of groups of fixed-priority processes is an old art which is appropriate for only a small fraction of modem real-time distributed computing application systems. However, it is still practiced on the basis of an insufficient technical foundation. One of the basic issues in using the fixed-priority process structuring approach is to avoid the priority inversion phenomenon. It is argued that priority inversions are essentially due to the inappropriate approach used for structuring programs including the specification of the policy for allocating resources. Several basic program structuring techniques which are effective means of avoiding priority inversions are presented.
concurrent programming is more difficult to use and understand than sequential programming. In order to simplify this type of programming a number of approaches have been developed such as visual programming. Visual O...
详细信息
暂无评论