当前位置:首页 >> >>

Using UML to derive stochastic petri net models


?× ? ??? ?? ? ? ??? ×? ? ?? ? ? ?? ?×
? ? ??? ?? ???? ?
×?? ?
? ?? ? ?? ?? ? ? ? ? ????? × ? ? ?×??? ×? ? ? ?? ? ? ?? ?? × ? ??? ? ??? ×?????? ? ? ? ? ? ? ? ?? ???? ??? ?? ?? × ?? ? ? ?? ??? ? ? ?? ? × ? ? ×? ?? ? ? ? ????? ? ×?×? ?× ? ???? ?? ????? ??? ?? × ? ? ?? ?? ???? ?? ?? ??× ? ?? ?? ? ? ? ? ??? ? ? ??× × ? ×? × ?×? ?× ? ? ??? ? × ??? ? ????? ?? ?? ?? ?× ? ??× ? ×?? ?? ? × × ?× ? ??? ? ? × ? ? ? × ??× ?? ??? × ?× ? ?? ?×? ??? ×?×? ? ? ??? ??? ? ?? ? ?× ? ×?? ? ×? ? ? ???? ? ??? ?× ?? ???? ? ? ??? ? ×? ? ? ×?

?

????? ? ? ??

?? × ? ?? ?? ? ? ? ? ??? ? ? ??× × ? ? ?? × ? ×?? ? ? ? ?? ? ? ? ? ? ×? ?? ? × ? ????? ??? ? ??×? ??? ?? ? ? ×?? × ? ? ?? ? ? ? × ? ?× ?? ? ?? ? ×? ? × ??? ? ×?× ? ?? ? ? ?? ? ? ? ???? ? ??× × ? ? ? ?? ? ??? ? ? ×???? ?? ? ? ?? ×? ??? ? ????× ?? ? ? ? ? ? × ? ??? ? ??× ? ???? ?? ? ?? ×? ?? ? ? ? ?× ? × ? ?× ? ?? ?? ? ?× ?? ?? ? ? ? ??? ? ? ? ? ? ? ? ?? ??× ??? ?? ? × ×? ?? ? ?? ? ??× ? ? ???? ?? ? ? ?? ? ? × ? ? ?? ?? ?×? ? ? ??? ? ??× ?× ? ? ? × ? ? ? ? ×? ×× ? ?? ? ??? ? ? × ? ? ??? ? × ? ?? ?? ? ? ? ×? ×? × ? ? ? ? ????? ? ?? ? ×? ×× ? ? × ???? ? ? ?× ? ? ? ? ? ????? ? ?? ? ? × ? ??? ? ??× ?× ? ? ??? × ? ? × ? ?? ? ??? ? ? ? × ? ? ? ???? ? ?? ? × ? ????? ?? ?? ×? ??? ? ??? ? ?? × ?? ? ??×? ? ?? ?? ?? ? ?? ?? ×? ? ? ? ? ???? ? ??? ? ?? ?× ? × ? ?? ? ?? ?? ? ? ? ? ????? ?? ? × × ? ?? ?? ??? ?? ? ? ? ??×? ? ?? ?× ? ? ?? ?? × ? ??? ? ? ??×? ?? × ? ??? ? ? ? ? ? ? ? ?? ???? ??? ? × ? ? ×? ? ? ? ?? ?? ? ? ? ?× ? ????? ? ??×× ? ? × ?? × ??? ? ?? ? ??? ?? ?× ?? ? ? ? ?? ? × ??? ?? ? ? ? ???? ?? ?× ??? ??? ????? ?? ? ?× ?? ? ? ? ? ? ??? ??? ?? ?? ? ?× ???? ? ?????× ? ? ?? ? ×?? ×? ? ?? ? ?×? ? × ?? ?? ? ? ? ??? ? × ??? ? ????? ?? ??? ? ?? ×?? ?? ? ×? ? ? ×? ? ? × ? ? ? × ×??? ??? × ?????×? ? ? ?? ×??? ? × × ? ????? × ??? ? ????? ?? × ?× ? ? × ? ? ?? ? ? ?? ? ???× ? ???
?
?? ? ? ??? ?? ? ?? ?? ????? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ? ? ???? ?? ?? ? ?× ??? ?? ?? ? ? ? ?? ??

?? ? ? ? ??? ? ??? ? ?× ? ?? ? ?? ? ? ×??? ??? ? ×? ?× ? ? ×?×? ?? ? ? ?? ????? × ?? ? ??? ?? ? ? ?× ??? ? ??? ×? ? ? ?? ×???? ?? ? ????? ? ? ?? ?? × ??× ×?? ??? ? ? ×???× ? ? ? ? ×??? ? ? ?? ?? ? ? ?? ??? × ? ×?? ?? ? ??? ? ?× × ??? ?? ? ? ??? ? ?? ?? ? ? × ? × ??? ?? ? ? ??? ?

?

??? ?

× ??? ?

