Suresh Jagannathan, Permissive Monitor: Cheating on Your Lock Without Getting Caught
Abstract: Concurrent programs are typically structured so that accesses to shared data are mediated via abstractions that provide mutual exclusion. Mutual exclusion ensures that interleavings of actions by different threads do not lead to states that would prevent the semblance of serial execution from being maintained. We explore an alternative (called a permissive\monitor) that considers program execution in terms of serializable execution of concurrent accesses within the region it protects.
While the intuition underlying serializability is easily stated, its specification and translation into practice is complicated by issues such as language memory models and dynamic nesting of monitors. To address these issues, we define a semantics for permissive monitors in the context of a Java-like core language with a relaxed data consistency memory model. We provide soundness results that relate the behavior of programs executed using permissive monitors with those executed using mutual-exclusion monitors, and present implementation details as well as experimental results on real-world Java applications to validate its benefits.
This work is joint with Adam Welc, Jan Vitek, and Antony Hosking.
Bio: Suresh Jagannathan is Associate Professor of Computer Science at Purdue University. Prior to joining Purdue, he was a Senior Research Scientist at the NEC Research Institute. His interests are in program analysis, concurrent and distributed systems, and functional programming. He received his MS and Ph.d from MIT.