• Aucun résultat trouvé

Self-Stabilizing K-out-of-L Exclusion on Tree Networks

N/A
N/A
Protected

Academic year: 2022

Partager "Self-Stabilizing K-out-of-L Exclusion on Tree Networks"

Copied!
89
0
0

Texte intégral

(1)

Self-Stabilizing

K-out-of-L Exclusion on Tree Networks

Stéphane Devismes, VERIMAG Joint work with:

– Ajoy K. Datta (Univ. Of Nevada)

– Florian Horn (LIAFA)

(2)

Roadmap

• Recall on Self-stabilization

• Definition of the problem

• The solution

• Conclusion and perspectives

(3)

Roadmap

• Recall on Self-stabilization

• Definition of the problem

• The solution

• Conclusion and perspectives

(4)

Self-Stabilization: Closure + Convergence

(5)

Self-Stabilization: Closure + Convergence

(6)

Self-Stabilization: Closure + Convergence

Illegitimate States Legitimate States

(7)

Self-Stabilization: Closure + Convergence

(8)

Self-Stabilization: Closure + Convergence

Closure

(9)

Self-Stabilization: Closure + Convergence

Closure

(10)

Self-Stabilization: Closure + Convergence

Closure

(11)

Self-Stabilization: Closure + Convergence

Convergence

(12)

Self-Stabilization: Closure + Convergence

Convergence

(13)

Self-Stabilization: Closure + Convergence

Convergence

(14)

Property:

Tolerance to Transient Faults

(15)

Roadmap

• Recall on Self-stabilization

• Definition of the problem

• The solution

• Conclusion and Perspectives

(16)

K-out-of-L Exclusion [Raynal, 91]

L resource units

• Requests from 1 to K resource units

(K≤L)

(17)

K-out-of-L Exclusion

• 3 property to ensure:

Safety

Fairness

Efficiency

(18)

Safety

• At any time:

– Each resource unit is used by at most one process – Each process uses at most K resource units

At most L resource units are available

(19)

Fairness

• Each request (of at most K units) is satisfied in finite time

(i.e. the process then uses the resource units it holds in a special

section of code called critical section)

(20)

Efficiency

(21)

Efficiency

• « As many requests as possible must

be satisfied simultaneously »

(22)

Efficiency

• « As many requests as possible must

be satisfied simultaneously »

(23)

Efficiency

• « As many requests as possible must be satisfied simultaneously »

• More formally: (K,L)-Liveness

(24)

(K,L)-Liveness

3?

2?

1?

(25)

(K,L)-Liveness

3?

2?

1?

(26)

Waiting Time

« The maximum number of time, all other

processes can enter in the critical

section before some process p, starting

from the moment requests the critical

section »

(27)

Roadmap

• Recall on Self-stabilization

• Definition of the problem

• The solution

• Conclusion and perspectives

(28)

Model

(29)

Model

• Message-passing

• Bounded process memories

(30)

Model

• Message-passing

• Bounded process memories

• FIFO bidirectional links

(31)

Model

• Message-passing

• Bounded process memories

• FIFO bidirectional links

• Topology : oriented tree

(32)

Model

• Message-passing

• Bounded process memories

• FIFO bidirectional links

• Topology : oriented tree

• Necessary condition [Gouda-Multari, 91]:

– Bounded link capacity (CMAX)

(33)

Approach

• Token-based (resource units = tokens)

• Modular:

– Non Self-stabilizing K-out-of-L Exclusion

– Self-stabilizing Controller

(34)

DFS circulation

(35)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

(36)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

(37)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

{0}

(38)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

{0}

(39)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

{0,2}

(40)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

{0,2}

(41)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

{0,2,2}

<CS>

(42)

First idea:

K-out-of-L Exclusion = L-circulation

0 2

1 3?

(43)

Deadlocks

r

3? 2?

2? 2?

0

0

2

0 0

0 0

0

0 1

1 2 3 1

(44)

Deadlocks

r

3? 2?

2? 2?

0

0

2

0 0

0 0

0

0 1

1 2 3 1

{1}

{0} {0}

{0,0}

(45)

Solution

• Circulation of a special token : the pusher

• Upon receiving the pusher:

a node releases all its resource tokens

if its request is not satisfied

(46)

Livelock

0

0 0

1

1?

1?

2?

(47)

Livelock

0

0 0

1

1?

1?

2? {0} {0}

{0}

(48)

Livelock

0

0 0

1

1?

1?

2? {0} {0}

{0}

(49)

Livelock

0

0 0

1

1?

1?

2? {0} {0}

{0}

(50)

Livelock

0

0 0

1

2?

(51)

Livelock

0

0 0

1

1?

1?

2?

(52)

Solution

• Circulation of a Priority Token:

– A requesting process keeps the Priority Token while its request is unsatisfied

– The Priority Token cancels the effect of the Pusher Token

(53)

Self-Stabilization: The Controller

(54)

Self-Stabilization: The Controller

• After transient faults:

– Some tokens may have disappeared