?? × ? ?× ? ? ? ? × ? ? ? × ? ? ? ??× ×? ?? ??? ?? ? ? ?? ?? ? ? ? ??? ×× × ? ?? ?? ? ?? ? ? ??? ? ??? ?? ×?? ?? ? ×? ?? ?× ? ?? ? ? ????? ??? ? ? ? × × ×?? ?? ? ??? ? ? × ?? ?×? ?? ? ? ×? ? ??? ×× ? × ? ??? ? ? ?? ?× ? ?? ??? ×? ?? × × ? ?? ?×? ?× ? ?? ×?× ?? ? ??? ×??? ? × ?? ?× ?? ? ? ×? ? ??? ×× × ? × ? ? ? ?? ×? ?? ? ? × ? × ×? ?? ? ???? × ×??? × ? ? ×? ?? ? ? × ? ? ? ? ?? ? ? ? ? ? ?? ×? ? × ??? × × ?????× ? ? ? ? ?? ×?× ?? × ?? ? ? ? ? ? ?? ? ?? ?? ? ?? ? ?? × ? × ? ? ?? ?? ? ?? × ??×? ? ??× ? ? ? ?? ?? × ? ?× ? ? ? × × ? × ??? ? ×???× ? ? × ??? ? ??? ? ? ? ? × ? ??? ? ? ? × ×? ×× ?? ? ?? ? ? ? ?? ×? ? ? ? ???× ? ????? ? ?? ? × ??×× ? ?? ?? ?? ? ? ?? × ? ?? ? ?? × ? ? ? × × ? ????? ? ??? ×? ??? × ?? ? × ?× ?? ? × ? ?? ?? ?? × ? ? ? × ? ?? ? ????? ? ?? × ???? ? ? ? ? × × ? × ? ? ? ×???× ? ? ?× ?? ? ??? ?? ??? ? ? ? ? ? × ? ? × ??? ? ? ?? ? × ? ? ? ? ? ?× ????? ? ??? ? ? × × ?? ?× ?? × ? ? × ? ? ? × ? ??? ? ? ? × × ?? ?× ?? × ? ? × ? ? ??? ?? ? ? ? ?? ? ??? ? ?× ? ? ? ? ? ×? ? ??? ×× ? ?× ??? ? ? ? ? ? ? × ?? ??? ? ×???× ? ? ? ? × ? × ? ??? ?? ?? ?× ? × × ? ?? ?× ? ??? ×? ? ? ?? ? ? ? × ? ? ? ×???× ??? ?? ?× ? × ×? ? ? ? × ? × ??? ? ?? ?? ?× ? × × ? ?? ??? ×? ? ? ? ? ×? ? ??? ×× ? ?? ??? ?? ?? × ? ???× ?? ?? ? × × ? ? × ? ? ×× ×? × ? ? × ? ?? ×?? ? ?× ?? ? ×??? ??? ? ?? ?? ? ? × ? ? ?

??

?

??? ??

? ? ??? ?

× ??? ?

? ? ??? ??? ?? ? ? × ??× ?? ×?? ?? ? × ×?×? ? ? ? ??? × ?? ?? ? ? ? ??? ? ??? ? ? ? ?? ? ??×× ? ??? ? ?×? ??× ? ?? ?? ??? ? ?? ? ?× ? ? ? ×× ?? ? ?? × ? ? ×??? ??? ? ? ??? ? ? ×?×? ??

???



×

??

?

? ? ?? ? ?

?× ?× ? ? ×?×? ? ? ××?? ?? ?? ? ×? ? ?×? ?? ??? ? ?× ? ?? ??? ?? ? ? ×? ? × ??? ? ?? ? ? ???? × ? ? ? ? ×× × ? ?? ? ?? ? ? × ×? ?? ?? ? ? ? ? ? ×?? ? ?? ? ? ?? ? ? ? ×?×? ? ???? ? ? ?? × ??× × ? ? ??? ? ???? ? ?× ?? ? × ? ? ?× × ? ?? ??? ?? ? ?× × ? ? ?? ??? ? × ??? ?

query

User

???

? ×× ??

?

? ×× ?? ? ?? × ? ×× ?? ? ??? × ? ? ? ? ? ? ?? ? ? ×?×? ?? ? ×× × × ? ? ? ? ? ? ? ? ? ?? ? × ? ? ?? ? ? ??? ??? ??× ??? ? ? ? ? ? ×? ? ??? ?? × ? ?? ? ? ??× ??? ? ? ?×? ? ? ?? ? ? ? ???? ? × ? ××? ? ×× × ? ? ? ? ? ? × ???? × ××? ? ??× ? ? ? ? ? ?? ? ? ? ×× × ???× ??? ? ?? ?? ?? × ??× ? ×× × ?? ?? ?× ? ??×? × ?? ?× ? ? × ×? ? ? ?× ? ?? ×?? ? ? ? ? ? ? ? ? ? ? ?× ?? ?? ? × ? ? ? ? ?? ? ? ? ? × ?× ? ?????? ? ? ? ? ? ??? ?? ? ?? × ?? ? ??? ? ? ? ? ?? ?? ? ?? ? ? ? ? ?? ? ? ? ? ??? ?? ×? ? ? ?? × ? ? ? ???? ???? ?? ? × × ?? ???? ? ?? × ? ? × ?? ?? ? ? ? ? ? ?? ??? ?? ? ? ??? ?? ?? ? ?? ×?× ? ????? ? ?? ? ? × ×? ? ? ?? ? ?? ×?× ? ? × × ? ?? ? ? ?? ?× ?? ? ×? ? ? ? ?? ? ? ? × ? ×× × ?×?? ?? ? ? ×× ? ? ?? ??? ? × ??? ?
1

Computation

1..*

carries out
1 1

runs on
1 1

spawns
1..*

Transaction

Task
1

executes on
1

Server
1

are needed for
1..*

is made to Lock Request
1..*

???

??? ? ? ??

? ?×

