7,263 research outputs found

    Avoiding state enumeration in dynamic checking of distributed programs

    Get PDF
    Distributed programs are particularly vulnerable to software faults. Bugs in these programs are usually very hard to detect without automatic verification. The idea of checking an expected property in a given distributed program run (also referred to as runtime verification) has recently been attracting a great deal of attention for analyzing execution traces to ensure the reliability and dependability of distributed programs. Due to concurrency, the number of global states of a distributed program run tends to grow exponentially with respect to the number of program statements executed. As a result, checking the satisfaction of a property in a given distributed program run can incur significant overhead. This thesis introduces various ideas and exploits them to develop efficient dynamic property checking algorithms. These include the use of atom, introducing and exploiting the notion of serialization and finally proposing a methodology that exploits the concept of atoms and partial order semantics to specify and to check properties of distributed programs. The abstract specification of a distributed program can be mapped to the lower level implementation by labeling the code blocks that belong to the abstract functionalities of the program that are expected to be performed atomically. Each labeled code block is called an atom. Dynamically, an atom includes all the events that result from executing the selected statements from the corresponding code block. An efficient on-the-fly atomicity error detection algorithm has been developed. It is shown that if a run of a distributed program is atomic then the required properties can be checked on a reduced lattice, referred to as the atomic state lattice, which is significantly smaller than the original state lattice. Even with atomization, the number of global states can still grow exponentially in the number of atoms executed. However, when a number of processes has to maintain a property, we expect that each process will be, at some point in time, aware of the events of other processes that may affect the property. Consequently, it is not necessary to check the property in each state. Only synchronized states, where processes have already exchanged the information necessary to maintain the property, need to be considered. These states can be characterized by a synchronization predicate. Serialization of synchronized states is the minimal avenue for a set of processes to exchange the necessary information to maintain a property. Two efficient algorithms to check the satisfaction of a property in a distributed computation in cases where the synchronization predicate is conjunctive or disjunctive have been developed. Finally, a methodology based on the concept of atoms and a partially ordered multi-set (POMSET) model to specify and to check distributed programs properties has been proposed. The POMSET model promotes the separation of two different concerns in specifying and checking properties, namely, the ordering requirements and the computational requirements. A methodology to specify and to efficiently check the two requirements has been introduced

    Reachability analysis of first-order definable pushdown systems

    Get PDF
    We study pushdown systems where control states, stack alphabet, and transition relation, instead of being finite, are first-order definable in a fixed countably-infinite structure. We show that the reachability analysis can be addressed with the well-known saturation technique for the wide class of oligomorphic structures. Moreover, for the more restrictive homogeneous structures, we are able to give concrete complexity upper bounds. We show ample applicability of our technique by presenting several concrete examples of homogeneous structures, subsuming, with optimal complexity, known results from the literature. We show that infinitely many such examples of homogeneous structures can be obtained with the classical wreath product construction.Comment: to appear in CSL'1

    Towards the implementation of a preference-and uncertain-aware solver using answer set programming

    Get PDF
    Logic programs with possibilistic ordered disjunction (or LPPODs) are a recently defined logic-programming framework based on logic programs with ordered disjunction and possibilistic logic. The framework inherits the properties of such formalisms and merging them, it supports a reasoning which is nonmonotonic, preference-and uncertain-aware. The LPPODs syntax allows to specify 1) preferences in a qualitative way, and 2) necessity values about the certainty of program clauses. As a result at semantic level, preferences and necessity values can be used to specify an order among program solutions. This class of program therefore fits well in the representation of decision problems where a best option has to be chosen taking into account both preferences and necessity measures about information. In this paper we study the computation and the complexity of the LPPODs semantics and we describe the algorithm for its implementation following on Answer Set Programming approach. We describe some decision scenarios where the solver can be used to choose the best solutions by checking whether an outcome is possibilistically preferred over another considering preferences and uncertainty at the same time.Postprint (published version

    Introducing Dynamic Behavior in Amalgamated Knowledge Bases

    Full text link
    The problem of integrating knowledge from multiple and heterogeneous sources is a fundamental issue in current information systems. In order to cope with this problem, the concept of mediator has been introduced as a software component providing intermediate services, linking data resources and application programs, and making transparent the heterogeneity of the underlying systems. In designing a mediator architecture, we believe that an important aspect is the definition of a formal framework by which one is able to model integration according to a declarative style. To this purpose, the use of a logical approach seems very promising. Another important aspect is the ability to model both static integration aspects, concerning query execution, and dynamic ones, concerning data updates and their propagation among the various data sources. Unfortunately, as far as we know, no formal proposals for logically modeling mediator architectures both from a static and dynamic point of view have already been developed. In this paper, we extend the framework for amalgamated knowledge bases, presented by Subrahmanian, to deal with dynamic aspects. The language we propose is based on the Active U-Datalog language, and extends it with annotated logic and amalgamation concepts. We model the sources of information and the mediator (also called supervisor) as Active U-Datalog deductive databases, thus modeling queries, transactions, and active rules, interpreted according to the PARK semantics. By using active rules, the system can efficiently perform update propagation among different databases. The result is a logical environment, integrating active and deductive rules, to perform queries and update propagation in an heterogeneous mediated framework.Comment: Other Keywords: Deductive databases; Heterogeneous databases; Active rules; Update

    Revisiting Actor Programming in C++

    Full text link
    The actor model of computation has gained significant popularity over the last decade. Its high level of abstraction makes it appealing for concurrent applications in parallel and distributed systems. However, designing a real-world actor framework that subsumes full scalability, strong reliability, and high resource efficiency requires many conceptual and algorithmic additives to the original model. In this paper, we report on designing and building CAF, the "C++ Actor Framework". CAF targets at providing a concurrent and distributed native environment for scaling up to very large, high-performance applications, and equally well down to small constrained systems. We present the key specifications and design concepts---in particular a message-transparent architecture, type-safe message interfaces, and pattern matching facilities---that make native actors a viable approach for many robust, elastic, and highly distributed developments. We demonstrate the feasibility of CAF in three scenarios: first for elastic, upscaling environments, second for including heterogeneous hardware like GPGPUs, and third for distributed runtime systems. Extensive performance evaluations indicate ideal runtime behaviour for up to 64 cores at very low memory footprint, or in the presence of GPUs. In these tests, CAF continuously outperforms the competing actor environments Erlang, Charm++, SalsaLite, Scala, ActorFoundry, and even the OpenMPI.Comment: 33 page
    • …
    corecore