|
Slide
|
Title
|
Slide |
Title |
|
1
|
Process Synchronization
|
2
|
Background
|
|
3
|
Bounded-Buffer
|
4
|
BoundedBuffer (Cont.)
|
|
5
|
Animation: Bounded-Buffer with Counter
|
6
|
Animation: Problem with Bounded-Buffer with Counter
|
|
7
|
The CriticalSection Problem
|
8
|
Solution to CriticalSection Problem
|
|
9
|
Initial Attempts to Solve Problem
|
10
|
Algorithm 1
|
|
11
|
Algorithm 2
|
12
|
Algorithm 3
|
|
13
|
Bakery Algorithm
|
14
|
Bakery Algorithm (Cont.)
|
|
15
|
Bakery Algorithm (Cont.)
|
16
|
Synchronization Hardware
|
|
17
|
Mutual Exclusion with TestandSet
|
18
|
Semaphore
|
|
19
|
Example: Critical Section for n Processes
|
20
|
Animation: Mutual Exclusion with Semaphores
|
|
21
|
Semaphore Implementation
|
22
|
Implementation (Cont.)
|
|
23
|
Semaphore as General Synchronization Tool
|
24
|
Animation: Semaphores as Process Synchronization
|
|
25
|
Deadlock and Starvation
|
26
|
Two Types of Semaphores
|
|
27
|
Implementing S as a Binary Semaphore
|
28
|
Implementing S (Cont.)
|
|
29
|
Classical Problems of Synchronization
|
30
|
BoundedBuffer Problem
|
|
31
|
BoundedBuffer Problem (Cont.)
|
32
|
BoundedBuffer Problem (Cont.)
|
|
33
|
Readers-Writers Problem
|
34
|
Readers-Writers Problem (Cont.)
|
|
35
|
DiningPhilosophers Problem
|
36
|
DiningPhilosophers Problem (Cont.)
|
|
37
|
Critical Regions
|
38
|
Critical Regions (Cont.)
|
|
39
|
Example - Bounded Buffer
|
40
|
Bounded Buffer Example (Cont.)
|
|
41
|
Implementation: region x when B do S
|
42
|
Implementation (Cont.)
|
|
43
|
Implementation (Cont.)
|
44
|
Monitors
|
|
45
|
Monitors (Cont.)
|
46
|
Dining Philosophers Example
|
|
47
|
Monitor Implementation Using Semaphores
|
48
|
Monitor Implementation (Cont.)
|
|
49
|
Monitor Implementation (Cont.)
|
50
|
Monitor Implementation (Cont.)
|
|
51
|
Solaris 2
|
52
|
Atomic Transactions
|
|
53
|
LogBased Recovery
|
54
|
LogBased Recovery (Cont.)
|
|
55
|
Checkpoints - Reduce Recovery Overhead
|
56
|
Concurrent Atomic Transactions
|
|
57
|
Concurrent Atomic Transactions (Cont.)
|
58
|
Example of a Concurrent Serializable Schedule
|
|
59
|
Concurrent Atomic Transactions (Cont.)
|
60
|
Concurrent Atomic Transactions (Cont.)
|
|
61
|
Schedule Possible under Timestamp Protocol
|