?? × × ?? ? ? ? × ?? ? ×? ?× ?? ? ? ? ×× × ? ×× ? ??? ? ?×? ?? ? ?× ? ? ?? ?? ??? ?? ?? ? ? × ? ? ×?×? ?× ? ?? ? ? ? ?? ? ? ? ×× × × ? ?? ?? ??? ????? ??? ? ? ?× ? × ??? ? ? ??? ? ? ? ? ? ? ×? ? ? × ××?? ?? ? ×× × ? ??? ??? ? ? ?? ??? ? ?× ? ? ? ?? ? ? ?? ? ? ?? ? ? × ×? ?? ??? ? ???? ??? × ?? ? ×? ?? ? ? ? ? ?? ? ? ?? × ??? ? ? ? ? ? ? × ×???? ? ? ? ? ? ? ?× ? × ? ?×? ? ? ? ??? ? ? ??? ×??? ? ?× × ? ?? ? ×× × ? × ?? ??? ?? ? ? ?? ??? ?? ??? ? ? ? ?? ???? ?? ? ?? ×? ? ??? ? ??? ? ? ??? ×??? ? ?? ? ? ??? ? ? ×× × ? ? × ??? × ×?? ?????×? ? ? ? ????? ? ? ? ? × ?? ? × ? × ??? ? ??× ? ?? ×? ?? ? ? ?? ?
:User t:Transaction request(q1) new Task(d1,l1) t1:Task new Task(d2,l2) t2:Task * lock(n,m) * grant(n) [n = every lock in l1] compute(d1) lock(n,m) grant(n) [n = every lock in l2] compute(d2) done() done() ready(2) ready(1) commit() commit() answer(reply)

? ? ?? ??? ? × ??? ? ? ×? ××
s1:Server s2:Server

??? ?? ? ??× ? ??? ? ??× ? ? ?×? ? ? ?? × ?? ? ? ? ? ?? ××?? ? ??× ?? ? ? ? ? ×× ×? ? × ?? ? × ? ? ×× × × ??? ? × ?? ? ? ?× ? ? ? ×?? ?? ???× ?? ? × ? ? ? ? ????× ????? ? ? ? ? ×? ?? ??? ?? ? ?? ? ? ?? ??? ? × ??? ?
t1:Task s1:Server

t:Transaction :User

t2:Task

s2:Server

??

?? ?

? ?×

?? ? ??× ? ??× ?

?? ?

?? ?? ?

? ??? ??×× ? ?? ? ?×? ? ?

? ×× ?

??

?? ?

? ? ?? ??? ? × ??? ? ? ?? ?× ? ??
needed := n/tasks := 0 spawning when(tasks<needed)/^newTask(locks,d)/tasks++ transaction failed when(tasks=0) when(suc+ref=tasks and ref>0) transaction succeeded running when(suc=tasks)

when(tasks>0)/^task[tasks].abort()/tasks--

when(tasks=needed) ready(n)/suc++

when(tasks=0)

when(tasks>0)/^task[tasks].commit()/tasks--

failed(n)/ref++

×? ? × ?

? × ??? × ??? ? × ? ? ? ? × ? ? ? ?? × ?? ??×× ? × ?? ? ?? ?? ? ? ? ? ? ? ? ×× ? ? ? ? ×? ? ? ? ? ? × × ??? × ? ??? ? ? ? ? ?? ? ? ? ×? ? × ? ? ??? ? ? ? ? ×? ?? ? ? ??? ? ? ?× ?? ?? ? × ??? × ????× ?? ? ×? ? ×? ?×? ??? ? ? ? ? ??? ?? ???? ? ? ?? × ?? ? ?? ??

?? ?× ? ??× ? ??

?× ? ? ?? × ?? ? ? ×?? ?? ? ? ? ?? ? ? ?? ×? ? ??? ×??? ? ?? ?× ? ?? ?? ??? ? ×? ? ??? ??? ? ?? ? ? ×× ? × ??? ? ? ?×? ? ? ? ?? ? ×× ×? ?? ? ?? ? × ??? × ? ? ??? ? ? ????? ? ? ?? ? ?× ? ? ? ? ? × ??? ? ? ??? ? ? ????? ??

? ? ????? ?? ? × ? ? ? ? ?? ? ?? ? ?? ? ??

? ??× ?

? ?? ?? ? ? ??? ? ×? × ? ? ?? × ?? ×??? ? ??? ?? ?? ?? ??? ?? ?? ? ? ? ? ? ??× ????? × ? ? ? ×× × ? ? × ? ?? ?? ? ? ? ? ? ? ?? ? ? ×× × × ?? × ?? ?? ? ? ×× ? × ? ? ? ??? ? ? ???

?? ? ??× ? ? ? ×? ? ×?? ? ?? ? ? ???? ? ?

?? ?× ? ??? × ??? ? ?? ? ×? ??× ? ×? ?? ? ?? ? ? × × ? ?? ? ? ??? ?? ? × ? ? ×× × ? ? ?? × ? ? ?? ? ?? ?? ? ? ????? ? ??×? ? ?? ?× ? ?? ? ? ?? ?× ? ???? ? ×? ? ??? ? ? × ? ? ? ? ? ? ? ×× × ??? ?? ?× ? × ×? ? ? ? × ? × ? ? ?? ??? ? ? ×× ? ? ?? ? ? ×? ?? ? ? ? × ?? ?? ??? ? ? ×× ×? ? ? ? × ? × ??? ? ×× × ?? ?? ?× ? × × ? ? ?? ? ? ×? ? ××?? ? ? ? ? × ??? ? ?? ? ? ? ? ? ???× ? × ?? ?? ?? ? ?? ? ? ×?? ? ?×? ?? ?? ?
/locks:=0 locking grant(i,m)/locks++ refuse(i,m)/^tr.failed(n) when(locks>0)/release(locks)/locks-when(got all locks)/s.compute(d,this) failed abort() commit() computing done()/^tr.ready(n) ready abort() releasing when(locks=0)

? ? ?? ??? ? × ??? ? ? ? ×
when(not got all locks)/^s.lock(i,m,this) asking

