Performance of deadlock avoidance algorithms in flexible manufacturing systems

Performance of deadlock avoidance algorithms in flexible manufacturing systems

Journal of Manufacturing Systems Vol. 15/No. 3 1996 Performance of Deadlock Avoidance Algorithms in Flexible Manufacturing Systems Maria R Fanti, Bru...

1MB Sizes 0 Downloads 61 Views

Journal of Manufacturing Systems Vol. 15/No. 3 1996

Performance of Deadlock Avoidance Algorithms in Flexible Manufacturing Systems Maria R Fanti, Bruno Malone, Saverio Mascolo, and Biagio Turchiano, Polytechnic of Bad, Bari, Italy

Abstract

by limiting the freedom in the resource allocation. In particular, prevention techniques are based on static, off-line policies restricting the resource allocation, while avoidance methods use information on the current system state to inhibit some resource assignments to jobs. The deadlock problem in flexible manufacturing systems (FMSs) has been long ignored by most scheduling and control literature. Only recently, Wysk, Yang, and Joshi, s,6 Kumaran et al.,7 Banaszak and Krogh) and Viswanadham, Narahari, and Johnson9,1° established this problem as an important issue to be addressed for the efficient operation and control of FMSs. This is due to the increased routing flexibility of FMSs that allows the pieces to follow different paths in the system, with several resources in common. Unfortunately, the algorithms proposed by the computer scientists are not efficient for FMS applications. Indeed, these algorithms do not include the operation sequence information indicating the order in which resources are allocated and deallocated to the jobs) For this reason, a specific literature devoted to deadlock problems in the manufacturing context is emerging. In particular, detection/recovery techniques are not widespread in manufacturing applications. Nevertheless, the papers of Wysk, Yang, and J o s h i 6 and Leung and Sheen" represent remarkable contributions in this direction. The former presents a detection algorithm that utilizes graph-theoretic ideaslZ; the latter applies a recovery policy to a flexible manufacturing cell with a central buffer. Prevention and avoidance techniques have received the most attention in the past few years. For example, in a fundamental paper Viswanadham, Narahari, and Johnson 9 use Petri net (PN) models to describe the manufacturing system. Because the absorbing nodes in the reachability digraph of the PN represent deadlock situations, the detection of these vertices is the basis of the prevention technique. Indeed, the deadlock problem is resolved by

Deadlock is a highly unfavorable situation that can occur in flexible manufacturing systems. The occurrence of a deadlock can cripple parts of a production system and hinder flexible automation. It is necessary to develop control policies that avoid deadlocks by restricting the freedom in resource allocation; however, such policies can also negatively affect system performance indices. Feedback algorithms, which use information on the current operating condition of the system to avoid deadlock, can be distinguished based on the effects of the constraints they impose on the freedom in resource allocation. Referring to this characterization of the algorithms, this paper compares performances of some deadlock avoidance policies. First, theoretical analysis is carried out by introducing a criterion for ordering different policies by flexibility in resource allocation. Second, avoidance policies are applied to some case studies, which are simulated in details. The simulation analysis confirms the theoretical results showing that the algorithms allowing larger flexibility in resource allocation lead to better performance indices.

Keywords: Deadlocking, FMS Control, Avoidance, FMS Performance, Simulation

Deadlock

Introduction In automated production systems involving a high degree of resource sharing, the jobs (parts, pieces) competing for a finite number of resources can lead to deadlock situations. Deadlocks are highly unfavorable events in which the parts in a set request the resources held by other parts in the same set. These events are difficult to predict and can propagate to the entire system, eventually blocking the production indefinitely. The deadlock problem has been extensively studied by computer scientists,TM who classified it into three categories of approaches for dealing with such a phenomenon: deadlock detection/recovery, deadlock prevention, and deadlock avoidance. As the name indicates, detection/recovery does not prevent deadlock from occurring. This approach detects the deadlock occurrence and removes it by an appropriate recovery strategy. On the contrary, both prevention and avoidance prevent deadlock from occurring

164

Journal of Manufacturing Systems Vol. 15/No. 3 1996

an algorithm that prevents the transitions from firing if they lead to absorbing nodes. However, as the authors themselves point out, an exhaustive analysis of the paths of the reachability digraph is prohibitive due to the high number of states. More recently, Hsieh and Chang 13 introduce a Petri net method of polynomial time complexity for synthesizing a deadlock avoidance controller. However, Hsieh and Chang claim that performance evaluation and investigations on the potential of their method for real implementation are topics for further research. Alternatively, Li and WonhaIn14 describe the manufacturing system as a discrete event system and synthesize a suitable supervisor that prevents the occurrence of particular events leading to deadlock situations. The drawback of this approach is the same as the technique proposed by Viswanadham, Narahari, and Johnson. 9 Namely, it requires the exhaustive analysis of the transition digraph of the automaton describing the manufacturing system. The deadlock avoidance approaches proposed by Banaszak and Kroghs and Fanti et al. lsa6 reduce the computational effort and can be implemented in real time. Both the methods use feedback information for inhibiting some enabled transitions from the options in the resource allocation. In principle, the above algorithms are the most effective even if the fundamental question of the reduction in flexibility due to restrictions on the resource allocations is still open. In other words, to guarantee that deadlock cannot occur, the avoidance policies can excessively restrict the use of resources, penalizing the system performance measures. In addition, it is not well understood how this factor affects performance and how different algorithms compare with each other. Moreover, the performance evaluation of the existing deadlock avoidance algorithms has not received sufficient attention. This paper compares the deadlock avoidance algorithms given by Banaszak and Krogh and by Fanti et al. The analysis is carried out from two different points of view. The first is merely theoretical and aims at evaluating how heavy are the restrictions each policy imposes on the resource allocation. More precisely, the considered policies are ranked by comparing the sets of events that involve resource assignments to jobs and that are inhibited by each policy. The second point of view of the analysis investigates how heavy is the penalty each policy imposes on the system performance indices. This

subject is approached by simulation studies involving some significant production systems presented in the literature concerning deadlock in FMSs.

Revisiting Some Deadlock Avoidance Policies This section considers only the essential features of the deadlock avoidance policies introduced by Banaszak and Krogh and by Fanti et al. For more details, interested readers should consult the original papers. All these authors define rules that suitably restrict resource allocation decisions to avoid deadlock occurrences. Thus, such rules are named restriction policies and act as feedback control algorithms, using information on the current operating condition of the system. In particular, Banaszak and Krogh derive their restriction policy using a Petri net model of the FMS called production Petri net (PPN). Following the main ideas introduced by Wysk, Yang, and Joshi, s Fanti et al. describe the production system and state their restriction policies exploiting a digraph-based characterization of the interactions between jobs and resources.

