Skip to main content

CASA: An Approach for Exposing and Documenting Concurrency-Related Software Properties

  • Conference paper
  • First Online:
Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13511))

Included in the following conference series:

  • 1136 Accesses

Abstract

Finding concurrency bugs is hard because of two reasons. Reconstruction of concurrency-specific software properties from source code or binary is an NP-hard problem, and some information might not be present in the software implementation at all (e.g., intentions of synchronisation). Existing approaches for finding concurrency bugs use over-approximating analyses and testing, but these respectively often lead to potential false warnings or fail to report some concurrency bugs. Without knowledge of concurrency properties (memory locations shared between threads and used synchronisation mechanisms), it is hard to complement existing analyses and make their output more precise. Furthermore, choosing a testing tool without knowledge of concurrency-specific software properties is also a challenge and can result in big overhead.

Therefore, in this paper we present a light-weight approach that forces developers to plan and document decisions about used synchronisation mechanisms during development. The approach is implemented as part of Agile SCRUM framework. Documented concurrency-related decisions are used to choose adequate testing tools and improve their precision.

This work was supported by the Engineering and Physical Sciences Research Council (EPSRC) through grant reference EP/P020011/1.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    According to ACM template for Questionnaire Surveys - www.acmsigsoft.github.io/EmpiricalStandards/docs/?standard=QuestionnaireSurveys.

