Тип работы:
Предмет:
Язык работы:


Поиск состояний гонки в приложениях, исполняемых в среде ОС z/OS

Работа №57889

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы40
Год сдачи2016
Стоимость4375 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
82
Не подходит работа?

Узнай цену на написание


Введение 4
1. Обзор 6
1.1. Статический и динамический анализ 6
1.2. Алгоритмы динамического анализа. Алгоритм Лампорта 10
1.3. Алгоритмы динамического анализа. Алгоритм lockset . . 13
1.4. Направления развития алгоритмов динамического поиска состояния гонки 14
1.5. Динамический анализ в среде ОС z/OS: on-the-fly, post¬mortem 16
1.6. Datacollider 21
2. Реализация прототипа детектора 24
2.1. Общая схема поиска состояний гонки 24
2.2. Инициализатор 25
2.3. Обработчик 29
2.4. Анализатор GTF трассы 31
2.5. Пути развития 33
2.6. Тестирование и границы применимости 33
3. Заключение 37
Список литературы

Многопоточные приложения становятся все более и более распространенными. Однако ошибки, связанные с параллельным исполнением потоков, являются наиболее неуловимыми и сложными для отладки. А для такой платформы как Mainframe все осложняется тем, что очень многие многопоточные приложения для нее являются достаточно старыми, плохо задокументированными. Тем не менее, их надо поддерживать. Поэтому необходима автоматизация поиска возможных ошибок, связанных с параллельным исполнением потоков. Например, для состояний гонки. Состояние гонки - это ситуация, когда два или более потоков в параллельной программе одновременно обращаются к одной структуре данных в общей памяти, между этими обращениями нет принудительного упорядочивания по времени, и хотя бы одно из этих обращений является записью[1, 20].
Специфика операционной системы z/OS и приложений для нее (в частности, продуктов, разрабатываемых компанией EMC) накладывает определенные ограничения и предъявляет следующие требования к детектору:
• Детектор должен иметь возможность исследовать большие приложения (от миллиона строк кода);
• Детектор должен быть способным находить гонки в приложениях, написанных на языке ассемблера HLASM;
• Детектор должен сохранять реентерабельность исследуемого приложения.
Предполагается, что имеется доступ к исходному коду исследуемого приложения.
Искать состояния гонки можно с помощью либо динамического, либо статического анализа. В данной работе подробно рассматривается динамический анализ кода.
Задачами данной работы являются:
• Анализ способов сбора информации о блокировках и операциях с памятью в среде ОС z/OS;
• Изучение подходов к поиску состояний гонки и реализация прототипа детектора состояний гонки, удовлетворяющего заданным требованиям.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения бакалаврской работы были решены следующие задачи:
• Произведен обзор способов сбора информации о блокировках и операциях с памятью в ОС z/OS;
• Изучены подходы к поиску состояний гонки;
• Был выбран подход к поиску состояний гонки исходя из критериев его принципиальной реализуемости и применимости к ассемблерным программам, исполняемым в среде z/OS, реализован прототип приложения для поиска состояний гонки и протестирован на реальном проекте.
Прототип детектора отвечает следующим требованиям:
• Детектор способен находить гонки в приложениях, написанных на языке ассемблера HLASM;
• Есть возможность исследовать большие приложения (от миллиона строк кода);
• Не требуется аннотирование исследуемой программы;
• Детектор сохраняет реентерабельность исследуемого приложения.
Продемонстрирована применимость подхода Datacollider к исследованию ассемблерных программ, исполняемых среде ОС z/OS



