Atomicity Violation in Multithreaded Applications and Its Detection in Static Code Analysis Process
Source abstract
Abstract
This paper is a contribution to the field of research dealing with the parallel computing, which is used in multithreaded applications. The paper discusses the characteristics of atomicity violation in multithreaded applications and develops a new definition of atomicity violation based on previously defined relationships between operations, that can be used to atomicity violation detection. A method of detection of conflicts causing atomicity violation was also developed using the source code model of multithreaded applications that predicts errors in the software.
Source: crossref · Quality: baseline
Research context
OpenAlex topics: Parallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Cloud Computing and Resource Management
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
Affiliations
Faculty of Electronics and Computer Science, Koszalin University of Technology, Sniadeckich 2,75-453 Koszalin, Poland
References (28)
Show source-provided references
1. Multithreaded Application Model
2. Giebas, D., and Wojszczyk, R. (2020). Deadlocks Detection in Multithreaded Applications Based on Source Code Analysis. Appl. Sci., 10.10.3390/app10020532 ↗
3. Woo, J., Choi, H., and Lee, J. (2020). Empirical Performance Analysis of Collective Communication for Distributed Deep Learning in a Many-Core CPU Environment. Appl. Sci., 10.10.3390/app10196717 ↗
4. Moreno-Díaz, R., Pichler, F., and Quesada-Arencibia, A. (2018). Reversed Amdahl’s Law for Hybrid Parallel Computing. Computer Aided Systems Theory—EUROCAST 2017, Springer International Publishing.10.1007/978-3-319-74727-9 ↗
5. Oh, Y.R., Park, K., and Park, J.G. (2020). Online Speech Recognition Using Multichannel Parallel Acoustic Score Computation and Deep Neural Network (DNN)- Based Voice-Activity Detector. Appl. Sci., 10.10.3390/app10124091 ↗
6. Automated Atomicity-Violation Fixing10.1145/1993316.1993544 ↗
7. Park, S., Lu, S., and Zhou, Y. (2009). CTrigger: Exposing Atomicity Violation Bugs from Their Hiding Places, ACM. ACM SIGARCH Computer Architecture News.10.1145/1508244.1508249 ↗
8. Park, C., and Sen, K. (2008, January 9–14). Randomized active atomicity violation detection in concurrent programs. Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Atlanta, GA, USA.10.1145/1453101.1453121 ↗
9. Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs10.1145/982962.964023 ↗
10. Performance Modeling Using Queueing Petri Nets
11. Static Detection of Atomicity Violations in Object-Oriented Programs10.5381/jot.2004.3.6.a5 ↗
12. Zhou, Y., Lu, S., and Tucek, J.A. (2013). Atomicity Violation Detection Using Access Interleaving Invariants. (8,533,681), U.S. Patent.
13. Dias, R.J., Pessanha, V., and Lourenço, J.M. (2012, January 6–8). Precise detection of atomicity violations. Proceedings of the Haifa Verification Conference, Haifa, Israel.10.1007/978-3-642-39611-3_8 ↗
14. Ceze, L. (2019, October 09). Detecting and Avoiding Atomicity Violations. Available online: https://www.nii.ac.jp/userimg/lectures/LuisCeze/nii-lecture4.pdf.
15. Stroustrup, B. (2013). The C++ Programming Language, Addison-Wesley. [4th ed.].
16. Chew, L., and Lie, D. (2010, January 13–15). Kivati: Fast detection and prevention of atomicity violations. Proceedings of the 5th European Conference on Computer Systems, Paris, France.10.1145/1755913.1755945 ↗
17. Yang, Y., Gringauze, A., Wu, D., and Rohde, H.K. (2013). Detecting Data Race and Atomicity Violation via Typestate-Guided Static Analysis. (8,510,722), U.S. Patent.
18. AVIO: Detecting atomicity violations via access interleaving invariants10.1145/1168917.1168864 ↗
19. A serializability violation detector for shared-memory server programs
20. Tongping, L., Zhou, J., Silvestro, S., and Liu, H. (2019). Defeating Deadlocks in Production Software. (Application No. 16/159,234), U.S. Patent.
21. Sasturkar, A., Agarwal, R., Wang, L., and Stoller, S.D. (2005, January 15–17). Automated type-based analysis of data races and atomicity. Proceedings of the tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, Chicago, IL, USA.10.1145/1065944.1065956 ↗
22. Wang, C., Limaye, R., Ganai, M., and Gupta, A. (2010, January 20–28). Trace-based symbolic analysis for atomicity violations. Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Paphos, Cyprus.10.1007/978-3-642-12002-2_27 ↗
23. (2019, October 12). TIOBE Index. Available online: https://www.tiobe.com/tiobe-index/.
24. Chang, X., Dou, W., Gao, Y., Wang, J., Wei, J., and Huang, T. (2019, January 25–31). Detecting atomicity violations for event-driven Node.js applications. Proceedings of the 41st International Conference on Software Engineering, Montreal, QC, Canada.10.1109/ICSE.2019.00073 ↗
25. Yu, Z., Song, L., and Zhang, Y. (2019). Fearless Concurrency? Understanding Concurrent Programming Safety in Real-World Rust Software. arXiv.
26. Roberson, M., and Boyapati, C. (2020, November 11). A Static Analysis for Automatic Detection of Atomicity Violations in Java Programs. Available online: https://www.eecs.umich.edu/techreports/cse/2011/CSE-TR-569-11.pdf.
27. Chen, Q., Wang, L., Yang, Z., and Stoller, S.D. (2009, January 22–29). HAVE: Detecting atomicity violations via integrated dynamic and static analysis. Proceedings of the International Conference on Fundamental Approaches to Software Engineering, York, UK.10.1007/978-3-642-00593-0_30 ↗
28. Huss, E. (2020, November 11). The C Library Reference Guide. Available online: http://www.fortran-2000.com/ArnaudRecipes/Cstd/.