References

  1. Abbaspour Asadollah, S., Sundmark, D., Eldh, S., Hansson, H.: Concurrency bugs in open source software: a case study. J. Internet Serv. Appl. 8(1), 4 (2017)

    Article  Google Scholar 

  2. Arora, V., Bhatia, R., Singh, M.: A systematic review of approaches for testing concurrent programs. Concurr. Comput. Pract. Exp. 28(5), 1572–1611 (2016)

    Article  Google Scholar 

  3. Balakrishnan, G., et al.: Scalable and precise program analysis at NEC. In: Formal Methods in Computer Aided Design, pp. 273–274 (2010)

    Google Scholar 

  4. Bianchi, F., Margara, A., Pezze, M.: A survey of recent trends in testing concurrent software systems. IEEE Trans. Softw. Eng. 44, 747–783 (2017)

    Article  Google Scholar 

  5. Choi, S.E., Lewis, E.C.: A study of common pitfalls in simple multi-threaded programs. SIGCSE Bull. 32(1), 325–329 (2000). https://doi.org/10.1145/331795.331879

    Article  Google Scholar 

  6. Dinning, A., Schonberg, E.: Detecting access anomalies in programs with critical sections. SIGPLAN Not. 26(12), 85–96 (1991). https://doi.org/10.1145/127695.122767

    Article  Google Scholar 

  7. Durkin, T.: What the media couldn’t tell you about the mars pathfinder. Robot Sci. Technol. 1(1), 3 (1998)

    Google Scholar 

  8. Havelund, K., Goldberg, A.: Verify Your Runs. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69149-5_40

    Book  Google Scholar 

  9. Hong, S., Kim, M.: A survey of race bug detection techniques for multithreaded programmes. Softw. Test. Verif. Reliabil. 25(3), 191–217. https://doi.org/10.1002/stvr.1564, https://onlinelibrary.wiley.com/doi/abs/10.1002/stvr.1564

  10. Jahić, J., Ali, K., Chatrangoon, M., Jahani, N.: (dis)advantages of lock-free synchronization mechanisms for multicore embedded systems. In: Proceedings of the 48th International Conference on Parallel Processing: Workshops, ICPP 2019. Association for Computing Machinery, New York (2019)

    Google Scholar 

  11. Jahić, J., Bauer, T., Kuhn, T., Wehn, N., Antonino, P.O.: FERA: a framework for critical assessment of execution monitoring based approaches for finding concurrency bugs. In: Arai, K., Kapoor, S., Bhatia, R. (eds.) SAI 2020. AISC, vol. 1228, pp. 54–74. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-52249-0_5

    Chapter  Google Scholar 

  12. Jahic, J., Jung, M., Kuhn, T., Kestel, C., Wehn, N.: A framework for non-intrusive trace-driven simulation of manycore architectures with dynamic tracing configuration. In: Colombo, C., Leucker, M. (eds.) RV 2018. LNCS, vol. 11237, pp. 458–468. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03769-7_28

    Chapter  Google Scholar 

  13. Jahić, J., Kuhn, T., Jung, M., Wehn, N.: Bosmi: a framework for non-intrusive monitoring and testing of embedded multithreaded software on the logical level. In: Proceedings of the 18th International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation, SAMOS 2018, pp. 131–138. Association for Computing Machinery, New York (2018)

    Google Scholar 

  14. Jahić, J., Kumar, V., Antonino, P.O., Wirrer, G.: Testing the implementation of concurrent autosar drivers against architecture decisions. In: 2019 IEEE International Conference on Software Architecture (ICSA), pp. 171–180 (2019)

    Google Scholar 

  15. Jannesari, A., Tichy, W.F.: Identifying ad-hoc synchronization for enhanced race detection. In: 2010 IEEE International Symposium on Parallel Distributed Processing (IPDPS), pp. 1–10 (2010). https://doi.org/10.1109/IPDPS.2010.5470343

  16. Karran, B., Trümper, J., Döllner, J.: Synctrace: visual thread-interplay analysis. In: First IEEE Working Conference on Software Visualization (VISSOFT), pp. 1–10. IEEE, Eindhoven (2013)

    Google Scholar 

  17. Keul, S.: Tuning static data race analysis for automotive control software. In: 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation, pp. 45–54 (2011)

    Google Scholar 

  18. Lattner, C., Adve, V.: Llvm: a compilation framework for lifelong program analysis amp; transformation. In: International Symposium on Code Generation and Optimization, 2004, CGO 2004, pp. 75–86 (2004). https://doi.org/10.1109/CGO.2004.1281665

  19. Lee, E.A.: The problem with threads. Computer 39(5), 33–42 (2006)

    Article  Google Scholar 

  20. Lu, S., Tucek, J., Qin, F., Zhou, Y.: Avio: detecting atomicity violations via access-interleaving invariants. IEEE Micro 27(1), 26–35 (2007)

    Article  Google Scholar 

  21. Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. SIGOPS Oper. Syst. Rev. 42(2), 329–339 (2008)

    Article  Google Scholar 

  22. May, J., Berman, F.: Creating views for debugging parallel programs. In: IEEE Scalable High Performance Computing Conference (SHPCC), pp. 833–840. IEEE, Knoxville (1994)

    Google Scholar 

  23. Miné, A., et al.: Taking static analysis to the next level: proving the absence of run-time errors and data races with astrée. In: 8th European Congress on Embedded Real Time Software and Systems (ERTS 2016), Toulouse, France (2016). https://hal.archives-ouvertes.fr/hal-01271552

  24. Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2007, pp. 89–100. Association for Computing Machinery, New York (2007). https://doi.org/10.1145/1250734.1250746, https://doi.org/10.1145/1250734.1250746

  25. Netzer, R.H.B., Miller, B.P.: What are race conditions?: some issues and formalizations. ACM Lett. Program. Lang. Syst. 1(1), 74–88 (1992)

    Article  Google Scholar 

  26. Netzer, R.H., Miller, B.P.: On the complexity of event ordering for shared-memory parallel program executions. In: In Proceedings of the 1990 International Conference on Parallel Processing, pp. 93–97 (1990)

    Google Scholar 

  27. Rubin, K.S.: Essential Scrum: A Practical Guide to the Most Popular Agile Process, 1st edn. Addison-Wesley Professional, Boston (2012)

    Google Scholar 

  28. Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15(4), 391–411 (1997)

    Article  Google Scholar 

  29. Schwaber, K., Sutherland, J.: The scrum guide (2020). https://scrumguides.org/scrum-guide.html. Accessed 19 Apr 2021

  30. Serebryany, K., Iskhodzhanov, T.: Threadsanitizer: data race detection in practice. In: Proceedings of the Workshop on Binary Instrumentation and Applications, WBIA, pp. 62–71. Association for Computing Machinery, New York (2009)

    Google Scholar 

  31. Souza, S.R.S., Brito, M.A.S., Silva, R.A., Souza, P.S.L., Zaluska, E.: Research in concurrent software testing: a systematic review. In: Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD 2011, pp. 1–5. ACM, New York (2011)

    Google Scholar 

  32. Stasko, J.T., Kraemer, E.: A methodology for building application-specific visualizations of parallel programs. J. Para. Distrib. Comput. 18(2), 258–264 (1993)

    Article  Google Scholar 

  33. Wilhelm, A., Čakarić, F., Gerndt, M., Schuele, T.: Tool-based interactive software parallelization: a case study. In: The 40th International Conference on Software Engineering: Software Engineering in Practice, pp. 115–123. Association for Computing Machinery (ACM), Gothenburg (2018)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Jasmin Jahić , Volkan Doganci or Hubert Gehring .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jahić, J., Doganci, V., Gehring, H. (2022). CASA: An Approach for Exposing and Documenting Concurrency-Related Software Properties. In: Orailoglu, A., Reichenbach, M., Jung, M. (eds) Embedded Computer Systems: Architectures, Modeling, and Simulation. SAMOS 2022. Lecture Notes in Computer Science, vol 13511. Springer, Cham. https://doi.org/10.1007/978-3-031-15074-6_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-15074-6_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-15073-9

  • Online ISBN: 978-3-031-15074-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics