Multi Threading
Multi Threading
A Comprehensive Study on
Real World Concurrency
Bug Characteristics
Shan Lu, Soyeon Park, Eunsoo Seo and Yuanyuan
Zhou
Case Study
Bug pattern study
Bug manifestation study
Bug fix strategies study
Conclusions
CP Characteristics
Bug Pattern
Deadlock bugs
Non-deadlock bugs
Order-violation
Data race
Happened-before property
Atomicity-violation
Others
CP Characteristics
Bug Manifestation
Manifestation conditions
Apache
Web server
Mozilla
Browser suite
Open Office
Office suite
Bug Pattern Study
Bug Pattern Study
Bug Pattern Study
Bug Pattern Study
Bug Manifestation Study
How many threads are involved?
Bug Manifestation Study
How many threads are involved?
Bug Manifestation Study
How many variables are involved?
Bug Manifestation Study
How many variables are involved?
Bug Manifestation Study
How many accesses are involved?
Bug fix Study
Fix strategies
Bug avoidance
Bug fix Study
Fix Strategies
Adding / changing locks
Condition check
Code switch
Algorithm/Data-structure design change
Others
Bug fix Study
Fix Strategies
Adding / Changing Locks
Bug fix Study
Fix Strategy
Condition check
Non-determinism
Some concurrency bugs are very difficult to repeat
Mozilla and occur once in a day bug
Snapshot means:
Write any array element
Read multiple array elements atomically
EXTRA-VI
Wait-Free : each method call takes a finite number of steps
to finish
Nicer guarantee, no starvation