? × ×? ?? ? × ? ? ??? ? ? ?? ? ×? ? ? ??? ? ? ? × ? ? ? ?? ?× ? ??× ?? ? × ? ×? ? ? ??? ? ? ? ×? ?? × ? ? ?? ? ? ? ? ? × ? × ?? ?× ? ?? ? × ? × ? ×× ?? ?× ? ?? ?? ×? × ? ??

??

?? ?
Server

? ? ?? ??? ? × ??? ? ? × ?? ?
compute(d,t)/tasks++/^newActive(dur(d),t) give(n,m,t)/^t.grant(n,m)/locks++

waiting release()/locks-finished(t)/tasks--/^t.done()

lock(n,m,t)/^newRequest(delay(),n,m,t) [prob(p)]/^s.give(n,m,t)

Lock request
111111 000000 111111 000000 1111 0000 1111 0000 1111 0000
newRequest(d,n,m,t)

1 0 1 0

[prob(1-p)]/^t.refuse(n,m) fail or not after(d)

asking

Computational task 1 0 111 000 1 0 1 0 111 000 1111 0000 1 0 newActive(d,t) 111 000 1111 0000 111 000 1111 0000 111 000 1111 0000 111 000 after(d)/^s.finished(t) 1111 0000 111 000 1111 0000 111 000 1111 0000 111 000 1111 0000
running

?? ? ?? ? × ? ×? ? ? ? ?? × ? ? ? ?? ? ?? ?? ?? ?× ? ?? ?? ?? ? ? ? ? ? ?? ? ?? ×? ?? ? ?× ? ?? ?? ?? ?× ? ?? ?? ? ? ?× ? ? ? ×× ?? × ?? ?? ? ?? ?× ? ??? ??? ? ?? ?? × ? ? ?? ? ? ? × × ? × ????? ? ?? ×? ?? ?× ? ?? ? ? ?? ?× ? ????? ? ×? ? ? ?? ? ?× ? ? ??? ? ? ? ? × ?? ? ×× ? ? ? ? × ? × ? ? ? ×× ?? ?× ?? ?× ? ??? ??? ? ?? ?× ? ? ? ×? ? ? ? ? ? × ? × ? ? ? ×? ? ? ? ? × ??? ? ? ×× ??? ?× ?? ?× ? ??? ? ??? ?×? × ??? ? × × ???? ??? ? ?? ? ? ? × ? ×? ? ? ?? ? ? ? ×?×? ? ????? ? ?? ? ? ? ??? ?? ?? × ? ?× ? ? ?? ? ? ? ? ?? ? ? ? ×? ? × ? ??? ? ×× ?× × ? ? × ?? ??? ?? ? ? ? × ? ×? ? ? ?? ? ? ? × ? ×? ? ? ?? ?? × ? ?? ?? ? × ? × ? ? ? × ? ? ? ?? ?? ?? ? ? ? × ? ×× × ?? ?? × ?? ????? ? ?? ? ? × ×? ? ? ? ? × ×? ? ? ? ? ??× ? ???? ? ?? × ?? ? × × ??× ?? ×? ? ? ?? ?? ??? ? ? × ? ? ? × ? ? ? ? ??? ? ?? ?? ? ? ? × ? ?? ×? ?? ? ? × ?????? ? ? ? ? ? ? ? × ? ?? ?? × ? ×× ? ? × ? ? × ×? ×× ?? ?? ? ? × ×? × ? ×? × × ??? ? ? ? × ??? ×? ? ? ?×? ?? ? ? ?×? ? ? ? ? × ??? ??? ?? ? ?? ??? ? ? × ?
?? ?? ? ? ??? ?? ? ??× ? ×? ? ??×

??? ?? ? ??× × ? ? ? ? ? ? ? ?× ?? ? ? ?? ?? ???? ?? ? ??× × ? ?? ?×? ? × ? ? ×× × ? ?? ?? ???? ?? ???? ? × ?? ? ???? ??? × ? ?? ?? ? ?? ? ×?×? ? ??? ×? ? ?× ?? ? ×? ? ?? ?? ? ? ??? ?× ?? ? ? ??? ?? ? ??? ? ?? ?? ?? ? ? ? ? ? ? ? × ×?×? ?? ? ? ??×? ? ?? ? ? ???? ?? ? ? ?× ?? ?? ? ×? ? ×? ?? ? ×× × ? ×× ? ? ? ? ?× ×? ? ? ? ? ? ? ? ? ? ? ? × ? ? ?× ??? ? ? ×× ?? ? ×× ?? ? ? ? ? ? ? ??? ? ? ? ? ? × ? ××? ? ??? ? ? ?? ?? ? ? ×?×? ? ? ? ? × ? ??? ? ?? ? ? ? × × ?? ? ? ?? ? ?? ?? ? ? ?? × ? ?? ???? ? ? ? ?? ? ?? ×? ? ? ×?×? ? ? ?? ? ?? ? ? ?? ? ?? ? ??? ?? ?? ?? ? ×? ? × ? ?× ? ?×? ???× ? ??? ?? ? ?? × ? ?? ? ? ? ?? ??? ?? × ? ? ?? ? ? ? ?? ? ?? ? ? ?? ?× ???× ? ? ? ??? ???? ? ?× ? ?? ? ? ?? ?×? ???× ?? ? ×× × ??? ???? × ?? ? ??? ? ×??? ??? ? ?× ? ? ? ? ? ? ?? ? ?× ? ? × ?× ?? ??? × ? ? ? ?? ?? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ??

??

?? ?

??? ?? ? ???×? ?

? ? ?? ??? ? × ??? ?

