• No results found

Dynamic deadlock detection under the OR requirement model

N/A
N/A
Protected

Academic year: 2021

Share "Dynamic deadlock detection under the OR requirement model"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

Dynamic Deadlock Detection under the OR

Requirement Model

Alvaro E. Campos,Christian F. Orellana 

,and Mara PaSoto

Departamentode Cienciade la Computacion

Ponti cia Universidad Catolica de Chile

Casilla 306 - Santiago 22- CHILE

ABSTRACT

Deadlock detection is oneof the most discussed

problems in theliterature. Although several

al-gorithmshavebeenproposed,theproblemisstill

open. Ingeneral,thecorrect operationof an

al-gorithmdependsontherequirementmodelbeing

considered. This article introduces a

deadlock-detection algorithm for the OR model. The

al-gorithmiscomplete, becauseitdetectsall

dead-locks, and it is correct, because it does not

de-tect false deadlocks. In addition, the algorithm

supports dynamic changes in the wait-for graph

onwhichitworks. Once nalized thealgorithm,

atleasteachprocessthatcausesdeadlockknows

that it is deadlocked. Using this property,

pos-sibleextensions aresuggestedin orderto resolve

deadlocks.

Keywords:Distributedsystems,deadlock

detec-tion,deadlockresolution, self-stabilization,

wait-forgraph,knot.

1. INTRODUCTION

Oneofthemainmotivationsto builddistributed

systems is the possibility of sharing resources

amongseveralprocessors. A processcanacquire

and release resources in a sequence that is

un-known beforehand. Inthis setting, thedeadlock

problemarises; beingabletodetect deadlocksis

the rststepto takeactionsandresolvethem.

A setofprocessesis saidto bedeadlockedwhen

eachprocessinthesetis blocked,waitingfor

re-sources that are assigned to other processes in

the same set [14]. This situation may occur if

four conditions related to resource competition

holdsimultaneouslyinthesystem:resources

can-notbeshared,there isnopreemption, processes

waiting forresourceskeepthosealreadyassigned

tothem, andthereiscircularwait.

In general, there are three strategies to deal

with deadlocks: prevention, avoidance, and

de-tection[14]. The rsttwostrategiesfreethe

sys-

Correspondingauthor

temfromthepossibilityofbecomingdeadlocked,

but areineÆcient. The rstoneimposes

restric-tionsinthewayaprocesscanexecute,tonegate

oneofthefourconditionsmentionedabove. The

secondoneiscomputationallyexpensive,because

thesystemmustcheckthesafetyofthenewstate

everytimearesourceisabouttobeassigned. The

third one, onthe other hand, letsdeadlocks

oc-cur,but thenitdetectsand resolvesthem.

2. THEORETICALMODELS

Knapp classi edthedeadlock-detectionproblem

in six models, according to the type of

require-mentsthataprocesscanmake[10]. Thesix

mod-elsarethefollowing:

Single-outstanding-requestmodel: Under

this model, processes request only one

re-source at atime. It isthe simplest

require-mentmodel. FlateboandDatta,among

oth-ers, have proposed an algorithm to detect

deadlocksunderthis model[4].

AND model: Under this model, processes

re-quest multiple resources simultaneously. A

requirement is satis ed when all the

re-quested resourcesare assigned. Some

algo-rithms to detect deadlocks [4, 9]and to

re-solve them [6] under this model have been

proposed.

OR model: Under this model, processes also

request multiple resources simultaneously,

but a requirement is satis ed when any of

therequestedresourcesisassigned. Chandy,

Misra, and Haas [2], and Natarajan [11],

among others, have proposed algorithms to

detectdeadlocksunderthismodel.

AND/OR model: Thismodelisa

generaliza-tionof theprevioustwo. Under this model,

processesrequestanynumberofresourcesin

anarbitrarycombinationofANDandOR

re-quirements. Herman andChandy have

pro-posedadistributedalgorithmtodetect

(2)

1

3

2

4

Figure1: Deadlockunder theANDmodel

( n

k

) model: Under this model, a requirement

for n resources is satis ed when k of them

are assigned to the requesting process. It

