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
Similar content being viewed by others
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)