On Helping and Stacks
Vitaly Aksenov, INRIA Paris / ITMO University Petr Kuznetsov, Telecom ParisTech Anatoly Shalyto, ITMO University NETYS 2018
1 / 21
On Helping and Stacks Vitaly Aksenov, INRIA Paris / ITMO University - - PowerPoint PPT Presentation
On Helping and Stacks Vitaly Aksenov, INRIA Paris / ITMO University Petr Kuznetsov, Telecom ParisTech Anatoly Shalyto, ITMO University NETYS 2018 1 / 21 Takeaway Linearization-based helping [Censor-Hillel et al., 2015]: a process takes a
1 / 21
2 / 21
3 / 21
4 / 21
5 / 21
6 / 21
7 / 21
8 / 21
8 / 21
8 / 21
8 / 21
8 / 21
8 / 21
9 / 21
W1 . . . Wn Wn+1 R1 . . .
. . . Ri
x
. . . Rm W1 . . . Wn
R1 . . . Ri
y
. . . Wn+1 . . . Rm
10 / 21
W1
enq(2)
. . . Wn
enq(n + 1)
Wn+1
enq(n + 2)
R1
deq()
2 . . .
enq(1)
. . . Ri deq() i + 1 . . . Rn+1
deq()
n + 2 W1
enq(2)
. . . Wn
enq(n + 1)
enq(1)
R1
deq()
2 . . . Ri deq() i + 1 . . . Wn+1
enq(n + 2)
. . . Rn+1
deq()
1
11 / 21
12 / 21
W1
push(2)
. . . Wn
push(n + 1)
Wn+1
push(n + 2)
R1
pop()
n + 2 . . .
push(1)
. . . Ri
pop()
. . . Rn+1
pop()
W1
push(2)
. . . Wn
push(n + 1)
push(1)
R1
pop()
1 . . . Ri
pop()
. . . Wn+1
push(n + 2)
. . . Rn+1
pop() 13 / 21
W1
push(2)
. . . Wn
push(n + 1)
Wn+1
push(n + 2)
push(1)
R1
pop()
1 . . . Ri
pop()
. . . Rn+1
pop()
W1
push(2)
. . . Wn
push(n + 1)
push(1)
R1
pop()
1 . . . Ri
pop()
. . . Wn+1
push(n + 2)
. . . Rn+1
pop() 13 / 21
14 / 21
14 / 21
14 / 21
14 / 21
14 / 21
14 / 21
14 / 21
15 / 21
16 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
1 h ← ǫ 2 op1 ← push(1) 3 id2 ← 2 4 while true: 5
6
7
8
9
10
11
12
13
14
15
16
17
18
17 / 21
18 / 21
19 / 21
20 / 21
21 / 21