SlideShare a Scribd company logo
1 of 60
Shared Objects
and
Synchronization

Dr. C.V. Suresh Babu

1
Major chip manufacturers have recently
announced a major paradigm shift:
Intel … [has] decided to focus its development efforts on
«dual core» processors … with two engines instead of one,
allowing for greater efficiency because the processor
workload is essentially shared.

Multi-processors and Multicores
vs
faster processors

2
The clock speed of a processor
cannot be increased without
overheating.

But
More and more processors can fit in
the same space.
3
Transistor
count still
rising
Clock speed
flattening
sharply

4
Speed will be achieved by having several
processors work on independent parts of a
task.

But
The processors would occasionally need to
pause and synchronize.

But
If the task is shared, then pure parallelism is
usually impossible and, at best, inefficient.
5
Concurrent computing for
the masses
Forking processes might be more frequent
But…
Concurrent accesses to shared objects might
become more problematic and harder.
6
How do devices synchronize?

Concurrent processes

Shared object

7
How do devices synchronize?

Locking (mutual exclusion)

8
How do devices synchronize?

One process at a time

Locked object
9
How do devices synchronize?
Locking (mutual exclusion)
Difficult: 50% of the bugs reported in
Java come from the use of
« synchronized »
Fragile: a process holding a lock
prevents all others from progressing
Other: deadlock, livelock, priority
inversion, etc.
10
Why is locking hard? are
Processes
asynchronous
Page faults
Pre-emptions
Failures
Cache misses, …
A process can be delayed by millions of
instructions …
11
Alternative to locking?

12
Wait-free atomic objects
Wait-freedom: every process that
invokes an operation eventually returns
from the invocation
o Robust … unlike locking.
Atomicity: every operation appears to
execute instantaneously.
o As if the object were locked.
13
In short
This course shows how to
wait-free implement high-level
atomic objects out of more
primitive base objects.

14
Concurrent processes

Shared object

15
Agenda
1.

Introduction:

2.

2. Model:
•

Processes and objects

•

Atomicity

•

Wait-freedom

3. Exemples

16
Processes
We assume a finite set of processes:
– Processes have unique identifiers.
– Processes are denoted as « p1, …, pN »
or « p, q, r »
– Processes know each other.
– Processes can coordinate via shared objects.

17
Processes
We assume a finite set of processes:
– Each process models a sequential program.
– Each clock tick each process takes a step.
– In each step, a process:
a) Performs some computation. (LOCAL)
b) Initiates an operation on a shared object. (GLOBAL)
c) Receives a response from an operation. (GLOBAL)

– We make no assumptions on process
(relative) speeds. (Asynchronous)
18
Processes
p1
p2

p3

19
Processes
Crash Failures:
A process either executes the algorithm
assigned to it or crashes.
A process that crashes does not recover.
A process that does not crash in a given
execution (computation or run) is called
correct (in that execution).
20
Processes
p1
p2

crash

p3

21
On objects and processes
Processes interact via shared objects:
A process can initiate an operation
on a particular object.
Every operation is expected to
return a reply.
Each process can initiate only one
operation at a time.
22
Processes
operation
p1
operation
p2
operation
p3

23
On objects and processes
Sequentiality:
–

After invoking an operation op1 on
some object O1…

–

A process does not invoke a new
operation on the same or on some
other object…

–

Until it receives the reply for op1.

Remark . Sometimes we talk about
operations when we should be talking
about operation invocations

24
Processes
operation
p1
operation
p2
operation
p3

25
Atomicity
We mainly focus in this course on how
to implement atomic objects.

Atomicity (or linearizability):
–

Every operation appears to execute
at some indivisible point in time.

–

This is called the linearization point.

–

This point is between the invocation
and the reply.
26
Atomicity
operation
p1
operation
p2
operation
p3

27
Atomicity
operation
p1
operation
p2
operation
p3

28
Atomicity (the crash case)
operation
p1
operation
p2
operation
p3

crash

29
Atomicity (the crash case)
operation
p1
operation
p2
operation
p3

30
Atomicity (the crash case)
operation
p1
operation
p2

p3

31
Atomicity
 Theorem:
Consider executions of algorithm A in which every
operation completes.
If every such execution is atomic, then A guarantees
atomicity in all executions (even those with operations
that do not complete).

32
Wait-freedom
We mainly focus in this course on wait-free
implementations
An implementation is wait-free if:
•

Any correct process that invokes an
operation eventually gets a reply.

•

This does not depend on any other process.

•

Other processes may crash or be very slow.
33
Wait-freedom
operation
p1
p2

p3