tr:Transaction
needed := n/tasks := 0

:User
when(tasks>0)/^task[tasks].abort()/tasks-transaction failed when(tasks=0)

spawning when(tasks<needed)/^newTask(locks,d)/tasks++

when(tasks=needed)

when(suc+ref=tasks and ref>0) transaction succeeded running when(suc=tasks)

ready(n)/suc++

when(tasks=0)

when(tasks>0)/^task[tasks].commit()/tasks--

failed(n)/ref++

when(not got all locks)/^s.lock(i,m,this)

when(not got all locks)/^s.lock(i,m,this)

t1:Task
/locks:=0 locking grant(i,m)/locks++ refuse(i,m)/^tr.failed(n) when(locks>0)/release(locks)/locks-when(got all locks)/s.compute(d,this) failed when(got all locks)/s.compute(d,this) abort() commit() computing done()/^tr.ready(n) ready abort() releasing when(locks=0) computing done()/^tr.ready(n) ready failed abort() commit() abort() asking /locks:=0 locking grant(i,m)/locks++ refuse(i,m)/^tr.failed(n) asking

t2:Task

when(locks>0)/release(locks)/locks--

releasing

when(locks=0)

s1:Server

release()/locks--

give(n,m,t)/^t.grant(n,m)/locks++

s2:Server

release()/locks--

give(n,m,t)/^t.grant(n,m)/locks++

waiting compute(d,t)/tasks++/^newActive(dur(d),t)

lock(n,m,t)/^newRequest(delay(),n,m,t) compute(d,t)/tasks++/^newActive(dur(d),t)

waiting

lock(n,m,t)/^newRequest(delay(),n,m,t)

finished(t)/tasks--/^t.done()

finished(t)/tasks--/^t.done() [prob(p)]/^s.give(n,m,t)

Lock request

Lock request

[prob(p)]/^s.give(n,m,t)

11 00 111 000 11 00
newRequest(d,n,m,t)

asking

1111 0000
after(d)

fail or not

111 000 1 11 0 00
newRequest(d,n,m,t) [prob(1-p)]/^t.refuse(n,m)

asking

1111 0000
after(d)

fail or not

1 0
[prob(1-p)]/^t.refuse(n,m)

Computational task

1 0 1111 0000 1 0
newActive(d,t)

running

11111 00000 1 0
after(d)/^s.finished(t)

Computational task

1111 0000 1 0
newActive(d,t)

running

1 0 11111 00000 1 0
after(d)/^s.finished(t)

? ? ??

? ?? ? ? ??

?

? ? ? ?? ? ? ?? ? ? ?? ? ??? ? ??? ?? ? ?? ??? ? × ?? ? ?? ? ??? ?? ? ?? ? ×? ? ?? ? ?×? ?? ? ? ? ×? ? × ? ×? ? ? ? ? ? ? ?? × ? ? ?? ? ? ? ? ×? ? ? × ? ? ?? ?× ? ??× ? ? ?? ? ?? ?? ? ??? ? ? ? ? ×× ?? ?? ???? ? ??? ?? × ?? ×? ? ?? ? ? ?? × ? ? ? ? × ? ? ?? ? × ? ?? ? ? ×? ? ? ×? ?× ? ?? ? ?× ???? × ? ? ? ? × ??×× ? ?? ? ?? ?× ? ??× ? ? ? ?? ? ? ? ? ? × ? ? ×? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ? × ? ? ??? ?? × ? ?×? ?? ? ??× ?? ?× ? ??× ?? ? ? ? ×? ? ? ? ??? ? × ????× ?? ?? ? ? ? ? ? ??? ? ?? ? ?? ? ? ?? × ? ??? ? ? ?? × ? ?× ? × ?? ? ? ×? ? ? ?? ? ???? ? ? ? ? ?? ? ? ×? ? ??× ?? ? ?? ? ?× × ? ?? ? ? ?? ? ? ?? ?× ? ??× ? ? ? ?? ? ?× ? ? ??? ? ×? ? ??× × ??? × ? ? ? ?? ? ????? ??× ? ? ? ? ? ? ? ? ?? ? ?× ? ?? ? ?× ? ? ??? ?? ? ?? ? ? × ? ? ? ? × × ? ?? ? ?? ? ?? ? ? ????? ? ?? ? ? ??? ? × ??? ? ?? ?? ??? ×× ? × ?× ? ?? × ? ? ×? ? ?? ?× ? ?? ? ×? ?? ? ? × ? ?? ?? ? ? ??? ? ? ? ?? ? ? ? ?? × × ??? ?? × ? ? ? ? × ? ? ??? ? ? ??? ×??? ? ×? ? ??? ?? ? ? ×? ?? ?? ?× ? ?? ?? × ??? ×??? ? ?? ? ? ? × ? ×? ?? ? ? ? ? × ?? ?× ?× ?? ?? × ? ?? ? × ? ?? × ?? ? ? ?? ?? ? ? ?? ? × ×? ? ? ? ?? ?× ? ?? ? ?? ×? ?? ?? × ? ? × × ??? ?? ? ? ×? ??? ? ? ?? ×? ? × ? × ? ? × ??? ? × ? ×? ? ? ? ? ? ? ? ?× ??? ? ? ?? × ? ? ? ?? ?? ? ?× ? ? ? ?? × ? ?? ? ? ? ? ?? ?× ? ?? ? ?? ? ????× ? ?? ? ?? ? ?? ? ?? ? ? ?×? ? ? ? ??× ?

??

? × ? ?? ? ?
start task i *

Task.start *

Running Task.done * Task.refuse *

some succeed

one failed

all done

some failed

all succeeded

abort transaction

Task.commit *

