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


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

Работа №130315

Тип работы

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

Предмет

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

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

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


Введение 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
Список литературы 38

Многопоточные приложения становятся все более и более распро-
страненными. Однако ошибки, связанные с параллельным исполнени-
ем потоков, являются наиболее неуловимыми и сложными для отлад-
ки. А для такой платформы как 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.
...


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



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


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