34
Wait-freedom
Wait-freedom conveys the robustness of
the implementation
With a wait-free implementation, a
process gets replies despite the crash of
the n-1 other processes
Note that this precludes implementations
based on locks (i.e., mutual exclusion).
35
Wait-freedom
operation
p1
p2

crash

p3

crash

36
Motivation
Most synchronization primitives
(problems) can be precisely expressed
as atomic objects (implementations)
Studying how to ensure robust
synchronization boils down to studying
wait-free atomic object implementations

37
Example 1
The reader/writer synchronization
problem corresponds to the register
object
Basically, the processes need to read
or write a shared data structure such
that the value read by a process at a
time t, is the last value written before t

38
Register
A register has two operations:
–

read()

–

write()

Assume (for simplicity) that:
– a register contains an integer
– the register is denoted by x
– the register is initially 0
39
Read/Write Register
Sequential specification:

read()
return(x)
write(v)
x ← v;
return(ok)
40
Atomicity?
write(1) - ok
p1
read() - 2
p2
write(2) - ok
p3

41
Atomicity?
write(1) - ok
p1
read() - 2
p2
write(2) - ok
p3

42
Atomicity?
write(1) - ok
p1
read() - 1
p2
write(2) - ok
p3

43
Atomicity?
write(1) - ok
p1
read() - 1
p2
write(2) - ok
p3

44
Atomicity?
write(1) - ok
p1
read() - 1
p2
read() - 1
p3

45
Atomicity?
write(1) - ok
p1
read() - 1
p2
read() - 0
p3

46
Atomicity?
write(1) - ok
p1
read() - 0
p2
read() - 0
p3

47
Atomicity?
write(1) - ok
p1
read() - 0
p2
read() - 0
p3

48
Atomicity?
write(1) - ok
p1
read() - 0
p2
read() - 0
p3

49
Atomicity?
write(1) - ok
p1
read() - 1
p2
read() - 0
p3

50
Atomicity?
write(1) - ok
p1
read() - 1
p2
read() - 1
p3

51
Example 2
Producer/consumer synchronization:
corresponds to the queue object.
Producer processes create items;
consumer processes use items.
Requirements:
–

An item cannot be consumed by 2 processes.

–

The first item produced is the first consumed
(FIFO).
52
Queue
A queue has two operations:
enqueue() and dequeue()
We assume that a queue internally
maintains a list x which supports:
–

append(): put an item at the end of the list;

–

remove(): remove an element from the head
of the list.
53
Sequential specification
dequeue()
if (x = 0) then return(nil);
else return(x.remove())
enqueue(v)
x.append(v);
return(ok)
54
Atomicity?
enq(x) - ok
p1
enq(y) - ok

deq() - y

p2
deq() - x
p3

55
Atomicity?
enq(x) - ok
p1
enq(y) - ok

deq() - y

p2
deq() - x
p3

56
Atomicity?
enq(x) - ok
p1
deq() - y
p2
enq(y) - ok
p3

57
Atomicity?
enq(x) - ok
p1
deq() - x
p2
enq(y) - ok
p3

58
Content
(1) Implementing registers
(2) The power & limitation of registers
(3) Universal objects & synchronization number
(4) The power of time & failure detection
(5) Tolerating failure prone objects
(6) Anonymous implementations
(7) Transaction memory

59
Conclusion
This topic shows how to wait-free
implement high-level atomic objects
out of basic objects

Remark: unless explicitely stated otherwise:
objects mean atomic objects and
implementations are wait-free.
60

More Related Content

What's hot

Concurrent talk
Concurrent talkConcurrent talk
Concurrent talk
rahulrevo
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
Wayne Jones Jnr
 
Process Synchronization And Deadlocks
Process Synchronization And DeadlocksProcess Synchronization And Deadlocks
Process Synchronization And Deadlocks
tech2click
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
vinay arora
 

What's hot (20)

Reactive programming with examples
Reactive programming with examplesReactive programming with examples
Reactive programming with examples
 
SYNCHRONIZATION
SYNCHRONIZATIONSYNCHRONIZATION
SYNCHRONIZATION
 
6 Synchronisation
6 Synchronisation6 Synchronisation
6 Synchronisation
 
Concurrent talk
Concurrent talkConcurrent talk
Concurrent talk
 
Os3
Os3Os3
Os3
 
Operating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and DeadlocksOperating Systems - Process Synchronization and Deadlocks
Operating Systems - Process Synchronization and Deadlocks
 
Operating System-Ch6 process synchronization
Operating System-Ch6 process synchronizationOperating System-Ch6 process synchronization
Operating System-Ch6 process synchronization
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
OS_Ch7
OS_Ch7OS_Ch7
OS_Ch7
 
Concurrent Programming in Java
Concurrent Programming in JavaConcurrent Programming in Java
Concurrent Programming in Java
 