is a generalized model too, because when

n = k = 1 the requirement corresponds to

the rstmodeldescribed. Ifn=k6=1,itis

anANDrequirement,andifk=16=n,itis

anORrequirement. BrachaandToueghave

proposed analgorithm todetectandresolve

deadlocksunderthismodel[1].

Unrestrictedmodel: Underthismodel,no

as-sumption is made about the way in which

processescanmaketheirrequirements.

This article presents a deadlock-detection

algo-rithm for the OR requirement model. A

pro-cess can make an OR request, for example, in

a replicated distributed databasesystem, where

a read request for a replicated element is

satis- edwhenanycopyisread[10]. Inasimilarway,

in amessage-routing systembased onwormhole

routing,aroutercanforwardareceivedmessage

toaneighborrouterthroughoneofseveral

chan-nels[13]; arequirementforanoutput channel is

satis edwhenanyofthembecomesavailable.

Ausefulwaytorepresentresourcerequirementsis

bymeansofadirectedgraph,knownasWait-For

Graph(WFG).InaWFG,eachnoderepresentsa

processinthesystem. Nodeswithoutgoingedges

representblockedprocesses,waitingforresources.

On the contrary, nodes without outgoing edges

representactiveprocesses. An edge from node i

to node j means that process i is waiting for a

resource assigned to process j. The

deadlock-detectionproblem canbereducedto that of

de-tectingcyclicstructuresonthisgraph. For

exam-ple,thepresenceof adirected cycleintheWFG

isanecessaryandsuÆcientconditionforthe

ex-istenceofdeadlockundertheANDmodel[10]. In

Figure1,processes1,2,and3form acycle, and

are deadlocked. Although theresource assigned

to process 4 will be released once that process

terminates, process1alsoneeds theresource

as-signed to process 2, to be able to continue

exe-cuting.

1

3

2

4

5

Figure2: Deadlockunder theORmodel

Under the OR requirement model, the presence

of acyclein theWFGis anecessary| but not

suÆcient |conditionforadeadlockto exist. If

theedgesrepresentORrequirements,thereisno

deadlockin Figure 1, despite thecycle, because

process1 is waiting for the resourceassigned to

process 2 orthe resourceassigned to process 4.

Sinceprocess4canterminate,itsresourcecanbe

assigned to process 1, which can then continue

executing.

Under the OR requirement model, a process is

blocked ifithasapendingORrequirement. The

set ofprocessesfor which ablockedprocessP is

waitingiscalleditsdependentset;thedependent

set contains thedirect successors,the neighbors,

of P in the WFG [2]. Therefore, ablocked

pro-cesscancontinueexecutingifsomeprocessinits

dependent set releasesa resource,which is then

assignedto theblockedprocess.

UndertheORrequirementmodel,asetSof

pro-cesses is in a deadlock state if and only if the

followingconditionshold[2]:

 everyprocessinS isblocked,

 the dependent set of each process in S is a

subsetofS,and

 therearenomessagesintransitbetween

pro-cessesinS.

Detectingadeadlockisequivalenttodetectinga

knot in the WFG [8]. Byde nition, anode v is

in aknotif,

8nodew;v reachesw!wreachesv;

that is,ifthereisadirectedpathto vfrom each

oneofitssuccessors. Nodesthat arein theknot

are said to cause the deadlock. There may be

other nodes, which are not in a knot, that are

deadlockedonlybecauseallnodesintheir

depen-dentsetsaredeadlocked.

InFigure2,processes1,2,3,and4areinaknot,

theyaredeadlocked,andtheyallcausedeadlock.

Althoughprocess5isnotin theknot,itis

dead-lockednonetheless,becauseallprocessesinits

(3)

Fornodei:

(1:1) if (j;i)2=Succ^j2Neighbors