Task.abort *

??? ? ? ?? ?× ? ?? × ? ? ? ? ? ? ?? ? ??? ? ? ?? × ? ? ?? ? ? ? ? × ?? ?× ?× ????? ? ×? ? ? ? ? ? ? ? ? ?? ? ? ×? ? ? ? ×? ? × ?? ? ? ? ?? × ? ?× ? ? ? ? ? ×? ? × ?? ? ? ? ? × ? ? ?× ? ? ? ? ?? ? ×? ? × ??? ? ? ?? ?× ? ?? ? ×? ?? ? ? × ××? × ??? ? ?? ? ???? ? × ? ??? ×??? ? ?? ?× ? ??× ? ? ? ?? ? ? ? ? ?? ? ? ? × ? ×? ? ? ??? ? ? ? ? ? ??? ×? ? ? ?? ?× ? ??× ? ??? ×??? ?? ? ??? ? ×× ××? ? ? ?? ?× ? ??? ? × × ?× ? ??? ? ×× ? ? ? ? ? ?? ? × × ? ?? ? ?? ? ? ?? ? ? ? × ? ×? ? ? ? ?? × ? ? ? × ?? ? ?? ? ??? ? ? ? ? ?? ? ? ???? ? ? ?? ??? ? ? ?? ? ? ?? ?× ? ?? ?? × ?? ×???? ? ? × ? ??? ? ×?? ? ? ×? ? ? ? ?? ? ? × ? ? ? ? ?? ? ? × ??× ? ? ??? ×??? ? ?? ? ? ?? × ? ? ? ?? ? ?? ? ? ×? ? × ? ? ×? ? ??? ? ?? ? ?? × ? ? ? ? ? ?? ? ? ??? ×??? × ?? ? ? ? ? ?? × ? × ? ? ??? ? ? ? ?? ?× ? ??× ? ? ? × ?× ×? ? ??? ? ×? ? ? ? × × ? ? ? ? ×? ? ? ? ?? × ? ? ×? ? ??? ? ? ? ?? ? ? ?? × ? ? ? ? ? ? ?? ? ? ? ??? ? ? ?? ?× ? ×? ? ? ?? ? ? ?? ? ?? × ?? ? ? ??? ×??? ? ×? ? ? ? ? ??? ? ? ?? ?× ? ? ?? × ? ?? ?? ?? ? ? ? ?? ? ? ?? × ? ? ? ? ? × ??? ×??? ? ? ?× ? ? ?? × ? ? ?× ?? ? ? ? ?? ?× ? ?? ?? ?? ?? × ??? ×??? ? ?? ? ? ? ?? ? ??? ×? ? ?? ?? ?× ? ?? ?? ? ? ×? ? × ?? ? ? ????? ? ? ? ???? ? ??? ?? × ? ?? ? ?? ?× ? ?? ?? ?? ?? × ? ?× ? ? ? ?? ?× ? ?? ???? ?? ??? ? ? ??? ? ? ?? × × ? ? ??? ? ? ? ? ? ??? ?? ?? ?? × ?? ?? × ? ? ?? ?× ? ??? ? ? ?? × ? ? ? ?? ?× ? ?? ?? ×? ? ? × ? ?? ? ?? ? ? × × ? ×? × ? ?? ? ?? ? ? ???? ?? ? ? ?? × ?? ? ? × ? ? ????? ? ? ? ?? ? ? ? ? ? ×? ×? ? ? ?? ? ? ? ? ? ?? ? ? ??? ×??? ? ?? ? ?? ?× ? ?? × × ??? ?? ? ?? ?× ? ?? ? ? ??? ×? ??× ?× ? ? × ×? ?? ?? ? ? ? ? × ?? ?× ? ? ?? ? ×? ???? ?? ?? ?? ? × × ? ? ?????? ?? ?? ? ? ×

?? ?? ?? ?× ? ?? ? ?? ? ?
start task i *

Task.start *

Running Task.done * Task.refuse *

some succeed

one failed

all done

some failed

all succeeded

abort transaction

Task.commit *

Task.abort *

