6.033 | Spring 2018 | Undergraduate
Computer System Engineering
Week 4: Operating Systems Part IV

Eraser Assignment

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 “Eraser: A Dynamic Data Race Detector for Multithreaded Programs (PDF”) by S. Savage, M. Burrows, G. Nelson, P. Sobalvarro & T. Anderson.

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?
  • Would you use Eraser? If so, in what situations?

Question for Recitation

Before you come to this recitation, write up (on paper) a brief answer to the following (really—we don’t need more than a couple sentences for each question).  

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?)

As always, there are multiple correct answers for each of these questions.

Course Info
As Taught In
Spring 2018
Learning Resource Types
notes Lecture Notes
assignment Written Assignments
group_work Projects with Examples
co_present Instructor Insights