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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
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)
Adve, S.V., Gharachorloo, K.: Shared memory consistency models: A tutorial. IEEE Computer 29(12), 66–76 (1996)
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)
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)
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)
Flanagan, C., Freund, S.N.: Fasttrack: efficient and precise dynamic race detection. Commun. ACM 53(11), 93–101 (2010)
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)
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)
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)
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)
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)
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)
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)
von Praun, C., Gross, T.R.: Static detection of atomicity violations in object-oriented programs. Journal of Object Technology, 103–122 (2003)
Wang, L., Stoller, S.D.: Runtime analysis of atomicity for multithreaded programs. IEEE Transactions on Software Engineering 32, 93–110 (2006)
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)
Yi, J., Flanagan, C.: Effects for cooperable and serializable threads. In: Workshop on Types in Language Design and Implementation (TLDI), pp. 3–14 (2010)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yi, J., Sadowski, C., Freund, S.N., Flanagan, C. (2012). Cooperative Concurrency for a Multicore World. In: Khurshid, S., Sen, K. (eds) Runtime Verification. RV 2011. Lecture Notes in Computer Science, vol 7186. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-29860-8_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-29860-8_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-29859-2
Online ISBN: 978-3-642-29860-8
eBook Packages: Computer ScienceComputer Science (R0)