Exceptions and side-effects in atomic blocks

In recent work we’ve been looking at the design and implementation of a new “atomic” keyword as an extension to the Java programming language. It allows programmers to perform a series of heap accesses atomically without needing to use mutual exclusion locks. In a paper at OOPSLA 2003 we showed that data structures built using it could perform well and scale to large multi-processor systems.

In this talk I’ll present some initial thoughts on extending this design in two ways. The first of these is how to provide an explicit “abort” operation to abandon execution of an atomic block and to automatically undo any updates made within it. The second extension is to enable external I/O to be performed within an atomic block.

Both extensions are based on a single “external action” abstraction, allowing code running within an atomic block to request that a given pre-registered operation be executed outside the block. Providing these features without opening a back-door to circumvent language-based security turned out to be a much more intricate problem than it first appeared.

Speaker Details

Tim Harris received his PhD from the University of Cambridge, UK, where he has since been a Lecturer in the Systems Research Group. He is joining Microsoft Research Cambridge from July 2004. His main research interests are in practical concurrent and distributed systems and the programming languages and tools to support them. Current research topics include non-blocking concurrency control primitives, distributed debugging for e-Science applications and the XenoServers public distributed computing project. He is co-author of the undergraduate text book “Operating Systems” published by Pearson and is a Teaching Fellow at Churchill College, Cambridge, UK.

Date:
Speakers:
Tim Harris
Affiliation:
Churchill College, Cambridge, UK
    • Portrait of Jeff Running

      Jeff Running

    • Portrait of Tim Harris

      Tim Harris