then Succ:=Succ[f(j;i)g

(1:2) if (j;i)2Succ^j2=Neighbors

then Succ:=Succ f(j;i)g

(1:3) if Neighbors=;^(Succ6=;_Paths6=;)

then Succ:=;;

Paths:=;

(1:4) if (j; )2Succ

n

^(j; )2=Succ

then Succ:=Succ[f(j;n)g

(1:5) if (j;n)2Succ^(j; )2=Succ

n

then Succ:=Succ f(j;n)g

Figure 3: Theproposedalgorithm, rstphase

Chandy,Misra,andHaashaveproposedan

algo-rithm to detect deadlocks under the ORmodel,

basedonthetechniqueknownasdi using

compu-tations [2]. Intheirproposal,aprocessstartsthe

algorithm when a request is not granted. Upon

termination,aprocessisguaranteedtoknowthat

itisdeadlockedonlyifitwasdeadlockedwhenthe

algorithmstarted. Nonetheless,in aset of

dead-locked processes, at least oneof them is able to

report thedeadlock. Thealgorithmproposedby

Natarajan [11] isbasedonthe sameprincipleas

the one by Chandy, Misra, and Haas, but uses

aperiodicprotocolthat allowsto chooseexactly

oneprocessfromasetofdeadlockedprocessesto

reportit.

In the algorithm proposed in this paper, a

pro-cess that is not part of a knot when the

algo-rithm starts, but later becomes part of one, is

able to report the deadlock. If all processes in

the dependent set of aprocess v are awarethat

they are deadlocked, process v is able to report

that itis deadlocked. Additionally, each process

could decide if it is part of a knot. Thus, all

processesthatare awareofthedeadlock,in

par-ticular,those processes that causethe deadlock,

maystartaresolutionaction.

3. DEADLOCKDETECTION UNDER

THEOR MODEL

The proposed algorithm is shown in Figures 3,

4,and 5. Detectionis made in three phases. In

the rstphase,eachnodecomputesthesetofits

successors. Inthesecondphase,eachnodebuilds

apartialviewoftheWFG,bythepropagationof

existing paths. Finally, in thethird phase, each

node decides locally whether it is deadlocked or

not.

The algorithm starts at a node, when a request

for resources is not granted. The requesting

process blocks, and control is transferred to a

thread thatruns thedetection algorithm. These

threads maintain exact, up-to-date information

about which are the processes for whom they

wait, that is, their neighbors in the WFG. The

set of neighbors of a node v changes when one

of themreleasesaresource,whichisthen

reallo-cated to some waiting node. If it is reallocated

to v, v is no longer blocked; otherwise, v has a

di erent set of neighbors. The resource

alloca-tor caninformthedetection-algorithm threadof

these changes in the WFG, through atomic

up-dates of the local variable Neighbors. No other

event canchange the set of neighbors,sincethe

processis blocked.

Variables

Eachprocess mantainsfour local variableswhen

executing thealgorithm:Neighbors,Succ, Paths,

anddeadlock,whichitcanreadandwrite. In

ad-dition, it isassumed thateachprocess has

read-onlyaccesstothelocalvariablesoftheprocesses

for whom it waits; actually, read access to

vari-ablesSucc,Paths, anddeadlock oftheneighbors

isenough.

Variable Succ represents theset of successorsof

the node that is executing the algorithm. Each

elementofthe setis anorderedpairof theform

(a;b), where a is the identi er of the successor

process, and b is the identi er of the process

fromwheretheinformationwaslearned.Variable

Paths represents the partial view of the WFG

that the node has. Each element of this set is

an ordered trio of the form (a;b;c), and

indi-cates that there is adirected path from node a

to nodeb,and that theinformation waslearned

from node c. Variable deadlock indicates if the

processis deadlocked.

Initially, variable deadlock takes thevalue false.

Variables Succ and Paths must be initialized as

(4)

Fornodei:

(2:1) if (a; )2Succ^(i;a;i)2=Paths

then Paths:=Paths[f(i;a;i)g

(2:2) if (a; )2=Succ^(i;a;i)2Paths

then Paths:=Paths f(i;a;i)g

(2:3) if (a;b; )2Paths

n

^(a;b; )2=Paths

then Paths:=Paths[f(a;b;n)g

(2:4) if (a;b;n)2Paths^(a;b; )2=Paths

n

then Paths:=Paths f(a;b;n)g

Figure4: Theproposedalgorithm,secondphase

Notation

Each step of the algorithm is of the following

form:

(p:s)ifhguardithenhmovei

In the number (p:s), p indicates the phase to

which the step belongs, and s enumerates the

steps within that phase. The predicate hguardi

isabooleanpredicateoverthevariablesthatthe

processcanread:itsown localvariables andthe

ones of its neighbors. If the predicate is true,

thenitispossibletoexecutetheactionde nedin

hmovei. Itisassumedtheexistenceofa

coordina-tor |centralized or distributed | that chooses

the next move to execute when there is one or

moretrue predicates. Movesare chosen

accord-ing to thephase to which they belong; theones

thatbelongtoanearlierphasehavepriorityover

actionsoflaterphases.

In Figures 3, 4, and 5, variable i representsthe

identi erof theprocess that is executingthe

al-gorithm,andnrepresentstheidenti erof oneof

its neighbors. The local variables of neighbor n

arerepresentedasSucc

n ,Paths n ,anddeadlock n .

Tuples of the form (a; ) represent any ordered

pair whose rst element is a. In the same way,

those of the form (a;b; ) represent any ordered

triowhose rsttwoelementsareaandb.

The algorithm

Phase1,inFigure3,beginswithstep(1:1),which

isexecutedbyprocessi,whenitssetofneighbors

changes. Theset rst changeswheni blocks

be-causeitmakesarequestthatisnotgrantedand,

therefore,itacquiresasetofneighbors. The

pro-cesscomputesitsinitialsetofsuccessors,withthe

identi ersofthoseneighbors. Instep(1:2),later

changes in the set of neighbors update the set

ofsuccessorsaccordingly. Instep(1:4),thesetof

successorspropagatestopredecessorsnodes. The

goal of this propagation is to determine all

suc-cessorsof anode, both direct and indirect. The

node completes the pairs of its indirect

succes-sorswiththeidenti eroftheneighbornodefrom

where the informationwaslearned. Inthis way,

in step(1:5),thenodeisabletoeliminateall

tu-ples that, because of achange in the WFG, are

nolongervalid. Step(1:3)endsthealgorithm,in

case oneof therequested resourceforwhich the

processwaswaitingfor,isassigned. Inthiscase,

processi is nolongerblockedand hasno

neigh-bors. Uponterminationofthis phase,eachnode

knowsexactlyallitssuccessors.

Phase2,inFigure4,beginswithstep(2:1),where

the set ofpaths fromnodei to allitssuccessors

iscompleted. Instep(2:3),pathsarepropagated

to predecessors nodes in a way similar to the

propagation ofsuccessorsinphase1. Steps(2:2)

and (2:4)propagate changes in theWFG. Upon

termination of this phase, each node knows the

set ofpaths in theWFG thatstarton itselfand

oneveryoneofitssuccessors,that is,eachnode

has apartial viewof the WFG that allowsit to

decidewhetheritisornotin aknot.

Phase3,inFigure5,beginswithstep(3:1),which

determines theexistence ofa knotin the WFG.

Ifthereisone,theprocessknowsthatitis

dead-locked. Step(3:2)isfornodesthat,withoutbeing

partofaknot,arewaitingonlyforprocessesthat

alreadyknowthataredeadlocked;theycaninfer

that theyarealsodeadlocked.

4. PROPERTIES OF THE

ALGORITHM

This section shows some properties of the

pro-posedalgorithm.

Lemma1. If j is asuccessor of i in the WFG,

then (j; )2Succ

i

upon terminationof the

algo-rithm.

Proof. By induction on d(i;j), the distance

be-tweennodeiandnodej in theWFG.

Basecase:d(i;j)=1. Inthiscase,jisaneighbor

ofiintheWFG,and(j;i)2Succ

i

bystep(1:1).

Inductive hypothesis: 8i, if d(i;j) = n then

(j; )2Succ

i .

Inductivestep: If d(i;j)=n+1then there is a

(5)

Fornodei:

(3:1) if deadlock=false^Paths6=;^8j;(i;j; )2Paths!(j;i; )2Paths

then deadlock:=true

(3:2) if deadlock=false^8j2Neighbors;deadlock

j =true

then deadlock:=true

Figure5: Theproposedalgorithm,third phase

theneighborofiin thatpath. Then, d(k;j)=n

and,becauseoftheinductivehypothesis, (j; )2

Succ

k

. Since k is a neighbor of i, then (j;k) 2

Succ i bystep(1:4). 2 Lemma2. If (j; )2Succ i upon terminationof

the algorithm, thenthereis apathfrom itoj in

the WFG.

Proof. If there is a tuple (j;i) in Succ

i

, then it

wasadded bystep(1:1)and j isaneighbor of i

intheWFG.

Ifthereisatuple(j;n)inSucc

i

,withn6=i,then

it was added by step (1:4) and there is a tuple

(j; ) in Succ

n

. Since nis aneighbor ofi, there

isapathfromitonintheWFG.Inductivelyfor

n, it can befound a path from n to j. If there

isnosuchpath,then(j; )wouldbedeletedfrom

Succ

i

bystep(1:5). Thus, thereisapathfrom i

toj in theWFG. 2

Lemma3. Upon termination of the algorithm,

each node knows allpaths of the WFGthat start

onitself.

Proof.ByLemmas1and2,nodeiknowsexactly

all its successors upon termination of the

algo-rithm. Bystep(2:1),apathfromitoeverynode

inSucc

i

isaddedtovariablePaths. Bystep(2:2),

pathsto nodesthat arenolongerreachablefrom

iaredeleted. 2

Lemma4. Upon termination of the algorithm,

eachnodeknowsallpathsthatstartonevery

suc-cessor.

Proof.ByLemma3,eachnodeknowallthepaths

that starton itself. Those pathsare propagated

topredecessornodesinstep(2:3),untilevery

pre-decessorknowsall thepathsthat startonevery

successor.IftheWFGchanges,bysteps(2:2)and

(2:4) the invalid paths are deleted, and changes

arepropagated. 2

Lemma5. Upon termination of the algorithm,

atleasteachnodethatcausesdeadlockknowsthat

itisdeadlocked.

Proof.ByLemmas3and4,nodeiknowsallpaths

oftheWFGthatstartonitselfandonevery

suc-cessor. If theguard of step(3:1) istrue, node i

knowsthatitispartofaknot. Bythede nition

ofdeadlockundertheORmodel,aknotisa

nec-essary and suÆcient condition for the existence

ofadeadlock. Thus,anodethatknowsthatitis

partofaknotknowsthatitcausesdeadlock.

By step(3:2), a node such that everyone ofits

neighborsknowsthatisdeadlocked,alsoupdates

itsvariabledeadlock totrue.

Thus,whenthealgorithmterminates,atleast

ev-eryprocess thatcauses deadlockhasitsvariable

deadlock setontrue. 2

It hasbeenshownthat thealgorithmdetects all

deadlocks. Now, itwill be shown that the

algo-rithmdoesnotdetectfalsedeadlocks.

Lemma6. The algorithm does not detect false

deadlocks.

Proof. If a process has its variable deadlock set

ontrue,ithasexecutedthestep(3:1)orthestep

(3:2). For the guardof step (3:2) to be true at

a node, anotherprocess must haveexecuted the

step(3:1). IfthereisnotaknotintheWFG,the

guard of step (3:1) would never be true at any

node, by Lemmas 3 and 4. Then, if a process

executes step(3:1), it isbecause there is aknot

in theWFG.

No processcanhaveits variabledeadlock set on

true if there is no knot in the WFG; thus, the

algorithmdoesnotdetectfalsedeadlocks. 2

Lemma7. The algorithm terminates.

Proof.Ifthenodethat runsthealgorithmis not

deadlocked, then it will eventually receive a

re-sourceforwhichitwaswaiting. Then,theguard

at step(1:3) will betrue, andthe actionwill be

executed. AsthesetsinvariablesSuccandPaths

will be emptied, no other guard will be true at

thenode,andthealgorithmterminates.

Ifthenodethatrunsthealgorithmisdeadlocked,

all its successors are deadlocked. Therefore, no

newoutgoingedgescanbeaddedorremoved;the

part of the WFG that the node can reach does

not change. After a nite number of executions

(6)

will not become trueagain. Thesame situation

occurswith theguardsofphases2and3. Then,

there will be no more moves to make, and the

algorithmterminates. 2

The next theorem follows from Lemmas 5, 6,

and7.

Theorem1. Theproposedalgorithmiscomplete

andcorrect.

5. DEADLOCK RESOLUTION

In order to resolvea deadlock, oneof the

dead-lockedprocessesmustbeterminated. Therefore,

onceadeadlockisdetected,itbecomesnecessary

tochooseavictimtoterminate. Terminatingjust

any process doesnot necessarilysolve the

dead-lock. In Figure 2, if process 5 were terminated,

therestoftheprocesseswouldstillbedeadlocked,

becausetheknotin theWFGremains. Itis

nec-essarytoterminateoneprocessfromeachknotin

theWFG.

Uponterminationof thealgorithm,each process

thatcausesdeadlockknowsthatitisdeadlocked.

The algorithm canbe modi ed slightly, so that

theycanalsoknowthat arepartofaknot. This

e ect can beaccomplished by adding aboolean

variable,sayknot,initializedtofalse. Iftheguard

ofstep(3:1)istrue,thenthevariableisupdated

to true, because it is in this step that a process

knowsthatitispartofaknot. Also,instep(1:3),

thevariablemustberesettofalse.

Oncethealgorithmis nished,theprocessesthat

arepartofaknotcanstartanalgorithmtochoose

a victim such that, when terminated, the

dead-lock is solved. For example, a leader-election

algorithm as the one described by Ghosh and

Guptaisenough[5].

After a process is terminated, variable deadlock

should be reset to false at each node; also, all

variables knot should bereset to false. The

im-mediatepredecessorsoftheterminatedprocesses

would see a change in their variable Neighbors,

andthedetectionalgorithmwouldrecomputefor

thenewWFG.

6. CONCLUDING REMARKS

This article presents a deadlock-detection

algo-rithm for the OR requirement model. The

al-gorithmis dynamic since itsupportschanges to

theWFG whileit is executing,such asaddition

and removalof nodes andedges. The algorithm

is complete since it detects all deadlocks. The

algorithmiscorrectsinceitdetectsnofalse

dead-locks. Additionally, slight modi cations to the

algorithmthatallowtoresolvedeadlocksonce

ev-erycausingnodeisidenti edhavebeendiscussed.

Since Dijkstra introduced the concept of

self-stabilizationin1974[3],severalself-stabilizing

al-gorithms to solve many problems in distributed

systems have been proposed. Mutual exclusion

andleader electionareamongtheclassical

prob-lems solved with this approach. Schneider has

written acompletesurveyonthesubject[12].

In general,asystem issaid to be self-stabilizing

if,regardlessofitsinitialglobalstate,itcanreach

alegalglobalstateina nitenumberofsteps[3].

The global state is the cartesianproduct of the

localstatesofeveryprocessorinthesystem. The

de nitionoflegalandillegalglobalstatesdepends

onthecontextoftheproblembeingsolved.

The ability to regain a legal global state that

those systemspresent, makes them ableto

sup-porttransientfaults. Atransientfaultisonethat

occurs onceandceasestoexist.

Some self-stabilizing algorithms to solve the

deadlock-detection problem under the AND

model have been proposed [4, 9]. Nevertheless,

the classic de nitions of some concepts used in

self-stabilizing algorithms are not clearly

appli-cable in the context of deadlock detection. The

diÆculty is in the de nition of legal and illegal

globalstates,andtransientfaults. Thus,thenext

stepistode nethoseconceptssuitably,inorder

to present an algorithm that supports transient

faults, andthatisself-stabilizing.

ACKNOWLEDGEMENTS

Christian F. Orellana and MaraPa Soto

dedi-catethisworktothememoryoftheiradvisorand

belovedfriendAlvaroE.Campos,who

unexpect-edlypassedawayonJuly25,2003.

Alvarowasanexcellentteacher,aremarkable

re-searcher, and a wonderful person, who always

worked with dedication, enthusiasm, and

opti-mism. Meetinghim wasanenlightening

experi-ence andagenuine privilege. His manystudents

will miss him much, and will continue with his

legacy.

7. REFERENCES

[1] Gabriel Bracha and Sam Toueg. A

dis-tributed algorithm for generalized deadlock

detection. In Symposium on Principles of

DistributedComputing,pages285{301,

Van-couver, British Columbia, Canada, August

1984.

[2] K. Mani Chandy, Jayadev Misra, and

LauraM.Haas. Distributeddeadlock

detec-tion. ACMTransactions on Computer

(7)

[3] EdsgerDijkstra. Self-stabilizing systemsin

spite of distributed control.

Communica-tions of the ACM, 17(11):643{644,

Novem-ber1974.

[4] Mitchell Flatebo and Ajoy Kumar Datta.

Self-stabilizing deadlock detection

algo-rithms.InProceedingsofthe1992ACM

An-nualConference on Communications, pages

117{122,KansasCity,Missouri,April1992.

[5] Sukumar Ghosh and Arobinda Gupta. An

exerciseinfault-containment: self-stabilizing

leaderelection. Information Processing

Let-ters,59(5):281{288,September1996.

[6] Jose R. Gonzalez de Mendvil, Federico

Fari~na, Jose R. Garitagoitia, C. F.

Alas-truey, and J. M. Bernabeu-Auban. A

dis-tributed deadlock resolution algorithm for

theANDmodel.IEEETransactionson

Par-allelandDistributedSystems,10(5):433{447,

May1999.

[7] T. Herman and K. Chandy. A distributed

procedure to detect AND/OR deadlock.

TechnicalReportTRLCS-8301,Department

of Computer Science, University of Texas,

Austin,Texas,1983.

[8] Richard C. Holt. Some deadlock properties

oncomputersystems.ACMComputing

Sur-veys,4(3):179{196,September1972.

[9] Mehmet H. Karaata and Je ery C. Line.

Self-stabilizing algorithms for deadlock

de-tectionandidenti cationin distributed

sys-tems. In Proceedings of the ISCA

Thir-teenth International Conference on Parallel

and Distributed Computing, pages 320{325,

LasVegas,Nevada,August2000.

[10] Edgar Knapp. Deadlock detection in

dis-tributed databases. ACM Computing

Sur-veys,19(4):303{328,December1987.

[11] N. Natarajan. A distributed scheme for

detecting communication deadlocks. IEEE

Transactions on Software Engineering,

SE-12(4):531{537,April1986.

[12] Marco Schneider. Self-stabilization. ACM

Computing Surveys, 25(1):45{67, March

1993.

[13] Loren Schwiebert. Deadlock-free

oblivi-ous wormhole routing with cyclic

depen-dencies. IEEE Transactions on Computers,

50(9):865{876,September2001.

[14] Abraham Silberschatz, Peter Galvin, and

GregGagne.AppliedOperatingSystem

Con-cepts. JohnWiley & Sons, NewYork, NY,

References

Related documents

The essence of the VB method relies on making simplifying assumptions about the poste- rior dependence of a problem. By definition, the general posterior dependence structure

Water characterization revealed geogenic controls on the water chemistry with Ca-Mg-(Na)- HCO 3 water type in urban areas suggesting CO 2 -charged infiltrating rain water

Ekspropriasjon betegner den prosessen i et grunnerverv som benyttes når det etter forhandlingsforsøk ikke er mulig å komme til en minnelig avtale.. Grunneier

To study coping differences between young and experienced GPs in primary care who experience medical errors..

a p r h  l p t  ing  r  at  ¾

The general procedure is composed of (1) preparation of cells for the experiment, in which either cell extracts are prepared or intact cells are cultured; (2) drug treatment with

Although the protocol and dosage are different for urin- ary and recombinant hCG we conclude that the 7-day hormonal response after a single subcutaneous dose of rhCG in

The main hypothesis of this study was that there was a relationship between 30-day readmissions of individuals with CHF and their payer status, race, ethnicity, primary