Results 1  10
of
10
Gadara: Dynamic Deadlock Avoidance for Multithreaded Programs
"... Deadlock is an increasingly pressing concern as the multicore revolution forces parallel programming upon the average programmer. Existing approaches to deadlock impose onerous burdens on developers, entail high runtime performance overheads, or offer no help for unmodified legacy code. Gadara autom ..."
Abstract

Cited by 27 (8 self)
 Add to MetaCart
Deadlock is an increasingly pressing concern as the multicore revolution forces parallel programming upon the average programmer. Existing approaches to deadlock impose onerous burdens on developers, entail high runtime performance overheads, or offer no help for unmodified legacy code. Gadara automates dynamic deadlock avoidance for conventional multithreaded programs. It employs wholeprogram static analysis to model programs, and Discrete Control Theory to synthesize lightweight, decentralized, highly concurrent logic that controls them at runtime. Gadara is safe, and can be applied to legacy code with modest programmer effort. Gadara is efficient because it performs expensive deadlockavoidance computations offline rather than online. We have implemented Gadara for C/Pthreads programs. In benchmark tests, Gadara successfully avoids injected deadlock faults, imposes negligible to modest performance overheads (at most 18%), and outperforms a software transactional memory system. Tests on a real application show that Gadara identifies and avoids both previously known and unknown deadlocks while adding performance overheads ranging from negligible to 10%. 1
The Theory of Deadlock Avoidance via Discrete Control ∗
"... Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual ..."
Abstract

Cited by 19 (6 self)
 Add to MetaCart
Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual exclusion and synchronization primitives (e.g., multithreaded C/Pthreads programs). Beginning with control flow graphs extracted from program source code, we construct a formal model of the program and then apply Discrete Control Theory to automatically synthesize deadlockavoidance control logic that is implemented by program instrumentation. At run time, the control logic avoids deadlocks by postponing lock acquisitions. Discrete Control Theory guarantees that the program instrumented with our synthesized control logic cannot deadlock. Our method furthermore guarantees that the control logic is maximally permissive: it postpones lock acquisitions only when necessary to prevent deadlocks, and therefore permits maximal runtime concurrency. Our prototype for C/Pthreads scales to real software including Apache, OpenLDAP, and two kinds of benchmarks, automatically avoiding both injected and naturally occurring deadlocks while imposing modest runtime overheads. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features—Concurrent programming
Accommodating FMS Operational Contingencies through Routing Flexibility
 IEEE TRANS. ON R&A
, 1997
"... Overwhelmed by the complexity of the FMS Deadlock Avoidance problem, current research has, for the most part, ignored the aspects (and benefits) related to flexible (dynamic) job routing. Extending current structural control policies, based on static job routing, to accommodate routing flexibilit ..."
Abstract

Cited by 13 (6 self)
 Add to MetaCart
Overwhelmed by the complexity of the FMS Deadlock Avoidance problem, current research has, for the most part, ignored the aspects (and benefits) related to flexible (dynamic) job routing. Extending current structural control policies, based on static job routing, to accommodate routing flexibility is nontrivial, primarily due to the fact that the possible routing options for a single job can grow exponentially fast. Hence, computationally efficient techniques are required to incorporate the inherent FMS routing flexibility to current structural control schemes. This paper undertakes the investigation of the problem of integrating routing flexibility in FMS structural control, by addressing the problem of "optimal" job rerouting in case of operational contingencies. Analytical formulations and efficient solution algorithms are developed for the case that the FMS is structurally controlled by a class of recently emerging polynomialcomplexity, onestep lookahead deadlock avoid...
Petri Nets in Modeling Component Behavior and Verifying Component Compatibility
"... Abstract. In componentbased systems, two components are compatible if all possible sequences of services requested by one component can be provided by the other component. Verification of component compatibility is essential in large software systems as otherwise subtle software failures can exist ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. In componentbased systems, two components are compatible if all possible sequences of services requested by one component can be provided by the other component. Verification of component compatibility is essential in large software systems as otherwise subtle software failures can exist which are difficult to detect through software testing. For verification of compatibility, the behavior of interacting components, at their interfaces, is modeled by labeled Petri nets with labels representing the requested and provided services, and such component models are then composed. The composition operation is designed in such a way that component incompatibilities are manifested as deadlocks in the composed model. Compatibility verification is thus performed through deadlock detection in the composed models. Efficient structural techniques are proposed for deadlock analysis.
An Incremental Approach to Extracting Minimal Bad Siphons
"... Finding all minimal bad siphons is essential for deadlock control. However, the number of siphons grows exponentially with the size of the system. Deadlock occurs due to inappropriate resource sharing. Hence most research focused on the problem of minimal siphon extraction covering a set of places r ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Finding all minimal bad siphons is essential for deadlock control. However, the number of siphons grows exponentially with the size of the system. Deadlock occurs due to inappropriate resource sharing. Hence most research focused on the problem of minimal siphon extraction covering a set of places representing resources — an NPComplete problem for arbitrary Petri Nets. We develop the theory for efficient extraction of minimal bad siphons for S 3 PR (systems of simple sequential processes) proposed by Ezpeleta et al. The number of minimal bad siphons that needs to be searched is linear to the number of resources. The rest can be found by adding and deleting common sets of places from existing ones significantly reducing the search time. It is very interesting that both nets and siphons can be synthesized by first locating a circuit followed by adding handles.
On The Computational Complexity Of The Manufacturing Job Shop And Reentrant Flow Line
"... This paper presents a comparison study of the computational complexity of the general job shop protocol and the flow line protocol in a flexible manufacturing system. It is shown that a certain representative problem of finding resource invariants is NPcomplete in the case of the job shop, while i ..."
Abstract
 Add to MetaCart