Ch7 Process Synchronization galvin
Ch7 Process Synchronization galvinCh7 Process Synchronization galvin
Ch7 Process Synchronization galvin
 
Structured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin CoroutinesStructured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin Coroutines
 
Introduction to Reactive Java
Introduction to Reactive JavaIntroduction to Reactive Java
Introduction to Reactive Java
 
Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)
 
Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!
 
Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"Operating Systems - "Chapter 5 Process Synchronization"
Operating Systems - "Chapter 5 Process Synchronization"
 
Process Synchronization And Deadlocks
Process Synchronization And DeadlocksProcess Synchronization And Deadlocks
Process Synchronization And Deadlocks
 
Contiki introduction II-from what to how
Contiki introduction II-from what to howContiki introduction II-from what to how
Contiki introduction II-from what to how
 
Re-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for XtextRe-engineering Eclipse MDT/OCL for Xtext
Re-engineering Eclipse MDT/OCL for Xtext
 
Process Synchronization
Process SynchronizationProcess Synchronization
Process Synchronization
 

Viewers also liked

C323-RiskManagementPrinciplesandApplications-AssignmentOne
C323-RiskManagementPrinciplesandApplications-AssignmentOneC323-RiskManagementPrinciplesandApplications-AssignmentOne
C323-RiskManagementPrinciplesandApplications-AssignmentOne
Mark Heath - BA Hons, MSc, MCIPS
 

Viewers also liked (9)

C323-RiskManagementPrinciplesandApplications-AssignmentOne
C323-RiskManagementPrinciplesandApplications-AssignmentOneC323-RiskManagementPrinciplesandApplications-AssignmentOne
C323-RiskManagementPrinciplesandApplications-AssignmentOne
 
HR Process Consulting
HR Process ConsultingHR Process Consulting
HR Process Consulting
 
Activity Box Flyer
Activity Box FlyerActivity Box Flyer
Activity Box Flyer
 
Книга "Банатски вкусотии и ястия от другаде... част 2"
Книга "Банатски вкусотии и ястия от другаде... част 2"Книга "Банатски вкусотии и ястия от другаде... част 2"
Книга "Банатски вкусотии и ястия от другаде... част 2"
 
Книга "Банатски вкусотии и ястия от другаде..."
Книга "Банатски вкусотии и ястия от другаде..."Книга "Банатски вкусотии и ястия от другаде..."
Книга "Банатски вкусотии и ястия от другаде..."
 
C321-CorporateFinance-AssignmentTwo
C321-CorporateFinance-AssignmentTwoC321-CorporateFinance-AssignmentTwo
C321-CorporateFinance-AssignmentTwo
 
Graphss
GraphssGraphss
Graphss
 
Query optimization and challenges in DDBMS with Review Algorithms.
Query optimization and challenges in DDBMS with Review Algorithms.Query optimization and challenges in DDBMS with Review Algorithms.
Query optimization and challenges in DDBMS with Review Algorithms.
 
ICT Unit 1
ICT Unit 1ICT Unit 1
ICT Unit 1
 

Similar to Shared objects and synchronization

Computer network (8)
Computer network (8)Computer network (8)
Computer network (8)
NYversity
 
Os2 2
Os2 2Os2 2
Os2 2
issbp
 
Lecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxLecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptx
Amanuelmergia
 

Similar to Shared objects and synchronization (20)

Concurrency
ConcurrencyConcurrency
Concurrency
 
Ch3-2
Ch3-2Ch3-2
Ch3-2
 
CH05.pdf
CH05.pdfCH05.pdf
CH05.pdf
 
cs2110Concurrency1.ppt
cs2110Concurrency1.pptcs2110Concurrency1.ppt
cs2110Concurrency1.ppt
 
The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)The International Journal of Engineering and Science (The IJES)
The International Journal of Engineering and Science (The IJES)
 
Effective java item 80 and 81
Effective java   item 80 and 81Effective java   item 80 and 81
Effective java item 80 and 81
 
Nondeterminism is unavoidable, but data races are pure evil
Nondeterminism is unavoidable, but data races are pure evilNondeterminism is unavoidable, but data races are pure evil
Nondeterminism is unavoidable, but data races are pure evil
 
Memory model
Memory modelMemory model
Memory model
 
Computer network (8)
Computer network (8)Computer network (8)
Computer network (8)
 
Algorithm analysis.pptx
Algorithm analysis.pptxAlgorithm analysis.pptx
Algorithm analysis.pptx
 
An introduction to_rac_system_test_planning_methods
An introduction to_rac_system_test_planning_methodsAn introduction to_rac_system_test_planning_methods
An introduction to_rac_system_test_planning_methods
 
