Top Banner
Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia
36

Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

Banker’s Algorithm Implementation

in CPN Tools

Michal ŽarnayDepartment of Transportation Networks

University of Žilina, Slovakia

Page 2: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 2

Outline

• Background

• Banker’s algorithm: modifications and implementation

• Analysis results and conclusion

Page 3: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 3

Background

• Simulation of large and complex logistic nodes using ABAsim architecture

Deadlock states occur

Over one hundred resources

Automatic instead of human control

Tenths of processes at the same time

Page 4: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 4

Resource Allocation System (RAS)

Processes Resources

Limited number

Used repeatedly

Running concurrently Allocated exclusively

Page 5: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

RAS: Modelling in CPN

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

Page 6: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

Process Subnet

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

Page 7: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

Resource Subnet

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

Page 8: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 8

Used Category of RAS

Processes have properties:

Flexible routing

Use of multiple resource types at once

Concurrent processing

Page 9: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

1 1`1 1 1`11 1`1

5

1`R1++1`R2++3`R31 1`2

Branches of Concurrent Processing

Page 10: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 10

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

1 1`1

1 1`1

5

2`R1++2`R2++1`R31 1`2

Variants of Flexible Routing

Page 11: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 11

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

9 3`R1++3`R2++3`R3

21`1++1`2

Process and Resource Instances

Page 12: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 12

Deadlock-Avoidance Policy (DAP)

Processes combine concurrent processing and flexible routing

Chosen: Banker’s algorithm

DAP for such a RAS not found

Page 13: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 13

Banker’s Algorithm (BA)Using information about current system state it attempts to order running process instancesin a sequence, so they can be finished

State is not ordered

State may (not) be safe State is safe

State is ordered

Success? +–

Page 14: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

1 1`1

1 1`2

1 1`11 1`2

4

2`R1++2`R3

Assigning at T7

Request of P2: (0,-1,1)

Allocated Needed Available

R1 R2 R3 R1 R2 R3 R1 R2 R3

P1 0 2 1 0 1 1 2 0 2

P2 1 1 0 0 2 2

Allocated Needed Available

R1 R2 R3 R1 R2 R3 R1 R2 R3

P1 0 2 1 0 1 1 2 1 1

P2 1 0 1 0 2 1

Ordered state: <P1, P2>

Page 15: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 15

Unsafe states

BA Principle

Deadlock states

Safe states

States orderedby BA

Page 16: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 16

Tasks

1.Modify an available version of BA to suit the needs

2.Implement it

3.Test the BA on a model with outlined properties

Page 17: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 17

Why Choosing CPN Tools?

• Fast construction of the model in Petri nets

• Facilities for qualitative analysis of the model

• Availability of language for the BA implementation

Page 18: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 18

Outline

• Background

• Banker’s algorithm: modifications and implementation

• Analysis results and conclusion

Page 19: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 19

Original Data Structures

• For process instances:– Allocated resource units to process instances

– Needed resource units to finish process instances

– Available resource units in the system

• Overall– Set of all process instances– Set of all resource instances

Page 20: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 20

Original Algorithm

• On entering, each process instance declares the maximum number of units of each resource type needed for its execution

• Elaborated versions: supportive routines update the number of remaining needed resources on the run – information related to process stages

Page 21: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

proc

proc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7

T4

T5

T1

P8cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources

3`R1++3`R2++3`R3

cResources

P0

1`1++1`2

cProcessID

Page 22: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 22

Modifications of BA

• Needed renamed to RemainingNeeded

• Change information not fixed to process stages, but relative to it => Change – vector of relative changes for all resource types– Bits encoding– Primary and other descriptions

Page 23: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 23

Bits Encoding

0001 0010

16 2

–18

1 2–

3 released

2 planned for re-allocation

0001 0010

16 2

18

1 2

2 assigned

Page 24: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

BA: 12 Functionsin CPN ML

Links represent calls to functions

Page 25: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 25

Adding BA to CPN Model

• Adding one place

• Adding arcs

• Editing transition guards

Page 26: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

procproc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

[CanItBeAllocated ((proc, vChangeT6), BAData)]

T8

T3

[BADataAmended = ChangeMaxNeed ((proc, vMaxNeedPrimarySecondaryDiff), BAData), CanItBeAllocated ((proc, vChangeT3), BADataAmended)]

T2

[CanItBeAllocated ((proc, vChangeT2), BAData)]

T7[CanItBeAllocated ((proc, vChangeT7), BAData)]

T4 [CanItBeAllocated ((proc, vChangeT4), BAData)]

T5

[CanItBeAllocated ((proc, vChangeT5), BAData)]

T1

[CanItBeAllocated ((proc, vChangeT1), BAData)]

P8

cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources3`R1++3`R2++3`R3

