Advertisement

Cooperative Concurrency for a Multicore World

(Extended Abstract)
  • Jaeheon Yi
  • Caitlin Sadowski
  • Stephen N. Freund
  • Cormac Flanagan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7186)

Abstract

Developing reliable multithreaded software is notoriously difficult, due to the potential for unexpected interference between concurrent threads. Even a familiar construct such as “x++” has unfamiliar semantics in a multithreaded setting, where it must in general be considered a non-atomic read-modify-write sequence, rather than a simple atomic increment. Understanding where thread interference may occur is a critical first step in understanding or validating a multithreaded software system.

Keywords

Program Language Design Multithreaded Program Concurrent Thread Atomicity Violation Memory Consistency Model 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Flanagan, C., Freund, S.N.: Types for safe locking: Static race detection for Java. ACM Transactions on Programming Languages and Systems 28(2), 207–255 (2006)CrossRefGoogle Scholar
  2. 2.
    Adve, S.V., Gharachorloo, K.: Shared memory consistency models: A tutorial. IEEE Computer 29(12), 66–76 (1996)CrossRefGoogle Scholar
  3. 3.
    Bond, M.D., Coons, K.E., McKinley, K.S.: PACER: Proportional detection of data races. In: Conference on Programming Language Design and Implementation (PLDI), pp. 255–268 (2010)Google Scholar
  4. 4.
    Erickson, J., Musuvathi, M., Burckhardt, S., Olynyk, K.: Effective data-race detection for the kernel. In: Operating Systems Design and Implementation (OSDI), pp. 1–16 (2010)Google Scholar
  5. 5.
    Farzan, A., Madhusudan, P.: Monitoring Atomicity in Concurrent Programs. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 52–65. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Flanagan, C., Freund, S.N.: Fasttrack: efficient and precise dynamic race detection. Commun. ACM 53(11), 93–101 (2010)CrossRefGoogle Scholar
  7. 7.
    Flanagan, C., Freund, S.N., Lifshin, M., Qadeer, S.: Types for atomicity: Static checking and inference for Java. Transactions on Programming Languages and Systems (TOPLAS) 30(4), 1–53 (2008)CrossRefGoogle Scholar
  8. 8.
    Flanagan, C., Freund, S.N., Yi, J.: Velodrome: A sound and complete dynamic atomicity checker for multithreaded programs. In: Conference on Programming Language Design and Implementation (PLDI), pp. 293–303 (2008)Google Scholar
  9. 9.
    Naik, M., Aiken, A., Whaley, J.: Effective static race detection for Java. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, pp. 308–319 (2006)Google Scholar
  10. 10.
    O’Callahan, R., Choi, J.-D.: Hybrid dynamic data race detection. In: Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 167–178 (2003)Google Scholar
  11. 11.
    Pratikakis, P., Foster, J.S., Hicks, M.: Context-sensitive correlation analysis for detecting races. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, pp. 320–331 (2006)Google Scholar
  12. 12.
    Sadowski, C., Yi, J.: Applying usability studies to correctness conditions: A case study of cooperability. In: Onward! Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU), pp. 2:1–2:6 (2010)Google Scholar
  13. 13.
    Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.E.: Eraser: A dynamic data race detector for multi-threaded programs. ACM Transactions on Computer Systems (TOCS) 15(4), 391–411 (1997)CrossRefGoogle Scholar
  14. 14.
    von Praun, C., Gross, T.R.: Static detection of atomicity violations in object-oriented programs. Journal of Object Technology, 103–122 (2003)Google Scholar
  15. 15.
    Wang, L., Stoller, S.D.: Runtime analysis of atomicity for multithreaded programs. IEEE Transactions on Software Engineering 32, 93–110 (2006)CrossRefGoogle Scholar
  16. 16.
    Yi, J., Disney, T., Freund, S.N., Flanagan, C.: Types for precise thread interference. Technical Report UCSC-SOE-11-22, The University of California at Santa Cruz (2011)Google Scholar
  17. 17.
    Yi, J., Flanagan, C.: Effects for cooperable and serializable threads. In: Workshop on Types in Language Design and Implementation (TLDI), pp. 3–14 (2010)Google Scholar
  18. 18.
    Yi, J., Sadowski, C., Flanagan, C.: Cooperative reasoning for preemptive execution. In: Symposium on Principles and Practice of Parallel Programming (PPoPP), pp. 147–156 (2011)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jaeheon Yi
    • 1
  • Caitlin Sadowski
    • 1
  • Stephen N. Freund
    • 2
  • Cormac Flanagan
    • 1
  1. 1.University of California at Santa CruzUSA
  2. 2.Williams CollegeUSA

Personalised recommendations