– Some tokens may been duplicated

(55)

Self-Stabilization: The Controller

• After transient faults:

– Some tokens may have disappeared – Some tokens may been duplicated

• Solution: a Controller Token counts and

regulates the number of tokens

(56)

Example: Count the Resource Tokens

(57)

Example: Count the Resource Tokens

{0,1}

{0,1}

{0,1}

(58)

Example: Count the Resource Tokens

0       

{0,1}

{0,1}

{0,1}

(59)

Example: Count the Resource Tokens

0       

{0,1}

{0,1}

{0,1}

1

(60)

Example: Count the Resource Tokens

{0,1}

{0,1}

{0,1}

1

1       

(61)

Example: Count the Resource Tokens

{0,1}

{0,1}

{0,1}

1       

1

(62)

Example: Count the Resource Tokens

{0,1}

{0,1}

{0,1}

1       

2

(63)

Example: Count the Resource Tokens

{0,1}

{0,1}

{0,1}

2

2       

(64)

Example: Count the Resource Tokens

• At the end of the traversal:

– The number of token is known

• Too much tokens : RESET

• Lake of tokens : Creation at the root

(65)

How to stabilize the Controller ?

• Implemented as a Self-Stabilizing DFTC

using the Varghese Counter Flushing

(66)

Self-Stabilizing DFTC

r

(67)

Self-Stabilizing DFTC

r

(68)

Self-Stabilizing DFTC

0

0

r

1

1 0

1

(69)

Self-Stabilizing DFTC

0

0

r

1

1 0

1

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(70)

Self-Stabilizing DFTC

0

0

r

1

1 0

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(71)

Self-Stabilizing DFTC

0

0

r

1

1 0

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(72)

Self-Stabilizing DFTC

0

0

r

1

0

0

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(73)

Self-Stabilizing DFTC

0

0

r

1

0

0

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(74)

Self-Stabilizing DFTC

0

0

r

1

0

0

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(75)

Self-Stabilizing DFTC

0

0

r

0

0

0 0

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(76)

Self-Stabilizing DFTC

0

r

0

0 0

1 1

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(77)

Self-Stabilizing DFTC

0

r

0

0 0

1 1

Stabilize using

(n-1)(2CMAX+1)+1 values

TokenHolder:

• Receive MesVal from a child and MyVal = MesVal

• Receive MesVal from Parent and MyVal ≠ MesVal

(78)

Roadmap

• Recall on Self-stabilization

• Definition of the problem

• The solution

• Conclusion and perspectives

(79)

Conclusion

(80)

Conclusion

• Waiting Time: L*(2n-3) 2

(81)

Conclusion

• Waiting Time: L*(2n-3) 2

• Oriented Tree -> Arbitrary Rooted Network

(Huang-Chen BFS Tree)

(82)

Conclusion

• Waiting Time: L*(2n-3) 2

• Oriented Tree -> Arbitrary Rooted Network (Huang-Chen BFS Tree)

• Bounded/Unbounded Link Capacity

(Katz & Perry)

(83)

Perspectives

(84)

Perspectives

• Compute the convergence time

(85)

Perspectives

• Compute the convergence time

• Enhance the waiting time ?

(86)

Perspectives

• Compute the convergence time

• Enhance the waiting time ?

• Reactive solution ?

(87)

Perspectives

• Compute the convergence time

• Enhance the waiting time ?

• Reactive solution ?

• Fault-Containment ?

(88)

Thank you!

(89)

(K,L)-Liveness

• Let V be the set of processes

• Let I be a subset of processes that execute their critical section forever (in particular they hold some resource units forever)

• Let α be the number of resource units held by I

• Let R be the subset of V - I such that any process in R is a requestor

• Let r

max

by the maximal request of a process in R

• If R ≠Ø and r

max

≤ L - α then at least one member of R eventually

Références

Documents relatifs

New regulations on CSR reporting in France seem to need time to be fully embraced by companies in their reporting practices, while CSR reporting in late-capitalist economies

Such algorithms in multi-hop wireless networks do not try to minimize the number of used colors, but when the graph degree is bounded by a small constant (as it is the case in

La partie sur l’espace a été découpée en deux parties : une première case concerne l’arrivée dans la salle où a lieu l’activité de relaxation et ce que nous notons

approach introduced by Li (1991), named SIR-I in the following, and for SIR-II (see Scott, 1994), the choice of dimension K is based on statistical nested test procedures..

En réunissant l’ensemble des données et à partir des triangulations effectuées, nous avons identifié trois grandes étapes qui donnent à voir l’initiation puis l’évolution

Distribution of activities of the hospital epidemiologist during the study period (1995-1997) in five major categories: epidemiology, quality assessment (QA), infection control

One paper considers astronomical parameters (the solar shape) and all the other papers are devoted to electromagnetic phenomena (solar flares, sunspot cycle, long

Her research interests include animation for computer graphics, topological and physical modeling of 3D deformable objects, par- allel algorithms, biomechanical simulation of soft