cResources

P0 1`1++1`2

cProcessID

ModifyBAData ((proc, vChangeT9), ChangeMaxNeed ((proc, vInitMaxNeedPrimary), BAData))

ModifyBAData ((proc, vChangeT8), BAData)

ModifyBAData ((proc, vChangeT7), BAData)

ModifyBAData ((proc, vChangeT6), BAData)

ModifyBAData ((proc, vChangeT5), BAData)

ModifyBAData ((proc, vChangeT4), BAData)

ModifyBAData ((proc, vChangeT3), BADataAmended)

ModifyBAData ((proc, vChangeT2), BAData)

BAData

BAData

BAData

BAData

BAData

BAData

BAData

BAData

ModifyBAData ((proc, vChangeT1), BAData)

BAData

Banker's AlgData

vInitBADatacBankerAlgData

9

3`R1++3`R2++3`R32

1`1++1`2

1 1`([(1,[0,0,0]),(2,[0,0,0])],[(1,[2,3,1]),(2,[2,3,1])],[3,3,3])

A dedicated fusion place linked to transitions via a pair of arcs

Page 27: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

1`R1++1`R3

R3

R3

R2R2

R2

2`R2 ++ 1`R3

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

1`R1 ++ 1`R3

proc

proc proc

procproc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

[CanItBeAllocated ((proc, vChangeT6), BAData)]

T8

T3

[BADataAmended = ChangeMaxNeed ((proc, vMaxNeedPrimarySecondaryDiff), BAData), CanItBeAllocated ((proc, vChangeT3), BADataAmended)]

T2

[CanItBeAllocated ((proc, vChangeT2), BAData)]

T7[CanItBeAllocated ((proc, vChangeT7), BAData)]

T4 [CanItBeAllocated ((proc, vChangeT4), BAData)]

T5

[CanItBeAllocated ((proc, vChangeT5), BAData)]

T1

[CanItBeAllocated ((proc, vChangeT1), BAData)]

P8

cProcessID

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

Resources3`R1++3`R2++3`R3

cResources

P0 1`1++1`2

cProcessID

ModifyBAData ((proc, vChangeT9), ChangeMaxNeed ((proc, vInitMaxNeedPrimary), BAData))

ModifyBAData ((proc, vChangeT8), BAData)

ModifyBAData ((proc, vChangeT7), BAData)

ModifyBAData ((proc, vChangeT6), BAData)

ModifyBAData ((proc, vChangeT5), BAData)

ModifyBAData ((proc, vChangeT4), BAData)

ModifyBAData ((proc, vChangeT3), BADataAmended)

ModifyBAData ((proc, vChangeT2), BAData)

BAData

BAData

BAData

BAData

BAData

BAData

BAData

BAData

ModifyBAData ((proc, vChangeT1), BAData)

BAData

Banker's AlgData

vInitBADatacBankerAlgData

9

3`R1++3`R2++3`R32

1`1++1`2

1 1`([(1,[0,0,0]),(2,[0,0,0])],[(1,[2,3,1]),(2,[2,3,1])],[3,3,3])

input data

output data after the change

Page 28: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

ModifyBAData ((proc, vChangeT8), BAData)

BAData

BAData

BAData

BAData

BAData

BAData

BAData

BAData

BAData

1`R1++1`R3

R3

R3

R2R2

R2

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

proc

proc proc

procproc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7[CanItBeAllocated ((proc, vChangeT7), BAData)]

T4

T5

T1

P8cProcessID

Banker's AlgData

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

ResourcesP0

1`1++1`2

[BADataAmended = ChangeMaxNeed ((proc, vMaxNeedPrimarySecondaryDiff), BAData), CanItBeAllocated ((proc, vChangeT3), BADataAmended)]

[CanItBeAllocated ((proc, vChangeT4), BAData)]

vInitBADatacBankerAlgData

cProcessID

[CanItBeAllocated ((proc, vChangeT2), BAData)]

3`R1++3`R2++3`R3

cResources

[CanItBeAllocated ((proc, vChangeT1), BAData)]1`R1 ++ 1`R3

2`R2 ++ 1`R3

[CanItBeAllocated ((proc, vChangeT6), BAData)]

[CanItBeAllocated ((proc, vChangeT5), BAData)]

ModifyBAData ((proc, vChangeT9), ChangeMaxNeed ((proc, vInitMaxNeedPrimary), BAData))

ModifyBAData ((proc, vChangeT5), BAData)

ModifyBAData ((proc, vChangeT7), BAData)

ModifyBAData ((proc, vChangeT6), BAData)

ModifyBAData ((proc, vChangeT4), BAData)

