Atomic
We are investigating issues related to software transactional
memory, a concurrency primitive that is easier-to-use and
harder-to-implement than locks. Our work has considered language
design, semantics, (software) implementation, and evaluation (for
reliability and performance). Prior work has resulted in several
publications and prototypes from the group; see below.
Currently, we are considering two questions that are important for
integrating transactions with sensible semantics and efficient
implementations into modern programmling langauges.
- Region-Based Dynamic Separation for STM Haskell:
We have implemented dynamic separation in Haskell. Dynamic separation is a
recent approach to software transactional memory (STM) that achieves
strongly-atomic semantics with performance comparable to that of a
weakly-atomic STM. STM Haskell, a lazy-versioning STM library for
Haskell, previously supported strongly-atomic semantics via static
separation, and we have found dynamic separation to be a natural
extension of the library’s interface. Our implementation of dynamic
separation had several novel extensions. First, we improved support
for mutable data structures by providing protection regions, special
objects that hold the protection state for multiple
references. Second, we expanded the set of protection states so that
the interface is more expressive. Third, we allowed transactions to
modify the protection state of references.
- Abstract Signatures for Proving Escape Actions are Unobservable:
Many transactional-memory systems include "back doors" that
let programmers include code that is not part of the transaction and
is not undone if the transaction fails to commit. Open nesting and
escape actions are similar constructs that achieve this effect. These
constructs are difficult to use correctly. We are proposing one
quite-strict definition of correctness: that outside of some
abstraction boundary, the code with an escape action should be
observationally equivalent to similar code where the action is part of
the transaction. We are identifying proof techniques for establishing
correctness under this definition. Like in
representation-independence proofs, the use of abstract signatures is essential.
Current contacts:
Laura Effinger-Dean,
Matthew Kehrt,
Dan Grossman
Relevant publications:
Available software (download after following links):