UC BERKELEY
EECS technical reports
TECHNICAL REPORTS


EECS-2010-39.pdf
Conditions of Use

Archive Home Page

Atomic Shelters: Coping with Multi-core Fallout

Authors:
Anderson, Zachary Ryan
Gay, David
Technical Report Identifier: EECS-2010-39
April 9, 2010
EECS-2010-39.pdf

Abstract: In this paper we introduce a new method for pessimistically ensuring the atomicity of atomic sections. Similar to previous systems using locks, our system allows programmers to annotate the types of objects with the shelters --- an alternative to locks inspired by the Jade programming language --- that protect them, and indicate the sections of code to be executed atomically with atomic sections. A static analysis can then determine from which shelters protection is needed for the atomic sections to run atomically. Unlike previous systems, our shelter-based atomic sections are implemented such that they can provide atomicity and deadlock-freedom without the need for whole-program analyses or transactional memory, while imposing only a small annotation burden on the programmer and making only a straightforward change to the underlying type-system. We have implemented shelters-based atomic sections for C, and applied our implementation to 11 benchmarks totaling 100k lines of code including the STAMP benchmark suite, and three multithreaded programs. Our system's performance is competitive with both explicit locking and a mature software transactional memory implementation.