Policy Introduced by Banaszak and Krogh To build up the PPN, Banaszak and Krogh associate a place-transition sequence with each product type. This sequence describes the order in which each job requests resources (buffer slots, workstations, carts, and so on). Places represent individual steps in the sequence of operations necessary to produce a particular piece (production sequence) where each step requires a resource. Transitions indicate resources that release or acquire jobs. Using the same notations as Banaszak and Krogh, Q represents the set of job types to be produced. So, if processing a q-type product (q ~ Q) requires Lq steps, the place sequence is defined as:

pq = {pq(0), pq(1), ..., pq(j)..., E p,(Lq), pq(Lq + 1) }

(1)

and the transition sequence as:

tq : {tq(0), t,(1), ..., tq(j) .... tq(Lq), tq(Lq + 1)}

(2)

For a given marking, tokens in pq(0) represent qtype jobs waiting for processing; tokens inpq(Lq + 1) indicate completed orders; and tokens in pq(j), j E { 1, 2, ..., Lq} give the currently processed jobs in

165

Journal of Manufacturing Systems Vol. 15/No. 3 1996

the j-th step. Moreover transition tq(O) denotes the arrival of an order to execute a job for product q; firing tq(Lq + 1) indicates the completion of a q-type job; and firing tq(j), j E { 1, 2, ..., Lq}, denotes that a q-type job makes a transition from the production step represented by the pq(j-1)-th place to the next step. Hence, such a transition corresponds to a resource releasing or acquiring a job. In addition, Banaszak and Krogh 8 introduce two more places for each resource type in the system. More precisely, they describe the usage of a resource type (say rl) by places at and bl. For example, Figure I shows places and transitions corresponding to two production sequences (Q { 1,2}). Both transitions h(j) and h(k) require that at least one ri-type resource be idle. The same resource is released on the firing of transitions h(j+l) and tz(k+l). This means that both the operation steps associated with p~(j) and pz(k) require r~. Tokens in a~ show the number of retype resources that are currently available; tokens in b~give the number of r~-type resources that are currently occupied. Obviously the sum of tokens in ai and b~remains constant and equal to the capacity of r~. With this background, Banaszak and Krogh detect the deadlock conditions and describe their deadlock avoidance algorithm (DAA). This algorithm consists of a restriction policy (henceforth in this paper named RPBK) that allows only some of the enabled transitions to fire, so that the system cannot reach any marking corresponding to a deadlock. Applying a restriction policy (RP), however, could lead to a new situation, called a restricted deadlock (RD), in which an indefinite circular wait occurs partly because some transitions are not enabled and partly because some enabled transitions cannot fire owing to the RP. In this case, the RP itself helps to determine a circular wait, with the same consequence as a deadlock. By using the PPN, Banaszak and Krogh show that their DAA prevents the system from reaching a deadlock or an RD and, hence, it is a deadlock-free RP. To apply this DAA, it is necessary to partition the system resources into two classes: the first collects all the unshared resources, that is, all the resources required once in only one production sequence; and the second groups the remaining resources (that is, the shared resources). In this way, for each job type q ~ Q, it is possible to split up the place sequence (1) into subsequences called zones:

t,(O)

t=(O)

p,(O)

p2(O)

t1(1)

t,O)

Q tl(I)

t=(k)

PI(I)

p2(k)

r

t,(I +

1)

t=(k +

'+1)

)

1)

=

l

$

t=(L=+ 1)~ p=(L2 + 1

Figure 1 Example of Places and Transitions in a PPN

pq = pq(O) zlq ZZq ... Zkq ... pq(Lq + 1)

(3)

For its part, each zone consists of two subzones: 7~kq = Skq

//k q

(4)

where Skq represents a subsequence of production steps requiring shared resources and Ukq indicates a subsequence of production steps requiring unshared resources. The DAA of Banaszak and Krogh allows an enabled transition t to fire only if the following conditions hold true: DAA1) if, by firing t, a job enters a new zone zkq in its production sequence, then the capacity of the unshared subzone Ukq must exceed the number of jobs currently in the zone zkq; DAA2) if, by firing t, a job requests a shared resource, then all the resources in the remainder of the zone must be available except the one held by the job, at the most. This DAA establishes a simple feedback control law. However, it sometimes appears too conservative

166

Journal of Manufacturing Systems Vol. 15/No. 3 1996

