Next:
5. Introducing the Case:
Up:
Automatic Generation of an
Previous:
4. Learning Algorithm
Contents
II
. The Case: Conflicting Concurrency Interfaces
Subsections
5
. Introducing the Case: Concurrent Systems
5
.
1
Introduction
5
.
2
Concurrency
5
.
3
The Whiteboard Case
5
.
3
.
1
The Interface
5
.
3
.
2
The Horizontally Moving Dot Actor
5
.
3
.
3
The Moving Line Actor
5
.
3
.
4
The Floodfill Actor
5
.
4
Race Conditions
5
.
4
.
1
A Selection of Race Conditions
5
.
4
.
2
Different Solutions towards Race Conditions
5
.
5
Centralized Atomic Operations
5
.
6
Non-Waiting Atomic Operations & Starvation
5
.
6
.
1
Non-Reentrant Synchronization Semantics
5
.
6
.
2
Reentrant Synchronization Semantics
5
.
6
.
3
Discussion
5
.
7
Waiting Atomic Operations & Deadlocks
5
.
7
.
1
Non-Reentrant Synchronization Semantics
5
.
7
.
2
Reentrant Synchronization Semantics
5
.
7
.
3
Discussion
5
.
7
.
4
Different Solutions to Deadlocks
5
.
8
Locking Resources & Livelocks
5
.
8
.
1
Granular Operations: Locks
5
.
8
.
2
Problems of Fine Grained Locks: Livelocks
5
.
8
.
3
Solutions to Livelocks
5
.
9
Transactions & Partial Failure
5
.
10
Peer to Peer Concurrency & Distributed Transactions
5
.
11
Commonalities & Variabilities
5
.
12
Summary
6
. Conflicting Interfaces
6
.
1
The Nature of Interface Conflicts
6
.
1
.
1
Interface Usage is of Vital Importance
6
.
1
.
2
Not All Conflicts can be Mediated
6
.
1
.
3
Adaptors Need to Cooperate
6
.
1
.
4
Brief Summary
6
.
2
A Selection of Interface Conflicts
6
.
2
.
1
Selecting a Set of Interface Conflicts
6
.
2
.
2
Designing a Representative Subset of Conflicts
6
.
3
One-One Conflicts on One Variability
6
.
3
.
1
Syntax
6
.
3
.
2
Reentrancy
6
.
3
.
3
Control Flow
6
.
3
.
4
Granularity
6
.
3
.
5
Layering
6
.
3
.
6
Transition
6
.
4
One-Multi Conflicts
6
.
4
.
1
The Empty Server 1-x Conflict
6
.
4
.
2
An Up-scale 1-x Granularity Conflict
6
.
4
.
3
A Down-scale 1-x Granularity Conflict
6
.
4
.
4
A Non Waiting Server 1-x Conflict
6
.
5
Multi-Multi Conflicts
6
.
6
Summary
Werner 2004-03-07