? ? ? × ? ?? ?? ?× ? ??? ? × × ? ?? × ?? ? ×? ?? ? × ? ? ? ? ×? ? × ?? ? ?? × ?? ? ? ?? ? ?? ?? ? ?? ? ? ? × ×? × ? × ×? ??×? ? ?? ?× ? ?? ? × ?×? ?? × ?? ? ? ? ? ×? ?? ?? ?× ? ?? ? ? ? × ? ?? ? ?? ? ???? ? ?? ? ?? × ??× ? ??? ? ? ? ? × × ? ? ? ? ? ? ?? ? ?? ????? ? ×? ? ×? ? ? ? ? ? × ???? ? × ?× ????? ? ? ? × ? ?? ?? ?× ? ?? ?? ×? ? ??? × ?? ? ?? ? ?????×? ?? ? ? ? × × ?? ? ?× ? ? ? × ?? ?× ?? ?× ? ?? ?? × ? ?? ? × ??? ?? ? ?????? ?× ?? ? ?? ? × ?? ?× ? ??× ? ?? ? ?? ? ?? ? ? × ? ? ?? ? ? ? ? ??? ×??? ? ?? ?× ? ?? ? ? ? ? × ? ? ?? ? × × ×? ? ? ? ? ×? ?? ?× ? ?? ? ?? ? ? ?? ? ?? ?× ?? ? ? ?? ?× ? ?? ×? ?? ? ??? ? ? ? ? × ? ??? ? ?? ?× ? ??? ? ?? ? ? ?? ?? ? ? × ×? ????× ? ? × × ?? ? ? × ? ? ?? × ? ? ?? ? ? ? ? ?? ?? ??? ?? ?× ? ??× ?? ? ?× ? ? ? ? ? ? ? ?? ?× ? ?? ? ?? ?? ? ? ?? ?? ?× ?? ? ? ?? ?× ? ?? ? ?? ? ??? ? ? ? ? ?? ? ?? ?× ? ??× ? × ? ??? ? ? × ? ???? ???? ? ? × × ?? ? ? × ? ? ?? × ? ? ?? ? ? ? ? × ?? ? ?? × ??× ? ? ? ? ? ?? ×??? ? ? ?? ? ?? ? × ?? ? ×? ? ? ? ? ?? × ? ? ????? ??×? ? ??? ×??? ? ? ?? ? ? ? ?? ?? ??? × ??? ????? ??×? ?? ?? ?? × ? ?? ?? ? ??? ?? ??? ? ? ? ? ? ??? ????? ??? ??× ×? ? ? ? ×? ? ? ? ? ? ??? ? ×??? × ?? × ? ? ?? ? ? ? ?? ? ?? ? × ?? ? ???? ? ?????? ?? ?? ?? ?× ? ??× ??? ×??? ? ?? ? × ??? ? ?? ×?? ? × ? ? ??? ? × ?? ? × ? ? ?? × ?? ? ?? ? ? ? ?? ? ??×? ? ?×? ? ???? ? ?????? ?? ?? ? × ?×? ??? ? ? × ?? ?? ? ? ? ? × ×? ? ? ? × ?? × ? ×× ?? ? ? ?? ? ? ??? ×? ? ?? ? ???? ? ???? ?? ? ? ? × ?? ? ?? ?? ? × ?? ?? ?? ? ?? ? × ??? ? ×? ? ?? ???? ? ????× ? ?? × ? ?× ? ? ??? ? ? ? × × ????? ? ? ?? ? ? ?? ? ?? ? × ? ?? ??? × ? ? ? ?? ?? ?× ? ? ? ? ?? ?? ?? ??? ????? ? ?? ? ?? ?? ? × ?? ??? ? ??? ? ??? ? ????? ?? ??? ×??? ? ?? ????? ? ?? ? ? × × ×?? ? ??? ? ?? ?×? ? ?? ??? ? ?? ? ?×? ? ? ?? ? ?? × ?? ? ? ??? ? ? ???? ?

?? ?? ? ?? ? ? ?? ? ?

lock asking

lock test

lock_select

? × ×? ? ? × ?×? ?? ?? ?× ? ??? ? ?? ? ?? ? ?? ? × ×? × ?? ? ?? ? × ?? ? ? × ? ?? ? ? × ? ??? ?? ? × ? ???? ?? ?× ? ??× ?? ? ??? ?? ?? ? × ? ?? × ? ? ?? ?× ? ?? ? ? ? ? ?? ? ? ? ? ?? ? ??? ? ? ?? ? ? × × ?× ? ? × ?? ?? ? ?? ? ?? ×? ????? ?? ?×? ?? ?×? ? × ? ??? ??? ? ?? ? ? ? ? × ??? ? ?? ×? ?? ?× ? ?? × ?? ? ?? ×?? ? ? ? ? ? ?? ?× ? ??? ? ? ×? × ?? ?×? ?× ? ? × ? ? ?? ?? ? × ?? ?× ?? ?? ? ?? ? ?? ? ???? ?? ? ?? ? ??? ? ? × ×? ? ? ? ?? ? × ?× ?? ? ?? ? ????? ?? ? ? ? ?? ? ? ??? ×??? × ?? ? ??? ? ? ?? × ? ?× ? ? ??? ? ? ? ? ? ? ??? ? ??? ? ? ?? ?× ? ? ??? ?? × ?? ? ? × ?? ? ??? ? ?? ? ?? ? ??? ? ? ?? ×? ? ? × ? ? ?? ?? ?× ? ?? ?? ?× ?× ?? ?? ? ??? ? ?? ?? ? ? × ?? ? × ?? ?× ?× ?? ? ? ? ?? ? ? ? ???

??? ? ? ? ×???×
? ? ? ?? ? ?? ?× ? ?? ? ??? ???× ? ? ?? ? ??? ? ? ?? × ? ?× ? ? ???? ?× ? ? ?? × ??× ×?×? ? ? ? ??? × ?? ?× ? ??? ?? ?×? ? ??×? ? × ?? ?× ? ? ?? × ? ×? ? ? ??? ? ??? ? ?? ? ? ? ×? ?? ?× ? ?? ? ? ? ?? ? ? ×? ? ? ? ×? ? ?× ?? ?× ? ??? ? ? ? ?? ?× ? ?? ? ?? ? ? ×? ? ? ? × ? ? ? ? ? ? ? ? ? ? ? × ?? ? ?? ?× ? ??× ? ? ? ?? ?? ×? ? ? ? ? ?? ?? ? ?? ? ??? ??? ? ?? ?× ? ??× ? ?? ?? ?× ? ? ??×? ?? ?× ? ?? ×? ??× ? ? × ×? ?? ?? ? × ?? × ?? ? ? ??? ?? ? ??×? × ?? ?? ? ? × × ? ?? ? ?? ?? ? ? ?? ×? ? ×? ? ? ??? ? × ?? ?? ?× ? ?? ×? ??× ???? ? ? × ×? ?? ?? × ?? ?? ? ? ?? ? ? ? ?? ×? ? ×? ? ? ??? ? ? ? ????? ? ? ? × ?? ? × ? ? ??? ?? ? ? ?? ?×?

