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, планировщик потоков, lock-free алгоритмы, тестирование приложений, операционная система, fiber

Благодарности. Персональная благодарность Д. Вьюкову (разработчик библиотеки Relacy Race Detector), М. Хижинскому (разработчик библиотеки libcds) и Е. Калишенко за обсуждение, критику и предложения в процессе выполнения работ.

Список литературы
  1. 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
  2. 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
  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. P. 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. V. 47. N 6. P. 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. V. 5505. P. 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. V. 46. N 1. P. 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. V. 38. P. 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. P. 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. P. 62–71. doi: 10.1145/1791194.1791203


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Информация 2001-2024 ©
Научно-технический вестник информационных технологий, механики и оптики.
Все права защищены.

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