hence, to analyze the deadlock problem. To describe the resource allocation mechanism, Fanti et al. introduce the transition digraph Dx(q) = [q'lx,gx(q)], which is a subgraph of Dw defined for each system state q. More precisely, it holds: ~ = q/x = ~/and gr(q) C Ew, where eim E Er(q) if and only if in the state q a job j ~ flq holds ri and requires rm as the next resource. In particular, e~m is called a feasible transition in the state q, if there is no job j ~ Jq holding rm, that is, ifrm is an idle resource. Finally, HR(j) denotes the resource actually held by j E flq and SR(j) identifies the second resource of the residual working procedure pertaining to the job j. In this way, state after state, the transition digraph represents the process dynamics as the jobs progress through the production system. Fanti et al. show that q is a deadlock state if and only ifDx(q) contains at least one cycle. Hence, preventing the occurrence of cycles in Dr(q) is the main idea on which the authors build their deadlock avoidance policies. Such policies express feedback control laws, which utilize the current state q, to inhibit or to enable 1-type or 2-type events. To express these policies, it is necessary both to identify the events and to specify the restrictions on the resource allocation. The authors describe a 1-type event by a pair (j,w), where j and w respectively indicate the job entering the system and the working procedure it has to follow. Moreover, they specify a 2-type event by a feasible transition ejm ~ gr(q). With these notations, a restriction policy is defined as a pair of functions:

because it allows a limited number of jobs in process, resulting in poor system performance. In particular, this holds true when the number of unshared resources is small.

Policies Introduced by Fanti et al. The fundamental ideas first introduced by Wysk, Yang, and Joshi s are in the background of the papers of Fanti et al. 's'~6 To elaborate, the graph-theoretic approach by Fanti et al. assumes that each job is allowed to take one resource at a time, in exclusive mode. In this way, the processing of each job type can be described by the so-called worla'ng procedure, that is, by the resource sequence the job requires. All the admissible working procedures make up the set W. By convention, as a job leaves the system, it accedes to a fictitious resource that is the terminal element of each working procedure. Under these assumptions, Fanti et al. suppose that the production system is modeled as a discrete event dynamical system (DEDS) 17'18such that: 1. The DEDS current state (q) describes: the set flq of the jobs in process, the resources currently held by each job j E Jq, the working procedure associated with such a job, and the residual working procedure, that is, the sequence of resources necessary for each j ~ flq to complete its processing. The total state set is denoted by Q. 2. The DEDS model takes into account all the events consisting of jobs j ~ flq acquiring or releasing resources. Hence, typical events occur when a new job enters the system (1-type event) or when a job progresses from one resource to another one (2-type event). The digraphs introduced by Fanti et al. are consistent with a DEDS description of this kind. The first one is the working procedure digraph Dw = ( ~ , g w ) , which describes the set of resources necessary to process the whole production mix and the sequence in which jobs request the resources pertaining to each working procedure. More precisely, each node r~ E q ' ~ corresponds to a resource, and an edge e~mE Ewjoining r~to rm means that there exists a working procedure w E W in which rm immediately follows r~. Of course, Dw is not able to depict the concurrent flow of multiple jobs in a production system and,

fi

:

{0,1}

fz

:

ms ~ {0,1}

where X,={(q,w) ~Q×

W

: the first resource of w is idle in q}

m2= {(q,elm) E Q X ~,, : e~mis afeasible transition in state q} and f~(q,w) = 0 (f~(q,w) = 1) means that, if the system is in state q, every 1-type event associated with w is inhibited (enabled). Analogously, fz(q,eim) = 0 (fz(q,eim) = 1) indicates that, for the system in state q, the 2-type event associated with the feasible transition e~mis inhibited (enabled).

167

Journal of Manufacturing Systems Vol. 15/No.3 1996

Restriction Policy 3

The main idea behind the first two restriction policies is that the number of the jobs in process must have a bound depending on the cycle capacity C(%) = Card ~/~ = Card ~n, where the symbol Card X represents "the cardinality of the set X" and where ~/~ = (9g~,,$n) is a generic cycle from Dw. More precisely, in Restriction Policy (RP1) this bound is defined with the minimum capacity Co of cycles from Dw (Co = oo if Dw is acyclic). Hence, a job is prevented from entering the system if this bound is violated.

if Card Jq<(Co-1)

fi(q,w) = 0

otherwise

and f2(q,eim) : 1

for any (q,ei~) E X2

To introduce the second restriction policy, two sets, Fw and Jq(%), are defined. The former denotes the set of cycles in Dw having at least one edge pertaining to the working procedure w. For any % of Dw and q E Q, the latter identifies a subset of Jq, collecting all the jobs in process under working procedures that involve edges of %. Hence, Restriction Policy 2 (RP2) is as follows.

Restriction Policy 2 fm(q,w) = 1

if, for any 'Yn ~ I'w, it holds: Card Jq(',/,) < C(~/n)--I

fi(q,w) = 0

otherwise

and f2(q,eim) = 1

if Dr(q,w) does not contain any cycle

fl(q,w) = 0

otherwise

f2(q,eim) = 1

if Dx(q,ei,) does not contain any cycle

f2(q,eim) = 0

otherwise

Because RP3 prevents only the occurrence of events leading immediately to a deadlock, it is the less restrictive policy that one can find. On the other hand, because it keeps both (j,w)- and ei=-events from occurring, RP3 may lead to an RD. The definition of restriction policies also avoiding these situations requires more complex information on the system state, embedded in the idea of second-level digraph D2w = (~2,~zw) defined as follows. Each vertex n~. E 9g 2 is associated with a cycle (~/.) of Dw (first-level cycle). Moreover, the edge e~vs = (n2v,n2s) belongs to Ezw if and only if the cycles 7v -(9gv,,~v) and "h = (9gs,E,) of Dw have only one vertex in common (say rm) and if and only if there exists a working procedure w E Wrequiring resources ri, rm, and r o in strict order of succession, where eim ~ Ev and e=p ~ ~s. Cycles from D 2w are named secondlevel cycles and correspond to sets of first-level cycles. Proceeding in this fashion, Fanti et a l ) s'16 introduce further notions useful in establishing restriction policies. In particular, the symbol F z denotes the second-level cycle subset defined as follows: each element from F 2 corresponds to a set of first-level cycles that are disjoint but for a vertex common with all the cycles in the set. Moreover, the capacity C(~fl.) of a second-level cycle ~/2, _(ggZn,E2.) denotes the number of distinct resources in the first-level cycles corresponding to nodes from 9g2.. Finally, CZ0 indicates the minimum capacity of all cycles from F 2 (CZ0 -- oo if F ~ is empty). With the above notions as background, Fanti et al. derive Restriction Policy 4 (RP4) for deadlock avoidance.

Restriction Policy 1 fi(q,w) = 1

f~(q,w) = 1

for any (q,eim) E X2

The third restriction policy inhibits the occurrence of both 1-type and 2-type events. More precisely, let the system be in state q and let w be a working procedure such that (q,w) E Xm. If the (j,w)-event occurs, then the system makes transition to a new state and a new transition digraph results, say Dr(q,w). Analogously, if (q,e~) E X~, then Dx(q,e~m) denotes the transition digraph corresponding to the state the system reaches at the e~m-event occurrence. With these notations, Restriction Policy 3 (RP3) is expressed as follows.

Restriction Policy 4

168

f~(q,w) = 1

if DT(q,w) does not contain any cycle and Card flq < (C2o-2)

fi(q,w) = 0

otherwise

Journal of Manufacturing Systems Vol. 15/No. 3 1996

f2(q,eim) = 1

if DT(q,eim) does not contain any cycle

f2(q,eim) = 0

otherwise

the poorer are the system flexibility and the performance indices. To address this issue, it must be established how to compare different policies, First, let qa be the DEDS state for which 9q0 is empty (there are no jobs in the system). Then it is said that a state q ~ .,q is reachable (from q0) if and only if there exists an event sequence leading the system from q0 to q. At this point, for any pair of restriction policies, RPA = (fmA,f2A)and RPB = (f~B,f~a), it is said that RPA is more restrictive than RPB if, for any system to which such policies are applied, the following conditions hold true:

The last policy (RP5) is analogous to RP2. Indeed, it involves two sets F~w and 9q(~/Zn) playing the same role as Fw and 9q(~/.) in the definition of Restriction Policy 2. In particular for any w E W, the second-level cycle subset F2w collects all the elements from F 2 corresponding to sets of first-level cycles, where each set has at least one edge pertaining to w. Moreover, for any second-level cycle ~/~. and state q E Q, the subset ,¢q(',/z.) collects all the jobs from flq following working procedures that involve some edges of the first-level cycles associated with -,/~..

(a)

(b)

Restriction Policy 5: f,(q,w) = l

if DT(q,w) does not contain any cycle and it holds: Card ,¢q(~/2 ) < [C(,y2n)__2]for every ~2 ~ FZw

f,(q,w) = 0

otherwise

f2(q,eim) = 1

if Da'(q,eim) does not contain any cycle

f~(q,eim) = 0

otherwise

for each (q,w) E X~ such that q is reachable under RPA and fla(q,w) = 0, it holds f~A(q,w) = 0 for each (q,eim) E Xz such that q is reachable under RPA and f2n(q,eim) = 0, it holds fzA(q,eim)= 0

The previous conditions (a) and (b) state that no event inhibited by RPB can occur under RPA. With this preparation, the following is demonstrated:

Proposition 1 P1) RPl is more restrictive than RP2; P2) RP1 is more restrictive than RP4; P3) RP4 is more restrictive than RPS; P4) each deadlock-free restriction policy is

