PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Order violation in multithreaded applications and its detection in static code analysis process

Treść / Zawartość
Identyfikatory
Warianty tytułu
Języki publikacji
EN
Abstrakty
EN
The subject presented in the paper concerns resource conflicts, which are the cause of order violation in multithreaded applications. The work focuses on developing conditions that can be implemented as a tool for allowing to detect these conflicts in the process of static code analysis. The research is based on known errors reported to developers of large applications such as Mozilla Firefox browser and MySQL relational database system. These errors could have been avoided by appropriate monitoring of the source code.
Rocznik
Strony
103--117
Opis fizyczny
Bibliogr. 21 poz., fig.
Twórcy
  • Faculty of Electronics and Computer Science, Koszalin University of Technology, Śniadeckich 2,75-453 Koszalin, Poland
  • Faculty of Electronics and Computer Science, Koszalin University of Technology, Śniadeckich 2,75-453 Koszalin, Poland
Bibliografia
  • [1] Abbaspour Asadollah, S., Sundmark, D., Eldh, S., & Hansson, H. (2017). Concurrency bugs in open source software: a case study. Journal of Internet Services and Applications, 8, 4. https://doi.org/10.1186/s13174-017-0055-2
  • [2] Abdulhamid, M., & Kinyua, N. (2020). Software for recognition of car number plate. Applied Computer Science, 16(1), 73–84. https://doi.org/10.23743/acs-2020-06
  • [3] Andrew, J., Mcpherson, A. J., Nagarajan, V., Sarkar, S., & Cintra, M. (2015). Fence Placement for Legacy Data-Race-Free Programs via Synchronization Read Detection. ACM Trans. Archit. Code Optim., 12(4), 46. https://doi.org/10.1145/2835179
  • [4] Bishop, M., & Dilger, M. (1996). Checking for Race Conditions in File Accesses. Computing Systems, 9(2), 131–152.
  • [5] Cai, Y., Wu, S., & Chan, W. K. (2014). ConLock: a constraint-based approach to dynamic checking on deadlocks in multithreaded programs. In Proceedings of the 36th International Conference on Software Engineering ICSE 2014 (pp. 491–502). https://doi.org/10.1145/2568225.2568312
  • [6] Chen, D., Jiang, Y., Xu, C., Ma, C., & Lu, J. (2018). Testing multithreaded programs via thread speed control. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018) (pp. 15–25). https://doi.org/10.1145/3236024.3236077
  • [7] Chew, L., & Lie, D. (2010). Kivati: fast detection and prevention of atomicity violations. In Proceed-ings of the 5th European conference on Computer systems (EuroSys '10) (pp. 307–320). Association for Computing Machinery. https://doi.org/10.1145/1755913.1755945
  • [8] Cygan, S., Borowik, B., & Borowik, B. (2018). Street lights intelligent system, based on the Internet of Things koncept. Applied Computer Science, 14(1), 5–15. https://doi.org/10.23743/acs-2018-01
  • [9] Giebas, D., & Wojszczyk, R. (2018). Graphical representations of multithreaded applications. Applied Computer Science, 14(2), 20–37. https://doi.org/10.23743/acs-2018-10
  • [10] Giebas, D., & Wojszczyk, R. (2020a). Multithreaded Application Model. Advances in Intelligent Systems and Computing, 1004, 93–103. https://doi.org/10.1007/978-3-030-23946-6_11
  • [11] Giebas, D., & Wojszczyk, R. (2020b). Atomicity Violation in Multithreaded Applications and Its Detection in Static Code Analysis Process. Applied Sciences, 10(22), 8005. https://doi.org/10.3390/app10228005
  • [12] Giebas, D., & Wojszczyk, R. (2020c). Deadlocks Detection in Multithreaded Applications Based on Source Code Analysis. Applied Sciences, 10(2), 532. https://doi.org/10.3390/app10020532
  • [13] Jin, G., Song, L., Zhang, W., Lu, S., & Liblit, B. (2011). Automated atomicity-violation fixing. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '11) (pp. 389–400). https://doi.org/10.1145/1993498.1993544
  • [14] Lu, S., Park, S., Seo, E., & Zhou, Y. (2008). Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In Proceedings of the 13th international conference on Architectural support for programming languages and operating systems (ASPLOS XIII) (pp. 329–339). https://doi.org/10.1145/1346281.1346323
  • [15] Netzer, R., & Miller, B. P. (1992). What are race conditions? Some issues and formalizations. ACM Letters on Programming Languages and Systems (LOPLAS), 1(1), 74–88. https://doi.org/10.1145/130616.130623
  • [16] Park, S., Vuduc, R. W., & Harrold, M. J. (2010). Falcon: fault localization in concurrent programs. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1 (pp. 245–254). https://doi.org/10.1145/1806799.1806838
  • [17] Park, S., Zhou, Y., Xiong, W., Yin, Z., Kaushik, R., Lee, K. H., & Lu, S. (2009). PRES: probabilistic replay with execution sketching on multiprocessors. In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles (SOSP '09) (pp. 177–192). https://doi.org/10.1145/1629575.1629593
  • [18] Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., & Anderson, T. (1997). Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst., 15(4), 391–411. https://doi.org/10.1145/265924.265927
  • [19] Torres, L. C., Marr, S., Gonzalez, B. E., & Mössenböck, H. (2018). A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs. Lecture Notes in Computer Science, 10789, 155-185. https://doi.org/10.1007/978-3-030-00302-9
  • [20] Vinesh, N., Sethumadhavan, M. (2020). ConFuzz—A Concurrency Fuzzer. Advances in Intelligent Systems and Computing, 1045, 667-691. https://doi.org/10.1007/978-981-15-0029-9_53
  • [21] Yu, Z., Zuo, Y., & Xiong, W. C. (2019). Concurrency Bug Avoiding Based on Optimized Software Transactional Memory. Scientific Programming, 2019, 9404323. https://doi.org/10.1155/2019/9404323.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-478ccf70-3d95-4158-a690-c611c7cd617e
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.