НИКИФОРОВ
Владимир Олегович
д.т.н., профессор
doi: 10.17586/2226-1494-2019-19-2-380-385
УДК 004.416.2
ОПТИМИЗАЦИЯ ПРОГРАММНОГО КОДА БИБЛИОТЕКИ RELACY RACE DETECTOR
Читать статью полностью
Ссылка для цитирования:
Доронин О.В., Дергун К.И., Дергачев А.М., Ключев А.О. Оптимизация программного кода библиотеки Relacy Race Detector // Научно-технический вестник информационных технологий, механики и оптики. 2019. Т. 19. № 2. С. 380–385. doi: 10.17586/2226-1494-2019-19-2-380-385
Аннотация
В работе приведены результаты исследования библиотеки Relacy Race Detector (RRD) применительно к задаче тестирования многопоточного кода. В ходе исследования выявлен ряд недостатков, которыми обладает библиотека RRD. Это отсутствие возможности динамического изменения числа потоков, сложная структура проекта, наличие ошибок в реализации, отсутствие поддержки снимков памяти. В работе исправлены вышеперечисленные недостатки и представлен новый подход для получения атомарных снимков памяти нескольких потоков с использованием механизмов fork и fiber. Использование полученных результатов и внесение изменений в библиотеку RRD позволяет упростить процедуру тестирования многопоточных приложений.
Благодарности. Персональная благодарность Д. Вьюкову (разработчик библиотеки Relacy Race Detector), М. Хижинскому (разработчик библиотеки libcds) и Е. Калишенко за обсуждение, критику и предложения в процессе выполнения работ.
Список литературы
-
Batty M., Owens S., Sarkar S., Sewell P., Weber T., Tjark W. Mathematizing C++ concurrency // ACM SIGPLAN Notices. 2011. V. 46. N 1. P. 55–66. doi: 10.1145/1925844.1926394
-
Lidbury C., Donaldson A.F. Dynamic race detection for C++11 // ACM SIGPLAN Notices. 2016. V. 52. N 1. P. 443–457. doi: 10.1145/3093333.3009857
-
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. P. 295–308.
-
Drepper U. ELF Handling for Thread-Local Storage. Red Hat Inc, 2005. 79 p.
-
Nagarakatte S., Burckhardt S., Martin M., Musuvathi M. Multicore acceleration of priority-based schedulers for concurrency bug detection // ACM SIGPLAN Notices. 2012. V. 47. N 6. P. 543–554. doi: 10.1145/2345156.2254128
-
Atig M.F., Bouajjani A., Qadeer S. Context-bounded analysis for concurrent programs with dynamic creation of threads // Lecture Notes in Computer Science. 2009. V. 5505. P. 107–123. doi: 10.1007/978-3-642-00768-2_11
-
Emmi M., Qadeer S., Rakamaric Z. Delay-bounded scheduling // ACM SIGPLAN Notices. 2011. V. 46. N 1. P. 411–422. doi: 10.1145/1925844.1926432
-
Burckhardt S.,Kothari P., Musuvathi M., Nagarakatte S. A randomized scheduler with probabilistic guarantees of finding bugs // ACM SIGARCH Computer Architecture News. 2010. V. 38. P. 167–178. doi: 10.1145/1735970.1736040
-
Sen K. Effective random testing of concurrent programs // Proc. 22nd IEEE/ACM Int. Conf. on Automated Software Engineering (ASE). 2007. P. 323–332. doi: 10.1145/1321631.1321679
-
Coetzee L. Combining Reverse Debugging and Live Programming towards Visual Thinking in Computer Programming. Stellenbosch University, 2015. 94 p.
-
Serebryany K., Iskhodzhanov T. ThreadSanitizer: data race detection in practice // Proc. Workshop on Binary Instrumentation and Applications (WBIA). 2009. P. 62–71. doi: 10.1145/1791194.1791203