УДК 004.451.23
И л. С. С в и р и н, П. А. С и л и н,
В. В. С ю з е в
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ
МНОГОПОТОЧНОЙ ПРОГРАММЫ И ПРАВИЛА
БЕЗОПАСНОГО МНОГОПОТОЧНОГО
ПРОГРАММИРОВАНИЯ
Одной из основных проблем разработки многопоточного программ-
ного обеспечения являются взаимные блокировки потоков. Взаим-
ные блокировки потоков чрезвычайно трудно выявить, поскольку их
возникновение напрямую связано с относительной динамикой вы-
полнения потоков в программном обеспечении, которая зависит от
множества трудно учитываемых факторов. Представлена систе-
ма правил разработки многопоточной структуры программного
обеспечения, направленная на уменьшение числа вносимых на этапе
разработки ситуаций взаимной блокировки. Преимущество данной
системы перед эмпирически выведенными аналогами заключается
в том, что она выведена в процессе разработки математической
модели взаимных блокировок.
E-mail:
Ключевые слова
:
многопоточное программное обеспечение, взаимные
блокировки, верификация.
Одна из основных проблем разработки многопоточного программ-
ного обеспечения (ПО) — это обеспечение доступа различных потоков
к разделяемым ресурсам. Для решения данной проблемы современ-
ные системы и средства программирования предоставляют средства
синхронизации, которые позволяют решать проблему доступа пото-
ков к разделяемым ресурсам за счет временного перевода некоторых
потоков, обращающихся к ресурсам в состояние ожидания. Однако
использование средств синхронизации привело к проблеме возникно-
вения взаимных блокировок — ситуаций, когда потоки, переведенные
в состояние ожидания, ожидали события, которое никогда не произой-
дет. Ошибки, связанные с взаимной блокировкой потоков, чрезвычай-
но трудно выявить, поскольку возникновение взаимных блокировок
напрямую связано с относительной динамикой выполнения потоков
в ПО, которая зависит от множества трудно учитываемых факторов,
часть которых может проявиться только в будущем, например: при пе-
реходе на новую платформу или добавлении новой подсистемы. Это
свойство делает принципиально невозможным создание алгоритма вы-
явления ошибок синхронизации на этапе тестирования ПО.
Существует несколько подходов к решению данной проблемы.
Динамический анализ
основан на мониторинге обращения выпол-
няемой программы к ресурсам и различных вызовов [1, 2]. Этот подход
характеризуется низкими затратами вычислительных ресурсов, однако
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012
95