As shown by the authors, Restriction Policies 1, 2, 4, and 5 are deadlock-free, while Restriction Policy 3 can lead to an RD. However, if F 2 is empty, this policy is deadlock-free and coincides with Restriction Policies 4 and 5. It is noted that for the wide class of FMSs in which each machine is provided with an input buffer or an output buffer, the set F 2 is empty. This holds true independently of the particular job mix to produceJ 6

more restrictive than RP3.

Proof P1) is true. Let (q,w) ~ XI and fm(q,w) = 0 under RP2. This implies that there exists a cycle % E FI satisfying: Card A ( ' y n ) ~ C(~/.)-I

(5)

Because, by the definitions Of Jq(%) and Co, it holds Card Jq -> Card flq(~.)

Flexibility of the Restriction Policies As Banaszak and Krogh 8 point out, it is not easy to quantify the flexibility in resource allocation still allowed by the deadlock avoidance algorithms. The main obstacle is in defining a metric appropriate for any application. However, as partial comparison among different restriction policies, one might consider the set of events inhibited by each policy. Indeed, it should be obvious that the greater the number of events inhibited by a restriction policy,

and C(~/.) -> Co condition (5) yields: Cardgq -> C0-1

(6)

Obviously, (6) implies f~(q,w) = 0 also under RP1. Thus, because for any (q,eim) E Xz it holds fz(q,eim) = 1 under RP2, the statement is proved.

169

Journal of Manufacturing Systems

Vol. 15/No. 3 1996

P2) is true.

still valid for (q,eim) ~ ~'2. It follows that RP* is more restrictive than RP3, completing the proof.

Let (q,w) E fl;~ and fl(q,w) = 0 under RP4. There are only two possibilities, either Card flq ~

(CZo-2)

Because RP1, RP2, RP4, RP5, and RPBK are deadlock-free, according to Proposition 1, they all are more restrictive than RP3. Figure 2 shows the relations among the restriction policies. In particular, an edge joining RPi to RPj, with i,j E { 1, ..., 5, BK}, means that RPi is more restrictive than RPj. On the other hand, if no edge connects two restriction policies (for example, see RP2 and RP4 in Figure 2), this means that it is impossible to compare them and that the restriction on flexibility may depend on the specific production system to which they are applied.

(7)

or DT(q,w) contains a cycle. In the first case, because CZo > Co, (7) implies (6) again. In the second case, if DT(q,w) contains a cycle, condition (6) still holds true. Hence, in both cases RP1 leads to fl(q,w) = 0. Moreover, if for (q,eim) E ~2 RP4 entails fz(q,elm) = 0, then DT(q,eim) does contain a cycle, and it holds: Card ,qq -> Co

(8)

Taking into account the definition of f~ for RP 1, it is concluded that state q is not reachable under RP1, completing the proof.

Case Studies Here some case studies are simulated to compare the restriction policies introduced in the previous section. The aim is to exhibit the restrictions that such policies impose on the resource utilization. Obviously, it is very difficult to define systems and working conditions that can be regarded as benchmarks. Namely, there are many different layouts and working conditions that are eligible for this purpose. Hence, only two case studies are examined from the literature dealing with the deadlock problems. The first case study considers a four-machine system proposed by Wysk, Yang, and Joshi. s Although it is quite simple, this example is interesting because the set l'2 is not empty, so that RP3, RP4, and RP5 do not coincide. This case study simulates different loading policies (for balanced/unbalanced loading conditions

P3) is true. If for (q,w) E X1 RP5 gives f~(q,w) = 0, then either DT(q,w) contains a cycle or there exists a second-level cycle ~/2 E F2w such that: Card Jq(~/2n) :>

[C(~/2n)-2]

(9)

In the first case, fl(q,w) = 0 under RP4 also. In the second case, the definitions of fq(~/z ) and C2o lead to:

Card fq -> Card fq(',ff.)

(10)

and C('~/2n) ~

C2o

(11)

Therefore, comparing (10) and (11) with (9) yields: Card Jq ~ C20-2

(12)

Relation (12) implies fl(q,w) = 0 under RP4. As for 2-type events, f2 is defined in the same way under both RP5 and RP4. This completes the proof.

P4) is true. Let a pair (q,w) E X1 and fl(q,w) = 0 under RP3. This means that if q is the system state, then the (j,w)-event occurrence leads to a deadlock. Moreover let RP* be a generic deadlock-free restriction policy. Because RP* allows no deadlock occurrence, there are only two possibilities: (a) q is not reachable under RP* or (b) q is reachable under RP* but it holds f~(q,w) = 0. The same considerations are

Figure 2 Relationships Among Restriction Policies

170

Journal of Manufacturing Systems Vol. 15/No. 3 1996

Because each job type has no alternative routes to follow, the routing is fixed. In this study, the transportation system is neglected. This assumption is justified if the transport system is considered as a "dependent resource," that is, the destination resource is considered as engaged just as from the transport operation starting. Additionally, the transportation times are neglected in the simulation. At this point, there are all the elements necessary to specify the Restriction Policies RP1, RP2, RP3, RP4, RP5, and RPBK. According to Figure 3, Dw contains five cycles:

and with deterministic/stochastic service times) and different (periodic/random)job-sequencing rules. The second case study deals with the General Electric FMS at Erie, Pennsylvania, described by Viswanadham, Narahari, and Johnson9 and utilizes the real data of the production system. To compare the restriction policies described in the second section, a SIMAN 19 simulation model is developed for each case study, and the system throughput is assumed as the performance index. It should be remembered, however, that according to the previous definitions, a restriction policy is not a complete resource allocation policy because it only prevents some events from occurring. Thus, to be meaningful, the comparison requires to be applied to all the restriction policies under the same pre-fixed scheduling policy in each case study. Namely, the specific scheduling policy strongly affects the performance indices of the system by ruling job-dispatch timing, sequencing, routing selection, and priority setting. Dispatch timing chooses the instants in which jobs enter the system. Sequencing defines the loading order for pieces. Routing establishes the pattern each job has to follow in the system, whenever alternative paths are allowed. Finally, priority rules set priorities among jobs concurrently requiring a resource. In all the cases presented in this paper, the law "first-in first-out" rules the priority setting. Moreover, the timing algorithm can be described as follows. Once the sequencing procedure has established the next job to load, this enters the system as soon as the first resource of its working procedure is free. The remaining two laws (sequencing and routing) are specified in the following for each case study. Finally, it is specified that when the scheduling policy commands a resource allocation/deallocation, the restriction policy may enable or inhibit such an occurrence. In the former case, the event occurs immediately; in the latter it is prevented until a change in the system state modifies the decision on the restriction policy.

