doi: 10.17586/2226-1494-2019-19-2-380-385


PROGRAM CODE OPTIMIZATION OF RELACY RACE DETECTOR LIBRARY

O. V. Doronin, K. I. Dergun, A. M. Dergachev, A. O. Klyuchev


Read the full article  ';
Article in Russian

For citation:

Doronin O.V., Dergun K.I., Dergachev A.M., Kluchev A.O. Program code optimization of Relacy Race Detector library. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2019, vol. 19, no. 2,  pp. 380–385 (in Russian). doi: 10.17586/2226-1494-2019-19-2-380-385



Abstract

The paper presents the results of Relacy Race Detector (RRD) library research as applied to the problem of multithreaded code testing. The study revealed several shortcomings of the RRD library. They are: a static number of threads, complex project structure, errors in implementation and lack of support for snapshots. The work has corrected the shortcomings described above and presented a new approach for the atomic snapshot of multiple threads using fork and fiber mechanisms. With the application of these results and implemented changes it is now easier to use the RRD library for multithreaded applications testing.


Keywords: multithreading, data races, Relacy Race Detector, thread scheduler, lock-free algorithms, testing applications, operating system, fiber

Acknowledgements. The authors express personal thanks to D. Vyukov (developer of the Relacy Race Detector library), M. Khizhinsky (developer of the libcds library) and E. Kalishenko for discussion, critique and suggestions in the process of research.

References
  1. Batty M., Owens S., Sarkar S., Sewell P., Weber T., Tjark W. Mathematizing C++ concurrency. ACM SIGPLAN Notices, 2011, vol. 46, no. 1, pp. 55–66. doi: 10.1145/1925844.1926394
  2. Lidbury C., Donaldson A.F. Dynamic race detection for C++11. ACM SIGPLAN Notices, 2016, vol. 52, no. 1, pp. 443–457. doi: 10.1145/3093333.3009857
  3. Jula H., Tralamazza D., Zamfir C., Candea G. Deadlock immunity: enabling systems to defend against deadlocks. Proc. of Operating System Design and Implementation, OSDI, 2008, pp. 295–308.
  4. Drepper U. ELF Handling for Thread-Local Storage. Red Hat Inc, 2005, 79 p.
  5. Nagarakatte S., Burckhardt S., Martin M., Musuvathi M. Multicore acceleration of priority-based schedulers for concurrency bug detection. ACM SIGPLAN Notices, 2012, vol. 47, no. 6, pp. 543–554. doi: 10.1145/2345156.2254128
  6. Atig M.F., Bouajjani A., Qadeer S. Context-bounded analysis for concurrent programs with dynamic creation of threads. Lecture Notes in Computer Science, 2009, vol. 5505, pp. 107–123. doi: 10.1007/978-3-642-00768-2_11
  7. Emmi M., Qadeer S., Rakamaric Z. Delay-bounded scheduling. ACM SIGPLAN Notices, 2011, vol. 46, no. 1, pp. 411–422. doi: 10.1145/1925844.1926432
  8. Burckhardt S.,Kothari P., Musuvathi M., Nagarakatte S. A randomized scheduler with probabilistic guarantees of finding bugs. ACM SIGARCH Computer Architecture News, 2010, vol. 38, pp. 167–178. doi: 10.1145/1735970.1736040
  9. Sen K. Effective random testing of concurrent programs. Proc. 22nd IEEE/ACM Int. Conf. on Automated Software Engineering, ASE, 2007, pp. 323–332. doi: 10.1145/1321631.1321679
  10. Coetzee L. Combining Reverse Debugging and Live Programming towards Visual Thinking in Computer Programming. Stellenbosch University, 2015, 94 p.
  11. Serebryany K., Iskhodzhanov T. ThreadSanitizer: data race detection in practice. Proc. Workshop on Binary Instrumentation and Applications, WBIA, 2009, pp. 62–71. doi: 10.1145/1791194.1791203


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Copyright 2001-2024 ©
Scientific and Technical Journal
of Information Technologies, Mechanics and Optics.
All rights reserved.

Яндекс.Метрика