11,204 research outputs found
Causality in concurrent systems
Concurrent systems identify systems, either software, hardware or even
biological systems, that are characterized by sets of independent actions that
can be executed in any order or simultaneously. Computer scientists resort to a
causal terminology to describe and analyse the relations between the actions in
these systems. However, a thorough discussion about the meaning of causality in
such a context has not been developed yet. This paper aims to fill the gap.
First, the paper analyses the notion of causation in concurrent systems and
attempts to build bridges with the existing philosophical literature,
highlighting similarities and divergences between them. Second, the paper
analyses the use of counterfactual reasoning in ex-post analysis in concurrent
systems (i.e. execution trace analysis).Comment: This is an interdisciplinary paper. It addresses a class of causal
models developed in computer science from an epistemic perspective, namely in
terms of philosophy of causalit
Reversibility in Massive Concurrent Systems
Reversing a (forward) computation history means undoing the history. In
concurrent systems, undoing the history is not performed in a deterministic way
but in a causally consistent fashion, where states that are reached during a
backward computation are states that could have been reached during the
computation history by just performing independent actions in a different
order.Comment: Presented at MeCBIC 201
Markovian dynamics of concurrent systems
Monoid actions of trace monoids over finite sets are powerful models of
concurrent systems---for instance they encompass the class of 1-safe Petri
nets. We characterise Markov measures attached to concurrent systems by
finitely many parameters with suitable normalisation conditions. These
conditions involve polynomials related to the combinatorics of the monoid and
of the monoid action. These parameters generalise to concurrent systems the
coefficients of the transition matrix of a Markov chain.
A natural problem is the existence of the uniform measure for every
concurrent system. We prove this existence under an irreducibility condition.
The uniform measure of a concurrent system is characterised by a real number,
the characteristic root of the action, and a function of pairs of states, the
Parry cocyle. A new combinatorial inversion formula allows to identify a
polynomial of which the characteristic root is the smallest positive root.
Examples based on simple combinatorial tilings are studied.Comment: 35 pages, 6 figures, 33 reference
Recommended from our members
Computer-aided analysis of concurrent systems
The introduction of concurrency into programs has added to the complexity of the software design process. This is most evident in the design of communications protocols where concurrency is inherent to the behavior of the system. The complexity exhibited by such software systems makes more evident the needs for computer-aided tools for automatically analyzing behavior.The Distributed Systems project at UCI has been developing a suite of tools, based on Petri nets, which support the design and evaluation of concurrent software systems. This paper focuses attention on one of the tools: the reachability graph analyzer (RGA). This tool provides mechanisms for proving general system properties (e.g., deadlock-freeness) as well as system-specific properties. The tool is sufficiently general to allow a user to apply complex user-defined analysis algorithms to reachability graphs. The alternating-bit protocol with a bounded channel is used to demonstrate the power of the tool and to point to future extensions
Actions and Events in Concurrent Systems Design
In this work, having in mind the construction of concurrent systems from
components, we discuss the difference between actions and events. For this
discussion, we propose an(other) architecture description language in which
actions and events are made explicit in the description of a component and a
system. Our work builds from the ideas set forth by the categorical approach to
the construction of software based systems from components advocated by Goguen
and Burstall, in the context of institutions, and by Fiadeiro and Maibaum, in
the context of temporal logic. In this context, we formalize a notion of a
component as an element of an indexed category and we elicit a notion of a
morphism between components as morphisms of this category. Moreover, we
elaborate on how this formalization captures, in a convenient manner, the
underlying structure of a component and the basic interaction mechanisms for
putting components together. Further, we advance some ideas on how certain
matters related to the openness and the compositionality of a component/system
may be described in terms of classes of morphisms, thus potentially supporting
a compositional rely/guarantee reasoning.Comment: In Proceedings LAFM 2013, arXiv:1401.056
Reliability Analysis of Concurrent Systems using LTSA
The analysis for software dependability is considered an important task within the software engineering life cycle. However, it is often impossible to carry out this task due to the complexity of available tools, lack of expert personnel and time-to-market pressures. As a result, released software versions may present unverified dependability properties subjecting customers to blind software reliability assessment. In particular, concurrent systems present certain behaviour that require a more complex system analysis not easily grasped at system design and architecture level
A Design Strategy for Deadlock-Free Concurrent Systems
When building concurrent systems, it would be useful to have a collection of reusable processes
to perform standard tasks. However, without knowing certain details of the inner workings of
these components, one can never be sure that they will not cause deadlock when connected to
some particular network.
Here we describe a hierarchical method for designing complex networks of communicating
processeswhich are deadlock-free.We use this to define a safe and simple method for specifying
the communication interface to third party software components. This work is presented using
the CSP model of concurrency and the occam2.1 programming language
Implementing atomic actions in Ada 95
Atomic actions are an important dynamic structuring technique that aid the construction of fault-tolerant concurrent systems. Although they were developed some years ago, none of the well-known commercially-available programming languages directly support their use. This paper summarizes software fault tolerance techniques for concurrent systems, evaluates the Ada 95 programming language from the perspective of its support for software fault tolerance, and shows how Ada 95 can be used to implement software fault tolerance techniques. In particular, it shows how packages, protected objects, requeue, exceptions, asynchronous transfer of control, tagged types, and controlled types can be used as building blocks from which to construct atomic actions with forward and backward error recovery, which are resilient to deserter tasks and task abortion
Learning to Prove Safety over Parameterised Concurrent Systems (Full Version)
We revisit the classic problem of proving safety over parameterised
concurrent systems, i.e., an infinite family of finite-state concurrent systems
that are represented by some finite (symbolic) means. An example of such an
infinite family is a dining philosopher protocol with any number n of processes
(n being the parameter that defines the infinite family). Regular model
checking is a well-known generic framework for modelling parameterised
concurrent systems, where an infinite set of configurations (resp. transitions)
is represented by a regular set (resp. regular transducer). Although verifying
safety properties in the regular model checking framework is undecidable in
general, many sophisticated semi-algorithms have been developed in the past
fifteen years that can successfully prove safety in many practical instances.
In this paper, we propose a simple solution to synthesise regular inductive
invariants that makes use of Angluin's classic L* algorithm (and its variants).
We provide a termination guarantee when the set of configurations reachable
from a given set of initial configurations is regular. We have tested L*
algorithm on standard (as well as new) examples in regular model checking
including the dining philosopher protocol, the dining cryptographer protocol,
and several mutual exclusion protocols (e.g. Bakery, Burns, Szymanski, and
German). Our experiments show that, despite the simplicity of our solution, it
can perform at least as well as existing semi-algorithms.Comment: Full version of FMCAD'17 pape
- …