Введение к работе
Актуальность темы. Большинство вычислительных систем, используемых для технических, инженерных, коммерческих, научных целей, имеют сложную архитектуру. Множество компонентов и их взаимодействие зачастую приводит к тому, что ошибка, возникающая в работе одной из компонент, приводит к сбою1 всей системы. В исследоваїшях надежности вычислительных систем 80-х годов прошлого века говорится о том, что более 60% сбоев происходит но причине неполадок в оборудовании. Однако, уже в середине 90-х годов исследователи снизили эту долю до 10% и основное их внимание сфокусировалось на программном обеспечении (всюду далее ПО), ошибки в котором являлись причинами сбоев как минимум в 70% случаев.
Тот класс ошибок в программе, которые приводят к сбоям в ее работе на заранее определенном наборе входных данных, в западной литературе получил название „Dohrbugs"2. Сбои, вызванные ошибками данного класса, имеют детерминированный характер возникновения. Детерминированность здесь означает то, что если на каком-то наборе входных данных произошел сбой ПО, то па этом же наборе он произойдет и в следующий раз. Для устранения ошибок данного класса разработчику ПО в большинстве случаев достаточно лишь определить фрагменты программного кода, в которых содержатся эти ошибки.
Кроме детерминированных сбоев, в ПО также бывают сбои, чьё возникновение носит случайный характер. Более того, в большинстве случаев, если даже воспроизвести условия (входные данные, параметры настройки программы), при которых произошел этот сбой, то во второй раз его может не произойти. В западной литературе класс ошибок в ПО, по причине которых происходят случайные сбои получил название Heisenbugs3. Причиной возникновения случайных сбоев в ПО является определенный характер его взаимодействия с другими компонентами вычислительной системы: операционной системой, оборудованием, другими программами. В некоторых случаях взаимодействие ПО с перечисленными компонентами имеет случайный характер. Ниже приведены примеры ситуаций, в ко-
1 Согласно ГОСТ 27.002-89, характерным примером сбоя служит остановка ЭВМ, устраняемая повторным пуском программы с места останова или ее перезапуском сначала.
2В честь создателя первой квантовой теории атома Нильса Бора.
3В честь В. Гейзенберга, автора принципа неопределенности квантовой механики. В некоторых работах их именуют ..Mandelbugs", в честь исследователя фракталов Б. Мандельброта.
торых могут возникать случайные сбои4.
Пример 1. (неинициализированные переменные). Неинициализированной переменной является переменная, которая была объявлена в коде программы, но значение ей присвоено не было. Если разработчик ПО не инициализировал переменную, то ей присваивается некоторое значение, записанное в области памяти, аллоцированной под данную переменную. В большинстве случаев это есть значение, оставшееся после завершения работы некоторой другой программы. Присутствие в коде ПО большого количества неинициализированных переменных является ошибкой, которая способна привести к случайному сбою.
Пример 2. (состояние гонки). Состояние гонки возникает в многозадачной системе, в которой процессы взаимодействуют с некоторым разделяемым ресурсом (например, разделяемой областью оперативной памяти). Процессы должны работать с разделяемым ресурсом по взаимоисключающему принципу, иначе это может стать причиной случайного сбоя ПО. Одним из трагических примеров ее проявления является аппарат лучевой терапии Therac-25, в котором из-за состояния гонки между управляющей программой и обработчиком клавиатуры случилось переоблучение, которое вызвало гибель четверых пациентов.
Локализация ошибок „Heisenbugs" усугубляется и тем, что сбои, произошедшие по их причине, случаются по истечении длительного времени. Обычно, если исполняется фрагмент программы, содержащий ошибку класса „Heisenbugs", то система ведет себя некоторым образом, отличным от того, что декларирован инструкцией и пользователь может этого не замечать. Дальнейшее исполнение программы может также перейти на фрагменты кода, содержащие ошибки, и в результате вызвать сбой. Такая функциональная цепочка от исполнения первого фрагмента программы, содержащего ошибку, до сбоя носит название распространение ошибки.
В диссертации рассматриваются следующие методы, нацеленные на снижение влияния сбоев программного обеспечения на работу вычислительных систем:
метод перезапуска;
метод контрольных точек.
4Одним из способов обнаружения случайных сбоев является периодический мониторинг состояния исполняемой программы.
Для оценки эффективности данных методов в диссертации формируются математические модели и исследуются критерии оценки эффективности. В отличие от результатов предшественников, состоящих в исследовании численных величин критериев оценки эффективности, в данной работе используются аналитические методы, позволяющие получить общее решение задач оптимизации и исследовать свойства полученных решений.
Цель работы состоит в исследовании и оптимизации критериев оценки эффективности методов снижения влияния сбоев программного обеспечения на работу вычислительных систем. Основные задачи работы:
формализовать задачу поиска оптимального расположения контрольных точек и найти такое расположение контрольных точек, при котором среднее время работы программы будет минимальным;
найти оптимальное количество контрольных точек;
« оценить верхний к нижний интервалы времени работы программы с контрольными точками;
формализовать задачу поиска оптимального интервала между последовательными перезапусками веб-сервера, при котором увеличивается его готовность;
найти условия, при которых перезапуск уменьшает или увеличивает готовность веб-сервера.
Методика исследований. В диссертации используются методы теории вероятностей, теории множеств, функционального анализа, а также асимптотические методы математического анализа. Научная новизна.
1. Предложена математическая модель оценки среднего времени работы программы в предположении, что интервалы времени между последовательными сбоями в работе программы есть независимые случайные величины с экспоненциальным распределением. Решена оптимизационная задача расположения контрольных точек, при котором среднее время работы программы достигает минимума. При некоторых значениях параметров модели найдено оптимальное количество контрольных точек.
-
Исследовано асимптотическое поведение величины среднего времени работы программы. Найдено соотношение между параметрами модели, при выполнении которого величина среднего времени работы программы имеет конечный предел.
-
В рамках построенной математической модели оценки среднего времени работы программы найдена функция вероятностного распределения случайной величины времени работы программы и исследованы ее свойства. Также получена двухсторонняя оценка квантили найденного распределения.
-
Предложена модель марковской цепи, описывающей поведение веб-сервера. Найдены достаточные условия, при которых метод перезапуска уменьшает или увеличивает величину предельной готовности веб-сервера.
Практическая и теоретическая ценность заключается в том, что реализация результатов, полученных в диссертационной работе, позволяет достигнуть технико-экономический эффект от внедрения методов снижения влияния сбоев программного обеспечения на работу вычислительных систем. Апробация работы и публикации. Результаты диссертации опубликованы в 6 печатных работах, пять из которых - в рецензируемых журналах, входящих в список ВАК. Основные результаты диссертации докладывались на III Международной конференции «Информационные системы и технологии» (ноябрь 2006 г., Минск).
Связи исследований с научными программами. Исследования по теме диссертации проводились в соответствии с проектом ИПУ РАН «Теоретические основы и технологии реализации высоконадежных информационно-управляющих систем и повышения реакционной способности для автономных систем управления», входящим в направление №5 «Методы моделирования, анализа и синтеза высоконадежных, отказоустойчивых информационно-управляющих систем движущихся объектов» программы фундаментальных исследований Отделения ЭММиПУ РАН №15 «Управление движением, теория сложных информационно-управляющих систем (2009-2012 гг.)», а также проектом ИПУ РАН «Теория и методы прогнозирования работоспособности сложных управляющих технических систем», входящим в направление №2 «Разработка методов анализа надежности и эффективности систем сложной структуры» программы фундаментальных исследований Отделения ЭММиПУ РАН .№15 «Управление движением, теория слож-
пых информационно-управляющих систем (2005-2008 гг.)». Структура диссертации. Диссертация состоит из введения, трех глав, состоящих в совокупности из 10 разделов, заключения, приложения и списка литературы. Полный объем диссертации - 105 страниц.