This paper presents a comparison study of the computational complexity of the general job shop protocol and the flow line protocol in a flexible manufacturing system. It is shown that a certain representative problem of finding resource invariants is NPcomplete in the case of the job shop, while in the flow line case it admits a closedform solution. The importance of correctly selecting part flow and job routing protocols in flexible manufacturing systems to reduce complexity is thereby conclusively demonstrated. 1 Introduction In a general flexible manufacturing system (FMS) where resources are shared, a key role in part routing, job selection, and resource assignment is played by the FMS controller. Given the same resources of machines, robots, fixtures, tooling, and so on, different structures result under different routing/assignment strategies by the controller. Unstructured strategies are generally clasified as the socalled job shop organization, while structured protocols ...
Automated Synthesis Of Liveness Enforcing Supervisors Using Petri Nets
, 2000
"... Given an arbitrary Petri net structure, which may have uncontrollable and unobservable transitions, the liveness enforcement procedure presented here determines a set of linear inequalities on the marking of a Petri net. When the Petri net is supervised so that its markings satisfy these inequalitie ..."
Abstract
 Add to MetaCart
Given an arbitrary Petri net structure, which may have uncontrollable and unobservable transitions, the liveness enforcement procedure presented here determines a set of linear inequalities on the marking of a Petri net. When the Petri net is supervised so that its markings satisfy these inequalities, the supervised net is proved to be live for all initial markings that satisfy the supervision constraints. Also the supervision is proved to be maximally permissive for a large class of Petri nets, which includes the fully controllable and observable Petri nets. Moreover, the supervisor supports specifications requiring only some of the Petri net transitions to be live. The maximal permissivity also applies for this case. The procedure allows automated synthesis of the supervisors. The sufficient conditions for which our theoretical results are guaranteed to apply can also be automatically verified.
HewlettPackard Labs
"... Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual ..."
Abstract
 Add to MetaCart
Deadlock in multithreaded programs is an increasingly important problem as ubiquitous multicore architectures force parallelization upon an ever wider range of software. This paper presents a theoretical foundation for dynamic deadlock avoidance in concurrent programs that employ conventional mutual exclusion and synchronization primitives (e.g., multithreaded C/Pthreads programs). Beginning with control flow graphs extracted from program source code, we construct a formal model of the program and then apply Discrete Control Theory to automatically synthesize deadlockavoidance control logic that is implemented by program instrumentation. At run time, the control logic avoids deadlocks by postponing lock acquisitions. Discrete Control Theory guarantees that the program instrumented with our synthesized control logic cannot deadlock. Our method furthermore guarantees that the control logic is maximally permissive: it postpones lock acquisitions only when necessary to prevent deadlocks, and therefore permits maximal runtime concurrency. Our prototype for C/Pthreads scales to real software including Apache, OpenLDAP, and two kinds of benchmarks, automatically avoiding both injected and naturally occurring deadlocks while imposing modest runtime overheads. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features—Concurrent programming
Component Compatibility and its Verification
"... An approach to verification of component compatibility is proposed in which each component’s behaviour (at its interfaces) is represented by a labeled Petri net in such a way that the sequences of services (provided or requested) correspond to sequences of labels assigned to occurring transitions. T ..."
Abstract
 Add to MetaCart
An approach to verification of component compatibility is proposed in which each component’s behaviour (at its interfaces) is represented by a labeled Petri net in such a way that the sequences of services (provided or requested) correspond to sequences of labels assigned to occurring transitions. The behaviour of a component can thus be defined as the language of its modeling net. Two interacting components are compatible if and only if all possible sequences of services requested by one of these two components can be satisfied by the other component; in other words, two components are compatible if the language of the requesting component is a subset of the language of the component providing the services. Verification of this simple relation depends upon the class of languages defining the behaviours of the components. If the languages are regular, the verification of compatibility is straightforward. For nonregular languages, a more elaborate approach is needed in which a net model composed of the interacting components is checked for the absence of deadlocks. Some applications of the proposed approach are also discussed. 1.
Incidence Matrix Based Methods for Computing Repetitive Vectors and Siphons of Petri Net *
"... In this paper, the relations among Tinvariants, repetitive vectors and siphons are investigated and new methods for computing repetitive vectors and siphons are suggested based on them. The transitionadded net of a net is defined and a relation is shown that there always exists a Tinvariant of th ..."
Abstract
 Add to MetaCart
In this paper, the relations among Tinvariants, repetitive vectors and siphons are investigated and new methods for computing repetitive vectors and siphons are suggested based on them. The transitionadded net of a net is defined and a relation is shown that there always exists a Tinvariant of the transitionadded net corresponding to a repetitive vector of the original net, and vice versa. Based on this relation, an algorithm that can compute a set of repetitive vectors of a net is presented. It is proved that any repetitive vector of a net can be expressed as a linear combination of these repetitive vectors with nonnegative rational coefficients. Next, this paper presents a new method for generating siphons based on repetitive vectors. The transitionsplit net of a net is defined. It can be proved that all siphons of a net are siphons of the associated transitionsplit net, and vice versa. Any siphon of the transitionsplit net is exactly the support of a repetitive vector of its dual net, and vice versa. Therefore, computing siphons can be converted into computing repetitive vectors. Finally this paper presents an algorithm that can generate a set of siphons of a net. These siphons contain all minimal siphons and any siphon of the net can be expressed as a union of them. These algorithms, which like FM algorithm computing Tinvariants, can be carried out through the linear transformation of the incidence matrix.