Office 558C, Huxley Building,
*** I have recently completed my PhD, entitled "Lock Inference for Java." You can find my thesis here. ***
Prior to this, I completed a four-year undergraduate MEng Computing degree also at the department. During my final year, I had the fortune of working with David Cunningham on atomicity for concurrent programs.
Atomicity provides strong guarantees against errors caused by unanticipated thread interactions, but is difficult for programmers to implement directly with low-level concurrency primitives. This has led to research on automated techniques for providing atomicity, such as using transactional memory (TM). However, this approach has the limitation of not being able to support system calls (without serialising all atomic sections).
Lock inference is another technique, which statically infers locks sufficient to ensure atomicity without causing deadlock. One possibility is to acquire a global lock before executing each atomic section, ensuring they execute in mutual exclusion. However, this cripples concurrency as non-interfering atomic sections cannot execute in parallel.
My research looks at inferring fine-grained locks to allow as much concurrency as possible, while balancing the overheads of lock acquisition and deadlock prevention. I am also interested in a hybrid implementation of transactional memory with lock inference.