46,355 research outputs found
Automated Synthesis of Distributed Self-Stabilizing Protocols
In this paper, we introduce an SMT-based method that automatically
synthesizes a distributed self-stabilizing protocol from a given high-level
specification and network topology. Unlike existing approaches, where synthesis
algorithms require the explicit description of the set of legitimate states,
our technique only needs the temporal behavior of the protocol. We extend our
approach to synthesize ideal-stabilizing protocols, where every state is
legitimate. We also extend our technique to synthesize monotonic-stabilizing
protocols, where during recovery, each process can execute an most once one
action. Our proposed methods are fully implemented and we report successful
synthesis of well-known protocols such as Dijkstra's token ring, a
self-stabilizing version of Raymond's mutual exclusion algorithm,
ideal-stabilizing leader election and local mutual exclusion, as well as
monotonic-stabilizing maximal independent set and distributed Grundy coloring
Synthesis of a simple self-stabilizing system
With the increasing importance of distributed systems as a computing
paradigm, a systematic approach to their design is needed. Although the area of
formal verification has made enormous advances towards this goal, the resulting
functionalities are limited to detecting problems in a particular design. By
means of a classical example, we illustrate a simple template-based approach to
computer-aided design of distributed systems based on leveraging the well-known
technique of bounded model checking to the synthesis setting.Comment: In Proceedings SYNT 2014, arXiv:1407.493
Preserving Stabilization while Practically Bounding State Space
Stabilization is a key dependability property for dealing with unanticipated
transient faults, as it guarantees that even in the presence of such faults,
the system will recover to states where it satisfies its specification. One of
the desirable attributes of stabilization is the use of bounded space for each
variable. In this paper, we present an algorithm that transforms a stabilizing
program that uses variables with unbounded domain into a stabilizing program
that uses bounded variables and (practically bounded) physical time. While
non-stabilizing programs (that do not handle transient faults) can deal with
unbounded variables by assigning large enough but bounded space, stabilizing
programs that need to deal with arbitrary transient faults cannot do the same
since a transient fault may corrupt the variable to its maximum value. We show
that our transformation algorithm is applicable to several problems including
logical clocks, vector clocks, mutual exclusion, leader election, diffusing
computations, Paxos based consensus, and so on. Moreover, our approach can also
be used to bound counters used in an earlier work by Katz and Perry for adding
stabilization to a non-stabilizing program. By combining our algorithm with
that earlier work by Katz and Perry, it would be possible to provide
stabilization for a rich class of problems, by assigning large enough but
bounded space for variables.Comment: Moved some content from the Appendix to the main paper, added some
details to the transformation algorithm and to its descriptio
Self-stabilizing K-out-of-L exclusion on tree network
In this paper, we address the problem of K-out-of-L exclusion, a
generalization of the mutual exclusion problem, in which there are units
of a shared resource, and any process can request up to units
(). We propose the first deterministic self-stabilizing
distributed K-out-of-L exclusion protocol in message-passing systems for
asynchronous oriented tree networks which assumes bounded local memory for each
process.Comment: 15 page
Constant RMR Group Mutual Exclusion for Arbitrarily Many Processes and Sessions
Group mutual exclusion (GME), introduced by Joung in 1998, is a natural synchronization problem that generalizes the classical mutual exclusion and readers and writers problems. In GME a process requests a session before entering its critical section; processes are allowed to be in their critical sections simultaneously provided they have requested the same session.
We present a GME algorithm that (1) is the first to achieve a constant Remote Memory Reference (RMR) complexity for both cache coherent and distributed shared memory machines; and (2) is the first that can be accessed by arbitrarily many dynamically allocated processes and with arbitrarily many session names. Neither of the existing GME algorithms satisfies either of these two important properties. In addition, our algorithm has constant space complexity per process and satisfies the two strong fairness properties, first-come-first-served and first-in-first-enabled. Our algorithm uses an atomic instruction set supported by most modern processor architectures, namely: read, write, fetch-and-store and compare-and-swap
Exact Covers via Determinants
Given a k-uniform hypergraph on n vertices, partitioned in k equal parts such
that every hyperedge includes one vertex from each part, the k-dimensional
matching problem asks whether there is a disjoint collection of the hyperedges
which covers all vertices. We show it can be solved by a randomized polynomial
space algorithm in time O*(2^(n(k-2)/k)). The O*() notation hides factors
polynomial in n and k.
When we drop the partition constraint and permit arbitrary hyperedges of
cardinality k, we obtain the exact cover by k-sets problem. We show it can be
solved by a randomized polynomial space algorithm in time O*(c_k^n), where
c_3=1.496, c_4=1.642, c_5=1.721, and provide a general bound for larger k.
Both results substantially improve on the previous best algorithms for these
problems, especially for small k, and follow from the new observation that
Lovasz' perfect matching detection via determinants (1979) admits an embedding
in the recently proposed inclusion-exclusion counting scheme for set covers,
despite its inability to count the perfect matchings
- …