ModifyBAData ((proc, vChangeT2), BAData)

ModifyBAData ((proc, vChangeT3), BADataAmended)

ModifyBAData ((proc, vChangeT1), BAData)

1 1`([(1,[0,0,0]),(2,[0,0,0])],[(1,[2,3,1]),(2,[2,3,1])],[3,3,3])

9

3`R1++3`R2++3`R3

21`1++1`2

Allocation

No allocation BA is called only by an allocation request (7 from 9 transitions)

Page 29: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

ModifyBAData ((proc, vChangeT8), BAData)

BAData

BAData

BAData

BAData

BAData

BAData

BAData

BAData

BAData

1`R1++1`R3

R3

R3

R2R2

R2

2`R1

1`R2++1`R3

1`R1 ++ 1`R2

proc

proc proc

procproc

proc

proc

proc

procproc

proc

proc

procproc

proc

proc

R2

proc

proc

proc

proc

proc

proc

T9

T6

T8

T3T2

T7[CanItBeAllocated ((proc, vChangeT7), BAData)]

T4

T5

T1

P8cProcessID

Banker's AlgData

P7 cProcessID

P5

cProcessID

P3

cProcessID

P9 cProcessID

P6

cProcessID

P2 cProcessID

P4

cProcessID

P1cProcessID

ResourcesP0

1`1++1`2

[BADataAmended = ChangeMaxNeed ((proc, vMaxNeedPrimarySecondaryDiff), BAData), CanItBeAllocated ((proc, vChangeT3), BADataAmended)]

[CanItBeAllocated ((proc, vChangeT4), BAData)]

vInitBADatacBankerAlgData

cProcessID

[CanItBeAllocated ((proc, vChangeT2), BAData)]

3`R1++3`R2++3`R3

cResources

[CanItBeAllocated ((proc, vChangeT1), BAData)]1`R1 ++ 1`R3

2`R2 ++ 1`R3

[CanItBeAllocated ((proc, vChangeT6), BAData)]

[CanItBeAllocated ((proc, vChangeT5), BAData)]

ModifyBAData ((proc, vChangeT9), ChangeMaxNeed ((proc, vInitMaxNeedPrimary), BAData))

ModifyBAData ((proc, vChangeT5), BAData)

ModifyBAData ((proc, vChangeT7), BAData)

ModifyBAData ((proc, vChangeT6), BAData)

ModifyBAData ((proc, vChangeT4), BAData)

ModifyBAData ((proc, vChangeT2), BAData)

ModifyBAData ((proc, vChangeT3), BADataAmended)

ModifyBAData ((proc, vChangeT1), BAData)

1 1`([(1,[0,0,0]),(2,[0,0,0])],[(1,[2,3,1]),(2,[2,3,1])],[3,3,3])

9

3`R1++3`R2++3`R3

21`1++1`2

Change from primaryto secondary variant

Specific update, when changing the variants

Page 30: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 30

Outline

• Background

• Banker’s algorithm: modifications and implementation

• Analysis results and conclusion

Page 31: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 31

Analysis via CPN Tools

• Main criterion: number of deadlock states in the occurrence graphs of 2 models:– without BA– with BA

• Validation and verification phases:– All transitions occurring in the model without BA must

occur in the model with BA– All reachable markings must form a home space

• Restriction of state space by BA

Page 32: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 32

Analysis Results

Banker’s algorithm– Avoids deadlock states– Does not influence behaviour of the model

inappropriately– Restricts the state space

Model versionState space

Deadlock states States TransitionsWithout BA 12 152 378With BA 0 113 260

Page 33: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 33

Benefits

• Banker’s algorithm works for the outlined RAS with processes containing at the same time:– Concurrent processing– Flexible routing– Use of multiple resource types at once

• CPN Tools – integration of the properties:– Fast construction of the model in Petri nets– Facilities for qualitative analysis of the model– Availability of language for the BA implementation

Page 34: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 34

Shortcomings

Implementation of BA in 12 CPN ML functions is rather complicated compared to sequential programming

Use of external routines?

Maintaining information about global states makes the CPN more difficult to read

Use of hierarchy

Page 35: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

University of ŽilinaDept. of Transportation Networks

CPN'08 Workshop 35

Further Issues

• Complex models produce too large state spaces– Algorithm should be effective – verify it!– Challenge: How to make its run more effective for

such systems?

• More complicated way of allocation and release of resources – already implemented and requires further testing

• More complicated versions of BA – are they effective and beneficial for our purpose?

Page 36: Banker’s Algorithm Implementation in CPN Tools Michal Žarnay Department of Transportation Networks University of Žilina, Slovakia.

Thank you for your attention!

[email protected]