Asynchronous systems components are hard to write, hard to reason about, and (not coincidentally) hard to mechanically verify. In order to achieve high performance, asynchronous c...
Prakash Chandrasekaran, Christopher L. Conway, Jos...
One common technique for preventing data races in multi-threaded programs is to ensure that all accesses to shared locations are consistently protected by a lock. We present a too...
Polyvios Pratikakis, Jeffrey S. Foster, Michael W....
Self-managed software requires monitoring and code changes to an executing program. One technology that enables such self management is software dynamic translation (SDT), which a...
Naveen Kumar, Jonathan Misurda, Bruce R. Childers,...
Well-defined memory consistency models are necessary for writing correct parallel software. Developing and understanding formal specifications of hardware memory models is a chal...
Recent software systems usually feature an automated failure reporting component, with which a huge number of failures are collected from software end-users. With a proper support...