AA_Unit 1_part-I.pptx
AA_Unit 1_part-I.pptxAA_Unit 1_part-I.pptx
AA_Unit 1_part-I.pptx
 
Async and parallel patterns and application design - TechDays2013 NL
Async and parallel patterns and application design - TechDays2013 NLAsync and parallel patterns and application design - TechDays2013 NL
Async and parallel patterns and application design - TechDays2013 NL
 
Multicore Processors
Multicore ProcessorsMulticore Processors
Multicore Processors
 
Oracle real application clusters system tests with demo
Oracle real application clusters system tests with demoOracle real application clusters system tests with demo
Oracle real application clusters system tests with demo
 
Os2 2
Os2 2Os2 2
Os2 2
 
Asynchronous Python A Gentle Introduction
Asynchronous Python A Gentle IntroductionAsynchronous Python A Gentle Introduction
Asynchronous Python A Gentle Introduction
 
Process Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux KernelProcess Scheduler and Balancer in Linux Kernel
Process Scheduler and Balancer in Linux Kernel
 
Lecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptxLecture 5- Process Synchronization (1).pptx
Lecture 5- Process Synchronization (1).pptx
 
Operating Systems
Operating SystemsOperating Systems
Operating Systems
 

More from Dr. C.V. Suresh Babu

More from Dr. C.V. Suresh Babu (20)

Data analytics with R
Data analytics with RData analytics with R
Data analytics with R
 
Association rules
Association rulesAssociation rules
Association rules
 
Clustering
ClusteringClustering
Clustering
 
Classification
ClassificationClassification
Classification
 
Blue property assumptions.
Blue property assumptions.Blue property assumptions.
Blue property assumptions.
 
Introduction to regression
Introduction to regressionIntroduction to regression
Introduction to regression
 
DART
DARTDART
DART
 
Mycin
MycinMycin
Mycin
 
Expert systems
Expert systemsExpert systems
Expert systems
 
Dempster shafer theory
Dempster shafer theoryDempster shafer theory
Dempster shafer theory
 
Bayes network
Bayes networkBayes network
Bayes network
 
Bayes' theorem
Bayes' theoremBayes' theorem
Bayes' theorem
 
Knowledge based agents
Knowledge based agentsKnowledge based agents
Knowledge based agents
 
Rule based system
Rule based systemRule based system
Rule based system
 
Formal Logic in AI
Formal Logic in AIFormal Logic in AI
Formal Logic in AI
 
Production based system
Production based systemProduction based system
Production based system
 
Game playing in AI
Game playing in AIGame playing in AI
Game playing in AI
 
Diagnosis test of diabetics and hypertension by AI
Diagnosis test of diabetics and hypertension by AIDiagnosis test of diabetics and hypertension by AI
Diagnosis test of diabetics and hypertension by AI
 
A study on “impact of artificial intelligence in covid19 diagnosis”
A study on “impact of artificial intelligence in covid19 diagnosis”A study on “impact of artificial intelligence in covid19 diagnosis”
A study on “impact of artificial intelligence in covid19 diagnosis”
 
A study on “impact of artificial intelligence in covid19 diagnosis”
A study on “impact of artificial intelligence in covid19 diagnosis”A study on “impact of artificial intelligence in covid19 diagnosis”
A study on “impact of artificial intelligence in covid19 diagnosis”
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

Shared objects and synchronization

Editor's Notes

  1. BC03 Welcome back. I am Seth Gilbert, postdoc in Rachid’s group. Giving a few lectures when Rachid is out of town. Graduated MIT. My research focuses on distributed algorithms for highly dynamic, rapidly changing systems, such as peer-to-peer networks and wireless networks. Much of my focus recently has been on wireless networks.
  2. First dual core: 2001
  3. Today: new intel computers are all dual-core., I.e., two cores, and they sell 4-core processors. AMD also. Sun T2000 Niagara has 8 cores. Intel prototype: 80 cores (2006) --- within 5 years, by 2011 -- to market. (>1 teraflop trillion ops/second) Important implications for how we write software: no free speedup.
  4. Example: big database search. Very parallel. Little synchronization. But, inserting data into database: can be high contention. Or consider double-ended queue: low contention between push/pop when queue is big; high contention when queue is small.
  5. Easy to fork processes. Hard to synchronize and deal with conflicts.
  6. Goal of today is to explain what we mean by concurrent computing, why it is important, and what we mean by robust.
  7. Unique identifiers make a big difference! Anyone think of a problem that cannot be solved if you do not have unique identifiers?
  8. For example if the operation of p1 is a WRITE operation, and the operation of p2 is a READ operation, then p2 retrieves data from p1.
  9. Two options… Either complete the operation, or erase it all together.