Before reading the Eraser paper, refresh your memory on what race conditions are and the troubles that they can cause by revisiting sections 5.2.2, 5.2.3, and 5.2.4 of the textbook.
Then, read the Eraser paper.
To help you as you read:
- After Section 2, you should understand the lockset algorithm. For instance, you should know under what condition Eraser signals a data race, and why that condition was chosen.
- After Section 3, you should understand Eraser's implementation details. For instance, you should know under what conditions it reports false positives.
- Section 4 details the authors' evaluation of and experience with Eraser. This section is useful to convince yourself that Eraser is (or isn't!) useful, that it performs (or doesn't perform) well, etc.
As you read, think about the following:
- Why can't the lockset algorithm catch every race condition?
Question for Recitation
Before you come to this recitation, you'll turn in a brief answer to the following questions (really—we don't need more than a sentence or so for each question). Your TA will be in touch about exactly how to turn that in.
Your answers to these questions should be in your own words, not direct quotations from the paper.
- What are the goals of Eraser?
- How was it designed to meet those goals?
- Why do we need a tool like Eraser? (Or why do the authors believe that we need such a tool?)
- Who should use Eraser (should you?)? In what situations?