? ? ? ??? ? ? ? ×???× ? ? ?? ??? ?? ?? ???? ? ?? ??? ????? ? ??? ??? ?? ?× ? ?? ?× ? ?? ?? ?? ?? ?? ?? ??? ??? ?? ??? ?? ? ?? ??? ??? ?? × ?× ? ?? ? ? ? ?? ? ? ?? ??? ?? ? ??? ?? ? ??? ?? ???? ?? ? ??? ?? ? ?? ???? ??

? ? ?
?

?

???

? ???

? ? ???? ? ? ????? ? ? ? ? ??? ?×? ? ? ?? ?? ? ?× ? ?? ? ? ?? ? ?× ?? ? ? ?? × ??? ? ? ? ??? × ? ?× ?? × ? ×?? ?? ×?×? ?×? ? ? ? ? ? ? ??× ? × ??? ? ?? ? ? ?? ×? ? × ??? × ? ?? ?? ? ? ? ? ?? ??? ×? ??? ?? ? ? ???? ? ?? ?× ? ? ??? ? ? ? × ? ? ? ? ??×??? ? ? ??? ?× ?? ? ?? ?? ? ? ? ? ? ? × ? ??? ? ??? ? × ? ?? ? ? ?× ? ??? ?? ? ? ??? ? ?? ?? ? ? ×?? ?? ×?×? ?×? ?× ? × ??? ? ??? ?? ? ?× ? ??? ???? ? ? × ?? ×?? ??? ? × ? ×?? ? ? ? ? ? ? ??? ? ? ? ? ???? ? ?? ??? ? ????? ? ?? ? ×?×? ? ? ? ?? ? × ??? ???? × ? ?? × ? ?? ? ?× ? ? ?? ? ×? ? ? ? ? ?? ? ? ? ???? × × ??×× ? ? ? ?×?

?

? ? ×
? ? ? ?× ?? ? ? ?? × ? ?? ?? ? ? ?? ×

?? ? ?× ? ?? ? ???? ????? ?? ? ??× × ?× ? ?? ??? ? × ? ? ?? ???? ?? ? ?? ??? ? ? ??? ? ??? ??? ? ?? ? ?? ?? ?? ?

? ? ?? ?? ???? ? ? ? ?? ?? ? ? ???? ??? ×? ? ?? ? ? ? ? ?? ??? ? × ? ?? ??? ?? ? ?? ? ??? × ?? ?? ? ?? ? ?× ? ? ? ??? ? ? ? ? × ? ??? ?? ?????? ? ? ?? ? ? ? ? ? ? ????? ?? ? ? ??? ?? ????? ? ?? ??× ? × ??? ×? ? ? ?? ? ?? ???? ? ? ? ??? ? ? ??

?? ? ?? ? ?? ???? ?? ? ??? ? ? ??? × ?? ? ? ?×? ?? ?? ???? ? ? ? ? ? ?? ×? ???×? ?? ? ? ? ? ? × ? ??? ? ?? ? ? ??? ? ? ? ? ? ??? × ??? ???? ? ?

? ???? ???? ? ? ???? ? ? ? ? ? ?? ? ?? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ??? ? × ? ?? ?? ? ? ? ???? ? ? ? ? ?? ?? ?? ? ?? ???? ? ? ? ? ? ?? ? ?×? ????? ?? ? ? ???? ×???? ×? ?? ??? ? ? ? ?
× ?? ?? ? ? ? ??

? ?? ? ? ? ??? ? ? ??? ? ? ??? ? × ? ?? ?? ? ? ??× × ?? ×? ?? ?? ×?×? ?× ?× ? ? ? ?? ? ?????? ?? ??? ???? ? ?? ?????× ?? ?? ????? ?? ?? ? ? ??? ? ×? ? ? ? ? ? ??? ???? ? ?? ? ??? ?? ?? ? ? ???? ? ? ?? ?×? ? ? ??? ? ? ? ? ? ? ?? ? ? ?? ? ? ? ?? ?? ×?×? ?× ? ? ×? ? ? ?? ?? ? ? ? ??? ???? ????? ? ? ? ??? ? ? ?? ? ?? ? ?? ?? ? ? ? ?? × ? ????×? ? ???? ?? ? ?? ?? ?? ? ? ? ?? × ? ????× ?? ????? ? ? ? ??? ? ? ?? ? ??? ??? ? ?? ? ?? ?? ? × ?? ?? ? ?? ? ??? ???? ? ? ??? ? ?? ? ? ? ???? ?? ?? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ?? ? ? ? ???? × ? ? ??? ? ?? ?× ??? ???? ? ????? ×? ? ? ??×? ?? ?? ???? ? ? ?? ? ??×???? ???×? ????? ? ? ? ??? ? ? ?? ? ?? ? ?? ?? ? ? ? ?? × ? ????×? ? ???? ?? ? ?? ?? ?? ? ? ? ?? × ? ????× ?? ????? ? ? ? ??? ? ? ?? ? ??? ??? ? ?? ? ?×? ? × ???????? ? ?? ? ? ?? ? ? ? ?? ? ?? ?? ? ?× ?? ?? ××? ? ?? ? ? ? ? ?×? ?? ? ? ? ???? ? ??×?? ? ? ??? ×? ????? ? ??× ×? ?? ? ? ? ??? ? ?? ? ??? ?? ? ?? × ???? ?×?×? ???? ??? ?? ??? × ?? ?? ? ? ??? ? ? ? ? ? ? ????? ? ? ? ? ????? ? ? ?? ??×? ?×? ? × ? ???? ? ? ?? ? ?? ? ×? ?? × ? ? ???? ? ? ? ? ? ??? ? ? ? ? ? ?? ? ×? ?????

?

???


相关文章:
更多相关标签: