1,164 research outputs found

    Type Inference for Deadlock Detection in a Multithreaded Polymorphic Typed Assembly Language

    Full text link
    We previously developed a polymorphic type system and a type checker for a multithreaded lock-based polymorphic typed assembly language (MIL) that ensures that well-typed programs do not encounter race conditions. This paper extends such work by taking into consideration deadlocks. The extended type system verifies that locks are acquired in the proper order. Towards this end we require a language with annotations that specify the locking order. Rather than asking the programmer (or the compiler's backend) to specifically annotate each newly introduced lock, we present an algorithm to infer the annotations. The result is a type checker whose input language is non-decorated as before, but that further checks that programs are exempt from deadlocks

    Parallel discrete event simulation: A shared memory approach

    Get PDF
    With traditional event list techniques, evaluating a detailed discrete event simulation model can often require hours or even days of computation time. Parallel simulation mimics the interacting servers and queues of a real system by assigning each simulated entity to a processor. By eliminating the event list and maintaining only sufficient synchronization to insure causality, parallel simulation can potentially provide speedups that are linear in the number of processors. A set of shared memory experiments is presented using the Chandy-Misra distributed simulation algorithm to simulate networks of queues. Parameters include queueing network topology and routing probabilities, number of processors, and assignment of network nodes to processors. These experiments show that Chandy-Misra distributed simulation is a questionable alternative to sequential simulation of most queueing network models

    The application of scripts to deadlock avoidance

    Get PDF
    We describe the prototype of an expert system software advisor for the lock manager of a database system. The software advisor, called EAGLE (Expert Advisor for Granting Locks Effectively), is intended to become an embedded expert system within a database management system. EAGLE maintains a record of lock request and lock status within a database management system as an application processes transactions. Eag uses this dynamic lock data to avoid the granting of locks which could lead to a future deadlock. The sequence of lock requests and lock grantings is held as a script(s). EAGLE uses its collected record of lock request sequence to match against stereotypical lock event sequence (script base) and to learn to avoid such sequences in future. As EAGLE gains experience of lock event sequences leading to deadlock it recognises patterns which have led to deadlock, an avoids granting locks which would repeat a previous deadlock-inducing sequence of locks, thereby reducing the occurrence of deadlock. EAGLE treats the deadlock problem as a plan recognition issue rather than a problem resolution issue. We describe the general design of EAGLE, present some results from the EAGLE prototype implementation and discuss planned enhancements to EAGLE

    A Type System for Unstructured Locking that Guarantees Deadlock Freedom without Imposing a Lock Ordering

    Full text link
    Deadlocks occur in concurrent programs as a consequence of cyclic resource acquisition between threads. In this paper we present a novel type system that guarantees deadlock freedom for a language with references, unstructured locking primitives, and locks which are implicitly associated with references. The proposed type system does not impose a strict lock acquisition order and thus increases programming language expressiveness.Comment: In Proceedings PLACES 2010, arXiv:1110.385
    corecore