Анализ многопоточных приложений на основе символьного исполнения

Илья Викторович Арзамарцев, Георгий Иванович Борзунов

Аннотация


Данная статья посвящена методу выявления ошибок в многопоточных приложениях, основанному на алгоритме символьного исполнения. Разработанный метод позволяет детерминированно выявлять гонки условий и взаимоблокировки в многопоточных приложениях, предоставляя необходимые для воспроизведения ошибки расписание планирования и значения входных данных.

Ключевые слова


символьное исполнение; параллельные вычисления; гонка условий

Полный текст:

PDF

Литература


1. Галатенко В. А. Программирование в стандарте POSIX. Курс лекций. Учебное пособие. М.: Интернет-университет информ.
Технологий, 2012.

2. Lindholm T., Yellin F., Bracha G., Buckley A. The Java Virtual Machine Specification. Java SE 7 Edition. URL: http://docs.
oracle.com/javase/specs/jvms/se7/jvms7.pdf (дата обращения: 12.10.2014).

3. Sen K., Agha G. Concolic Testing of Multithreaded Programs and Its Application to Testing Security Protocols. Technical Report
UIUCDS-R-2006-2676. UIUC. 2006.

4. Bergan T., Grossman D., Ceze L. Symbolic Execution of Multithreaded Programs from Arbitrary Program Contexts // ACM
International Conference on Object Oriented Programming Systems Languages & Applications 2014. P. 491–506.

5. Fonseca P., Li C., Rodrigues R. “Finding complex concurrency bugs in large multi-threaded applications” // Proceedings of the
European Conference on Computer Systems. 2011. P. 215–228.

6. King J. C. Symbolic execution and program testing // Magazine Communications of the ACM. CACM Homepage archive. Vol. 19.
Issue 7. July 1976. P. 385–394.

7. Aho A. V., Sethi R., Ullman J. D. Compilers: Principles, Techniques, and Tools. B.: Pearson Education Limited, 2006.
8. Новиков Ф. А. Дискретная математика для программистов. СПб.: Питер, 2009.

9. Schwartz E. J., Avgerinos Th., Brumley D. All You Ever Wanted to Know about Dynamic Taint Analysis and Forward Symbolic
Execution (but Might Have Been Afraid to Ask) // 2010 IEEE Symposium on Security and Privacy 2014. P. 317–331.

10. Арзамарцев И. В., Борзунов Г. И. Детерминированный алгоритм анализа кода программного обеспечения // Безопасность информационных технологий. 2013. № 4. С. 5–9.

11. Арзамарцев И. В., Борзунов Г. И. Обобщенный алгоритм символьного исполнения / Материалы XXI Всероссийской
научно-практической конференции «Проблемы информационной безопасности в системе высшей школы» // Безопасность
информационных технологий. 2014. № 1. С. 47–48.


Ссылки

  • На текущий момент ссылки отсутствуют.


Лицензия Creative Commons
Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.