Inferring Locking for Atomic Sections. Michael Hicks, Jeffrey S. Foster, and Polyvios Pratikakis. In On-line Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT), June 2006. http://www.cs.purdue.edu/homes/jv/events/TRANSACT/transact-06.tgz.

Software transactions allow the programmer to specify sections of code that should be serializable, without the programmer needing to worry about exactly how atomicity is enforced. Recent research proposes using optimistic concurrency to implement transactions. In this short paper, we propose a pessimistic lock-based technique that uses the results of static whole-program analysis to enforce atomicity. The input to our analysis is a program that contains programmer-specified atomic sections and calls to fork. We present a sharing inference algorithm that uses the results of points-to analysis to determine which memory locations are shared. Our analysis uses continuation effects to track the locations accessed after a point in the program. This allows data to be thread-local before a fork and thread-shared afterward. We then present a mutex inference algorithm that determines a sufficient set of locks to guard accesses to shared locations. After mutex inference, a compiler adds the appropriate lock acquires and releases to the beginning and end of atomic sections. Our algorithm is efficient, and provides parallelism according to precision of the alias analysis while minimizing the number of required locks.

[ .pdf ]

@INPROCEEDINGS{hicks06atomic,
  TITLE = {Inferring Locking for Atomic Sections},
  AUTHOR = {Michael Hicks and Jeffrey S. Foster and Polyvios Pratikakis},
  BOOKTITLE = {On-line Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT)},
  NOTE = {\url{http://www.cs.purdue.edu/homes/jv/events/TRANSACT/transact-06.tgz}},
  YEAR = 2006,
  MONTH = JUN
}

This file has been generated by bibtex2html 1.69