V3 %

=

{(r,,r2),(e,2,e2,)}

=

{(r2,r4,ra),(e24,e43,e32)}

= =

{(r4,r3,rz,r,),(e4a,e,2,e2,,el4)}

=

{(r,,h,r4,r3),(e,2,e24,e43,e30}.

Because the cycle capacities are C(~/I) = 2, C(~/2) = C(%) = 3, C(3'4) = C(%) = 4, it holds: Co = 2. Figure 4 shows the second-level digraph D2w possessing one cycle only, that is, 3,2~ = ({n21, n22),(e212,e220} with C(~/20 = C20 -- 4. Moreover, because ~1 and "/2 have only one vertex in common, it is concluded that ~/2 is in F 2. The characteristics of the above digraphs allow exact definition of the bounds imposed by each restriction policy. More explicitly, due to the value of Co, RP1 does not allow the system to contain

W3

rl

r=

Wa

rs

Four-Machine System

WlW2

Wysk, Yang, and Joshi s consider a four-machine system without buffers. There are three job types to produce according to the working procedures wl = (rl,r2,r4,rs), w2 = (r3,rbr4,rs), and w3 = (r4,ra,r2,rl,rs), where rs is the fictitious resource. Figure 3 shows the corresponding working procedure digraph.

Figure 3 Four-Machine System: Working Procedure Digraph

171

Journal of Manufacturing Systems Vol. 15/No. 3 1996

~21

F2Wl = F2W3 = {~21} , ]-'2W 2 =

['122

RP5 does not allow more than two jobs in the system following the working procedures w~ or Wa: Card 9q(~/20 = Card 9q(Wm)+ Card ,¢q(Wa) -< 2 On the other hand, only the constraint that Dr(q,w) must contain no cycle and the available resources in w2 set a bound to the number of the jobs in progress according to wz. Finally, to apply RPBK it is necessary to split resources into shared and unshared ones. In the proposed case, the set of unshared resources is empty so that each place sequence constitutes a unique shared zone, as follows:

['123

n25

O

O r.124.

0 Figure 4 Four-Machine System: Second-Level Digraph

pq more than one job at a time. In this case, using the workloads trivially leads to the throughput. As for RP2, by definition of the function fl, the reachable states must satisfy the following conditions: Card 9q('~l) ~ 1, Card Jq('~2) ~ 2, Card 9q(~/3) --< 2, Card Jq(~/4) -< 3, and Card Jq(~/s) <- 3. Moreover, the working procedures Wl, w2, and w3 involve edges pertaining to ~/1, ~/2, ~/s, to ~/3, ~/4, ~s, and to ~/1, ~2, ~/3, ~/4, ~/s, respectively, that is:

pq(O) Z~qpq(Lq + 1)

q = 1, 2, 3

with

Zlq -~ SIq Because the capacity of all the resources is equal to 1, the RPBK allows a job to acquire a resource if and only if each resource pertaining to its residual working procedure is at its disposal (see DAA2). The system is simulated in three different working conditions. The first one assumes a production mix of 50 items for each job type and deterministic processing times. Table I reports their values in five relevant cases. In Case 1, the processing times balance the workloads of the four machines. In the remaining four cases (indicated as Cases 2, 3, 4, and 5), the workloads are not balanced because, by turns, machines rt, r2, r3, and r4 show a 20% higher workload than the first case. The sequencing law (named SEQ1) loads the jobs in the system according to the periodic ordering: 1, 2, 3, 1, 2, 3, and so on. Figure 5 shows the corresponding simulation results. The second working condition considers the deterministic service times of Table 1 again. On the other hand, the sequencing law (named SEQ2) loads the jobs according to a sequence randomly generated, with equal probability for each type. Each simulation uses the method of batch means 2° to compute the 95% confidence intervals for throughputs. In particular, after a transient period corresponding to the completion of 500 jobs, 80,000 completed parts, divided into 40 batches with a size of 2000 parts, are simulated. Figure 6 shows the throughputs, and Table 2 gives the corresponding confidence intervals.

Fwl = {~h, "/2, ~/s}

Fw2 = {"~3, "~4, '~5} ]-'W3 = {"/1, ~/2, "~3, '~/4,

=

'~5}

Hence, denoting by Jq(Wk) the number of in-process jobs produced according to Wk (k = 1,2,3), it turns out that RP2 results in the following constraints: Card 9q(Wl) ÷ Card Jq(W3) ~ 1 Card ,¢q(W2) + Card ffq(Wa) -< 2 Card ,¢q(W0 + Card ffq(W2) + Card Jq(W3) -< 3 Proceeding in this way, it is observed that because the set F 2 is not empty, RP3 is not deadlock-free. However, F 2 becomes empty if one slightly modifies the system layout by placing a buffer upstream or downstream from resource r2 (common to ~/~ and ~/2). In this case study, RP3 is only applied in the presence of this layout modification. Function f~ in RP4 gives the following constraint: Card ffq(w0 + Card ,¢q(W2) + Card 9q(W3) --< 2 Moreover, because it holds

172

Journal of Manufacturing Systems Vol. 15/No. 3 1996

with the same batches used to analyze the second working condition. Figure 7 and Table 3 give the throughputs and the corresponding 95% confidence intervals, respectively. The values of the confidence intervals reported in Tables 2 and 3 confirm that the throughput values shown by Figures 6 and 7 are meaningful to compare the restriction policies. Moreover, in this case study all the simulation results show that the more restrictive restriction policies become, the lower are the throughputs (see Figures 5-7). Namely, RP3 is the best policy in any case, provided that the system layout is modified as indicated before. Using RP5 or RP4 makes the system behavior slightly worse. Moreover, applying RP2 or RPBK makes the performance even worse. Obviously, RP 1 is the worst policy because it allows no more than one job in process.

The third working condition assumes the periodic sequencing law SEQ1, while the service times are generated randomly by a uniform distribution on the interval [10,100]. The simulations are performed Tab/e 1 Four-Machine System: Processing Times

Balanced wj 50 w2 82 w3 68

Workloads (Case 1) (q) 78 (r2) (r3) 82 (tO (r4) 116 (r3)

60 (r4) 70(r4) 120 (r2)

66 (q)

Unbalanced Workloads (Case 2) w, 59.6 (r 0 78 (r2) wz 82 (r3) 92 (rt) w3 68 (r4) 116 (r3)

60 (r4) 70 (r4) t20 (r2)

86 (h)

Unbalanced Workloads (Case 3) w, 50 (q) 98 (rz) w2 82 (r3) 82 (q) w~ 68 (r4) 116 (r3)

60 (r,) 70 (r4) 139.6 (r2)

66 (q)

General Electric FMS at Erie Unbalanced Workloads (Case 4) w~ 50 (rl) 78 (r2) w2 102 (r3) 82 (q) w3 68 (r4) 135.6 (r3)

60 (r4) 70 (r4) 120 (r2)

Considered now is the General Electric FMS at Erie, Pennsylvania, described by Viswanadham, Narahari, and Johnson9 and designed to manufacture two types of locomotive parts, called type 509 and type 640. The mix to produce includes 50 items of type 509 and 50 items of type 640. Moreover, the system consists of seven workstations Si (i = 1,2,...,7) grouping 12 machines linked by an automated transporter that

66 (ra)

Unbalanced Workloads (Case 5)

w,

50 (r,)

78 (r,)

70 (r,)

w2 w3

82 (r3) 88 (r4)

82 (ri) 116 (r3)

79.6 (r4) 120 (r2)

66 (q)

0.014

0.012

[]

RP1

[]

RP2



RP4

[]

RP5



RP3

[]

RPBK

0.01

"5

g

0.008

0.006

0.004

0.002

Case 1

Case 2

Case 3

Case 4

Figure 5 Four-Machine System, First Working Condition: Throughput Values (jobs per time unit)

173

Case 5

Journal of Manufacturing Systems

Vol. 15/No.3 1996

RP1

#-

Case 1

Case 2

Case 3

Case 4

[]

RP2

F"J

RP4

[]

RP5



RP3

!~

RPBK

Case 5

Figure 6 Four-Machine System, Second Working Condition: Throughput Values (jobs per time unit)

carries one part at a time from one workstation to another one. Each workstation has one, or alternatively two, machines and is equipped with a two-slot input buffer and a one-slot output buffer. In particular, the workstation St includes machines M~ andM3 (vertical milling machines), $2 contains M4 and Ms (large horizontal milling machine and small horizontal milling machine, respectively), $3 groups M9 and M10 (large horizontal milling machines), $4 only

(load/unload machine), Ss contains M13 and M17 (fixturing machines), $6 comprises M=4 and Mis (medium horizontal milling machines), and finally, $7 contains M7 (medium horizontal milling machine). Figure 8 shows a two-machine workstation with the input and output buffers. As in the previous case study, the transportation system is ignored. Table 4 shows the operation sequence for each job type, with the corresponding machines and i n c l u d e s M12

Table 2 Four-Machine System, Second Working Condition: 95% Confidence Intervals for Throughputs (jobs per time unit)

RP1 Case Case Case Case Case

1 2 3 4 5

.003766,.003781 .003590,.003605 .003590,.003604 .003589,.003605 .003590,.003605 RP4

Case 1 Case 2 Case 3 Case 4 Case 5

RP2

RP3

.005054,.005098 .004833,.004876 .004741,.004782 .004809,.004853 .004857,.004899

.010020,.010060 .009416,.009452 .009513,.009535 .009411,.009458 .009416,.009452

RP5 .007733,.007771 .007282,.007317 .007281,.007318 .007335,.007371 .007391,.007424

.006609,.006636 .006238,.006262 .006277,.006302 .006317,.006342 .006276,.006302

174

RPBK .004770,.004800 .004511,.004539 .004636,.004667 .004572,.004603 .004511,.004539

Journal of Manu/acturing Systems

Vol. 15/No.3 1996

Table 3 Four-Machine System, Third Working Condition: 95% Confidence Intervals for Throughpnts (jobs per time unit)

0.016' 0.014 0.012

[ ] RP1 [ ] RP2

0.01 D

==

[ ] RP4 0.008

RPS

RP1

RP2

RP3

.005444, .005474

.007562,.007598

.014506,.014564

RP4

RP5

RPBK

.008685, .008714

.011391,.011440

.007283,.007315

I--

0.006 0.004



RP3

~iiiiiiiiii~ii#ili~iii:iiii~iiiiiiiiiiiii!iiiiiii~ [ ] RPBK

0.002 0

D

OB

IB

Figure 7 Four-Machine System, Third Working Condition: Throughput Values (jobs per time unit)

Figure 8 General Electric FMS Two-Machine Workstation

processing times. As pointed out by Viswanadham, Narahari, and Johnson, this system can exhibit typical deadlock situations. Now the scheduling policies are specified. To simplify the simulation analysis, only four workstation sequences (WS for brevity) are considered as follows:

1,2,3,4) do not identify the routing completely. For example, if a 509-type job reaches workstation Ss, it first occupies the first slot of the input buffer, then the second slot, machine M~3 or, alternatively, machine Mis, and in the end the output buffer. If both machines are free, the job occupies either of them (for example, the one with the last subscript attached). On the contrary, if a machine is already occupied, then the job reaches to the remaining machine of the pair, which is free. By assumption, the same mechanism holds true for S~, $3, and $6. The sequencing law loads pieces according to the cyclic order of the workstation sequences: WS1, WS3, WS2, WS4, WS 1, WS3, WS2, WS4 .... Figure 9 shows a digraph representing the job transitions between pairs of workstations. For simplicity, the same edge with two arrows pointing in opposite directions indicates that two workstations follow each other in both senses. Strictly speaking, however, the digraph of Figure 9 does not represent the working procedure digraph. Namely, to obtain this digraph, a group of four vertices connected in series must replace $4 and $7, and a group of five vertices connected as shown by Figure 10 must replace each of vertices S~, $2, Sa, Ss, and $6. This happens because each workstation includes four (or five) single resources (slots in the buffers or machines). In Figure 10, IB~ and IB2 represent the

WS1 (for part type 509): $4, $5, 53, Sl, $3, $6, 55, $4, $3, $2 (Ms), S6, $4, $5, S6, $3, $5, $4;

WS2 (for part type 509): $4, Ss, $2 (M4), Sl, $2 (M4), $7, Ss, $4, $2 (M4), $2 (Ms), $7, S4, $5, $6, $2 (M4), Ss, 54; WS3 (for part type 640): $4, Ss, $1, $3, Si, Sa, $6, 55, 54, $3, $2 (Ms), $6, $4, Ss, $7, $3, $5, $4; WS4 (for part type 640): $4, $5, SI, S 2 (M4) , SI, S 2 (M4) , 57, 55, 54, 82 (M4) , S 2 (Ms), $7, S4, S5, S7, S3, S5, 54;

Note that, if the workstation $2 appears in a sequence, it is necessary to specify which of the two machines, M4 or Ms, is in charge of processing the pieces. Namely, M4 and Ms are machines of different types. For this reason, $2 is followed by round brackets enclosing the symbol of the machine performing the required operation. This specification is not necessary for workstations S~, $3, Ss, and $6 because they group pairs of identical machines that can be used indifferently. Hence, sequences WSi (i =

175

Journal of Manufacturing Systems Vol. 15/No. 3 1996

Table 4 General Electric FMS Operation Sequences and Processing Times PanType 509 Operation Steps Machine ProcessingTimes

1 M~2 20

2 M)3 or M . 30

3 M,,, or Ms or Mlo 112

4 Mi or M3 168

5 M4 or M9 or M~0 22

6 MTOr M]4 or M~5 36

7 MI3 or Mr7 20

8 Mi 20

9 M4 or M9 or Mr0 78

10 M5 93

11 M7 or MI4 or Mi5 42

12 M12 20

13 MI3 or Mi7 15

14 Mi4 or M~5 69

15 M4or M9or M10 13

16 MI3 or Mr7 15

17 M12 20

Part Type 640 Operation Steps Machine ProcessingTimes

1 M]2 2O

2 MI3 or Mi7 3O

3 Mt or M3 101

4 M4 or M9 or Ml0 70

5 M~ or M3 59

6 M4 or M9 or M~0 17

7 M7 or MI4 or Mr5 26

8 Mr3 or Mr7 20

9 Mr2 20

10 M4 or M9 or Mi0 64

11 M5 101

12 M7 or M~4 or M~5 52

13 MI2 2O

14 Ml3 or Mi7 15

15 M7 56

16 M9 or M~0 16

17 MI3 or Mr7 15

18 Ml2 2O

resource of the group of vertices, representing the output buffer of the workstation. These considerations enable verification that the cycle from Dw (say ~/0) with minimum capacity corresponds to the loop associated with S~ in the digraph of Figure 9. Hence Co = 4 so that applying RP 1 does not allow more than three pieces in the system. As for RP2, it is noted that all the feasible working procedures include a transition represented by an edge of ~/0. Hence :q('~O) = :q SOthat in this case RP 1 and RP2 coincide.

input buffer slots, Mi and dj indicate the machines, and OB is the output buffer. Clearly, in the digraph of Figure 9, all the edges incident to vertex Si must also be incident to the first resource of the group of vertices, representing the first slot of the input buffer. Analogously, edges outgoing from Si in the working procedure digraph must go out of the last

M~

$4

B

Figure 9

Figure 10

General Electric FMS Job Transitions Between Pairs of Workstations

General Electric FMS Digraph Corresponding to a Two-Machine Workstation

176

Journal of Manufacturing Systems Vol. 15/No. 3 1996

To apply RP3, it is necessary to check if such a policy is deadlock-free by analyzing the secondlevel digraph. Now, according to the system layout, there are no cycles in the working procedure digraph having a unique common vertex. Hence, because F ~ is empty, RP3 is deadlock-free (see the second section). In addition, in this case RP4 and RP5 coincide with RP3. Finally, as for RPBK, it is easy to realize that the set of unshared resources is empty and that each working procedure is constituted by only one shared zone, as in the previous case study. While policies RP1 and RPBK drastically limit the maximum number (N) of jobs in process, RP3 does not constrain N, and also allows the jobs to occupy all the system resources (N = 33) simultaneously, under the adopted timing algorithm. Obviously, high values of N could lead to high work in process and to reduction in throughput. To focus on this point and to enlighten all the potentialities of RP3, such a policy has been also applied under a modified timing algorithm that limits the maximum number of job in process. Figure 11 shows the results of the simulation study reporting the throughput as a function of N. It shows that the throughput reaches a maximum for N = 11, while it decreases for N > [ 1. Figure 12 compares the throughputs obtained by applying RP1, RP3, and RPBK. In particular, for RP3, two values for the throughput are considered: the former (denoted by sat) is obtained using the timing algorithm with no bound on N; the latter (indicated by max) corresponds to the timing algorithm with the bound N = 11. The comparison shows that the least restrictive policy RP3 leads to the best performance indices, according to the theoretical results of the previous section.

0.008 T

o.oo T/ p

0.004 "

f_

0.003 "l"

F

0.002 40.001 4III

II :: ;::;1

: : 11 : : 1

::;

;',:

:', ', ',:

N

Figure 11 General Electric FMS Throughput (jobs per time unit) as Function of N

0.008

0.007

0.006

o.oo5 ]iRpl/2 RP3 (min)

o ~_.

0.004 RP3 (sat) 0.003

RPBK

0.002

0.001

Figure 12 General Electric FMS Throughput Values (jobs per time unit)

Conclusions Methods for deadlock prevention or avoidance in FMSs set limits on the freedom of the resource allocation. Such limits can lead to poor resource utilization and, consequently, to poor system performance. In this paper, comparisons are made among six policies for deadlock avoidance that have been introduced by Banaszak and Krogh and by Fanti et al. The aim is to enlighten the restrictions each policy sets on resource allocation. Of course, it is not easy to find a general criterion for quantifying the flexi-

bility in resource allocation allowed by any deadlock avoidance algorithm. The paper faces this problem by comparing the sets of the events inhibited by each policy. However, there are some limits in such an approach. Namely, it does not allow a comparison between any pair of restriction policies. For example, RP2 and RP4 cannot be compared by this approach that, however, can successfully be applied

177

Journal of Manufacturing Systems Vol. 15/No. 3 1996

Manufacturing Systems," International Journal of Production Research (v32, nl0, 1994), pp2361-2379. 8. Z.A. Banaszak and B.H. Krogh, "Deadlock Avoidance in Flexible Manufacturing Systems with Concurrently Competing Process Flows," IEEE Transactions on Robotics and Automation (v6, n6, Dec. 1990), pp724-734. 9. N. Viswanadham, Y. Narahari, and T.L. Johnson, "Deadlock Prevention and Deadlock Avoidance in Flexible Manufacturing Systems Using Petri Net Models," IEEE Transactions on Robotics and Automation (v6, n6, Dec. 1990), pp713-723. 10. N. Viswanadham and Y. Narahari, Performance Modeling of Automated Manufacturing Systems (Englewood Cliffs, N J: Prentice-Hall, 1992). 11. Y.T. Leung and G.-J. Sheen, "Resolving Deadlocks in Flexible Manufacturing Systems," Journal of Manufacturing Systems (v12, n4, 1993), pp291-304. 12. E Harary, R.Z. Norman, and D. Cartwright, Structural Models: An Introduction to the Theory of Directed Graphs (New York: John Wiley & Sons, Inc., 1965). 13. E-S. Hsieh and S.-C. Chang, "Dispatching-Driven Deadlock Avoidance Controller Synthesis for Flexible Manufacturing Systems," 1EEE Transactions on Robotics and Automation (vl0, n2, 1994), pp 196-209. 14. Y. Li and W.M. Wonham, "Deadlock Issues in Supervisory Control of Discrete-Event Systems," Proceedings of 22nd Annual Conference on Information Sciences and Systems (Eton, NJ: Princeton University, March 1988), pp57-63. 15. M.P. Fanti, B. Maione, S. Mascolo, and B. Turchiano, "Event-Based Feedback Control for Deadlock Avoidance in Flexible Production Systems" Report No. 12/93/S (Politecnico di Bari, Dipartimento di Elettrotecnica ed Elettronica, 1993), ppl-32. 16. M.P. Fanti, B. Maione, S. Mascolo, and B. Turchiano "Low-Cost Deadlock Avoidance Policies for Flexible Production Systems," Proceedings of the lASTED International Conference on Applied Modelling and Simulation (Lugano, Switzerland: June 1994), pp219-223. 17. M.P. Fanti, B. Maione, G. Piscitelli, and B. Turchiano, "System Approach to a Generic Software Specification for Flexible Manufacturing System Job Flow Management," International Journal of Systems Science (v23, nl 1, 1992), pp1889-1902. 18. B.P. Zeigler, Multifacetted Modelling and Discrete Event Simulation (London: Academic Press Inc., 1984). 19. C.D. Pedgen, Introduction to S1MAN (State College, PA: Systems Modelling Corp., 1983). 20. A.M. Law and W.D. Kelton, Simulation Modeling and Analysis (New York: McGraw-Hill, Inc., 1982).

to many other different pairs in the set of the six policies considered here. In any case, the approach provides useful suggestions and results by ordering the different policies by flexibility in resource allocation. The restriction policies in two case studies have been simulated, and the throughputs and have been compared corresponding to different operating conditions. The simulation results confirm the previous analysis. In particular, a reduced flexibility in the resource allocation changes the throughput for the worse. In other words, the simulation confirms the classification given by Figure 2. Policies RP4, RP5, and RP3, in particular, provide the best results. On the contrary, RP1 leads to poorer values of the throughput. As expected, RPBK provides low throughputs, mainly because in both case studies there are no unshared resources. Particular attention must be given to RP3. As underlined by the last statement of Proposition 1, RP3 is the less restrictive deadlock-flee policy found. Unfortunately, RP3 cannot be applied in any case because sometimes it is not deadlock-free. However, as in the first case study, a marginal modification in the system layout makes RP3 deadlock-flee. Because it allows the maximum flexibility, scheduling system operations with this restriction policy can lead to the highest values in performance indices, under appropriate scheduling policies.

Acknowledgment This work was partially supported by the Italian National Research Council (under contract C.N.R. n. 93.00917.PF67) and by the Ministry of University and of Technological and Scientific Research.

Authors' Biographies Maria Pia Fanti is an assistant researcher in the Dipartimento di Elettrotecnica ed Eletlronica at the Polytechnic of Bail (Italy). She received her degree in electronic engineering from the University of Pisa. Her research focuses on structural properties of linear systems and on FMS control and modeling. Bruno Malone is currently a full professor of automatic control at the Politechnic of Bail. He received his degree in electrical engineering with honors from the University of Napoli. Professor Maione held the position of faculty dean at the Polytechnic of Bari from 1986-92. His primary areas of research and teaching are FMS control, intelligent control, discrete event dynamic system modeling, systems, and control theory. Saverio Mascolo is an assistant researcher in the Dipartimento di Elettrotecnica ed Elettronica at the Polytechnic of Bail. He received his degree in electrical engineering from the University of Bari. His research is in manufacturing systems. Biagio Turchiano is currently an associate professor of automatic control at the Polytechnic of Bail. He received his degree in electrical engineering from the University of Bail. His research and teaching interests are in the areas of production automation, systems, and control theory.

References 1. S.S. Isloor, "The Deadlock Problem: An Overview," Computer (v13, n9, Sept. 1980), pp58-78. 2. E.G. Coffman, Jr., M.J. Elphick, and A. Shoshani, "System Deadlocks," Computing Surveys (v3, n2, June 1971), pp67-78. 3. PB. Hansen, Operating Systems Principles (Englewood Cliffs, NJ: Prentice-Hall, 1973). 4. M. Singhal, "Deadlock Detection in Distributed Systems," Computer (v22, nl 1, Nov. 1989), pp37-48. 5. R.A. Wysk, N.S. Yang, and S. Joshi, "Detection of Deadlocks in Flexible Manufacturing Cells," 1EEE Transactions on Robotics and Automation (v7, n6, Dec. 1991), pp853-859. 6. R.A. Wysk, N.S. Yang, and S. Joshi, "Resolution of Deadlocks in Flexible Manufacturing Systems: Avoidance and Recovery Approaches," Journal of ManuJacturing Systems (v 13, n2, 1994), pp 128-138. 7. T.K. Kumaran, W Chang, H. Cho, and R.A. Wysk, "A Structured Approach to Deadlock Detection, Avoidance and Resolution in Flexible

178