[1] Beckman Nels E. A Survey of Methods for Preventing Race Conditions // Carnegie Mellon School of Computer Science. —
2006. — URL: http://www.cs.cmu.edu/~nbeckman/papers/race_detection_survey.pdf (online; accessed: 12.11.2015).
[2] Boyapati C. Rinard M. A parameterised type system for race-free java programs. — In ACM Conference on Object-Oriented Programming Systems Languages and Applications, 2001.
[3] Dawson Engler Ken Ashcraft. RacerX: effective, static detection of race conditions and deadlocks. — SOSP ’03 Proceedings of the nineteenth ACM symposium on Operating systems principles, 2003.
[4] Eli Pozniansky Assaf Schuster. Efficient On-the-Fly Data Race Detection in Multithreaded C++ Programs. — Concurrency and Computation: Practice Experience - Parallel and Distributed Systems: Testing and Debugging, 2007.
[5] Flanagan C.; Leino K.R.M.; Lillibridge M.; Nelson G.; Saxe R.; Stata J. B. Extended static checking for Java. — Proceedings of the Conference on Programming Language Design and Implementation, 2002. — P. 234-245.
[6] Flanagan C. Freund S. Type-Based Race Detection for Java.— In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation, 2000. — P. 219-232.
[7] IBM. z/Architecture Principles of Operation. — IBM, 2012.
[8] IBM. High Level Assembler for z/OS z/VM z/VSE Toolkit Feature User’s Guide.-IBM, 2013.
[9] John Erickson Madanlal Musuvathi Sebastian Burckhardt Kirk Olynyk. Effective Data - Race Detection for the Kernel. — USENIX, 2010.
[10] Konstantin Serebryany Timur Iskhodzhanov. ThreadSanitizer - data race detection in practice // WBIA ’09 Proceedings of the Workshop on Binary Instrumentation and Applications.— 2009.— URL: http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35604.pdf (online; accessed: 21.03.2016).
[11] Lamport Leslie. Time, Clocks, and the Ordering of Events in a Distributed System // Microsoft Research - Turning ideas into reality.— 1978.— URL: http://research.microsoft.com/en-us/um/people/lamport/pubs/time-clocks.pdf (online; accessed: 12.11.2015).
[12] Netzer R. Miller B. What Are Race Conditions? Some Issues and Formalizations. — In ACM Letters On Programming Languages and Systems, 1994. — P. 74-88.
[13] Paul Sack Brian E. Bliss Zhiqiang Ma Paul Petersen Josep Torrellas. Accurate and efficient filtering for the Intel thread checker race detector. — ASID ’06 Proceedings of the 1st workshop on Architectural and system support for improving software dependability, 2006.
[14] Pozniansky E. Schuster A. Efficient On-the-fly Data Race Detection in Multithreaded C++ Programs. — In Proceedings of The Ninth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 2003.--P. 179-190.
[15] Savage S. Burrows M. Nelson G. Sobalvarro P. Anderson T. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. -- ACM Transactions on Computer Systems, Vol. 15, No. 4, 1997. — P. 391-411.
[16] Saxena Dawn Song; David Brumley; Heng Yin; Juan Caballero; Ivan Jager; Min Gyung Kang; Zhenkai Liang; James Newsome; Pongsin Poosankam; Prateek. BitBlaze: A New Approach to Computer Security via Binary Analysis // In Proceedings of the 4th International Conference on Information Systems Security
(ICISS).— 2008.— URL: http://bitblaze.cs.berkeley.edu/
papers/bitblaze_iciss08.pdf (online; accessed: 21.03.2016).
[17] Yu Y. Rodeheffer T. Chen W. RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking. — In SOSP, 2005. — P. 221¬234.
[18] А.В Щербаков. Трассировка загрузочного модуля в z/OS // - Математико-механический факультет СПБГУ.— 2014.— URL: se.math.spbu.ru/SE/YearlyProjects/2014/YearlyProjects/2014/444/444-Shcherbakov-report.pdf (дата обращения: 21.03.2016).
[19] А.Ю. Тихонов А.И. Аветисян. Комбинированный (статический и динамический) анализ бинарного кода // Труды Института системного программирования РАН. — 2012.—URL: http://cyberleninka.ru/article/n/
kombinirovannyy-staticheskiy-i-dinamicheskiy-analiz-binarnogo-kc(дата обращения: 21.03.2016).
[20] В.Ю Трифанов. Динамическое обнаружение состояний гонки в многопоточных Java-программах // - Математико-механический факультет СПБГУ. --2013. -- URL: http:
//www.math.spbu.ru/user/dkoznov/papers/vtrifanov.pdf (дата обращения: 12.11.2015).
[21] М.Ю. Кудрин А.С. Прокопенко А.Г. Тормасов. Метод нахождения состояний гонки в потоках, работающих на разделяемой памяти. — ТРУДЫ МФТИ Том 1, № 4, 2009.
[22] Р.С Ефремов. Трассировка многомодульного приложения в среде операционной системы z/OS // - Математико-механический факультет СПБГУ. -- 2015. -- URL: http://se.math.spbu.ru/SE/YearlyProjects/spring-2015/344/344-Efremov-report.pdf/view(дата обращения: 21.03.2016).


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