Библиографическое описание:

Симоненко Д. Н. Повышение отказоустойчивости операционных систем [Текст] // Технические науки: проблемы и перспективы: материалы междунар. науч. конф. (г. Санкт-Петербург, март 2011 г.). — СПб.: Реноме, 2011. — С. 159-163.

Современным операционным системам необходимо решать большое количество сложных и комплексных задач. Вместе со сложностью и размерами системы резко повышается её ненадежность из-за возрастающих факторов, способных привести систему к отказу. Согласно проводимым исследованиям надежности ПО, на каждую 1000 строк кода приходится от 6 до 16-ти ошибок, при этом размеры современной ОС составляют более 10 миллионов строк кода [1].

Текущая ситуация такова, что в самых передовых операционных системах применяются неэффективные архитектурные решения, которые, ввиду своей специфики, не способны в полной мере обеспечить высокий уровень отказоустойчивости.

Единовременное сочетание и удовлетворение всех требований с высоким уровнем обеспечения отказоустойчивости, информационной безопасности и быстродействия является сложной исследовательской и практической проблемой.

Проблема повышения эффективности работы механизмов отказоустойчивости является предметом исследования настоящей работы.


Рис. 1. Монолитная и микроядерная архитектуры


Наиболее распространенными архитектурами ОС являются монолитная и микроядерная (см. рис. 1). Достоинствами монолитной архитектуры является широкое распространение в среде ОС, а также высокое быстродействие. Главным недостатком является отсутствие разбиения функциональности, соответствующее требованиям отказоустойчивости. Практически любая ошибка в ядре системы приводит к отказу в работе всей системы.

Одним из достоинств микроядерной архитектуры является более высокая отказоустойчивость в сравнении с монолитной, обеспечивающейся за счет переноса основных подсистемы на уровень системных процессов. Основным недостатком микроядерной архитектуры является значительно низкое быстродействие в сравнении с монолитной, обусловленное затратным временем ожидания переключения контекстов защиты и выполнения, а также временем обработки запросов между процессами.

Проблема механизма обеспечения отказоустойчивости в микроядерной и монолитной архитектуре состоит в том, что процесс обработки отказов сводится к простому перезапуску, при этом, как правило, завершившийся аварийно процесс теряет своё актуальное состояние и текущие данные.










Рис. 2. Постановка задачи повышения показателей

отказоустойчивости


Формально задачу повышения показателей отказоустойчивости можно выразить как увеличение размерности множеств локализуемых сбоев L и восстановимых сбоев R, входящих во множество всех возможных сбоев E (см. рис. 2.).

Расчет показателей отказоустойчивости системы может быть выполнен в два этапа:

На первом этапе проводится расчет множества вероятных ошибок E при динамике роста объемов системы. Рост ошибок N объясняется предположением, что при увеличении размеров системы увеличивается количество ошибок, при этом D является количеством областей изоляции отказов системы:






На втором этапе рассчитывается показатель отказоустойчивости F. Для расчета множества локализуемых сбоев L использовался коэффициент степени локализуемости ошибок Llocalized, для расчета множества восстановимых сбоев R использовался коэффициент степени восстановимости локализованных сбоев Rrecovered.

Показатели Llocalized и Rrecovered стремятся к единице в зависимости от объемов изолируемой области. Другими словами, показатели соответствуют примерному объему системы и степени возможности определить и локализовать возможные ошибки и определить восстановимые. То есть, чем проще и меньше функциональная область, тем меньшее количество ошибок должно в ней содержаться.

В соответствии с необходимостью повышения отказоустойчивости ОС и на основании проведенного анализа и выявленных недостатков, а также полученного нами ранее опыта проектирования и реализации ОС, была разработана «доменная» архитектура ОС (см. рис. 3).









Рис. 3. Доменная архитектура ОС

Основное отличие доменной архитектуры [2] от монолитной и микроядерной состоит в том, что традиционная организация ядра ОС значительно видоизменяется в пользу более глубокой декомпозиции.

При этом аналогия ядра системы, как обработчика запросов приложений, переносится на так называемые доменные объекты. В системе может быть определено любое множество доменных объектов, каждый из которых отвечает за обработку запросов к дочерним объектам, в т.ч. и доменным.

В свою очередь, для функционирования доменной ОС необходима специализированная среда выполнения (виртуальная машина). Рассмотрим частный пример обеспечения отказоустойчивости за счет дублирования (см. рис. 4):

(1) Объект g обращается к объекту n.

(2) Среда выполнения располагает информацией, что объект n ассоциирован с доменным объектом X, поэтому переводит управление на него. Доменному объекту X сообщается, кто совершил вызов, объект вызова, тип вызова или операции, и аргументы вызова.

(3) На основе этих данных доменной объекта X передает управление в вызываемый объект n.

(4) После обработки запроса объекта n значение возвращается обратно через доменной объект X в объект g.

(5) Если происходит сбой в объекте n, то об этом сообщается его доменному объекту X путем передачи необработанного исключения.



Рис. 4. Обеспечение отказоустойчивости за счет дублирования

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

Для предварительной оценки показателей отказоустойчивости системных архитектур было проведено экспериментальное моделирование. Исходные данные и результаты моделирования представлены в таблице 1.

Таблица 1

Исходные данные и результаты моделирования отказоустойчивости


На графике представлено сравнение степени отказоустойчивости систем (см. рис. 5).


Рис. 5. Сравнение показателя отказоустойчивости F


На основе полученных результатов экспериментов можно сделать вывод, что доменная система при количестве доменных уровней:

1. D = 1, соответствует отказоустойчивости микроядерной системы.

2. D > 1 способна уменьшить примерно в N раз множество вероятных ошибок по сравнению с микроядерной системой и, соответственно, получить значение показателя отказоустойчивости, который будет стремиться к единице (к полному покрытию сбоев). Что дает возможность значительно повысить отказоустойчивость в сравнении с другими архитектурными подходами.

Заключение

В статье был проведен анализ проблематики отказоустойчивости архитектур ОС и были выявлены соответствующие недостатки. В общем виде была поставлена задача повышения отказоустойчивости.

На основе выявленных проблем нами была разработана доменная архитектуры ОС, позволяющая повысить показатели отказоустойчивости. Для предварительной оценки показателей отказоустойчивости системных архитектур было проведено экспериментальное моделирование и получены результаты, свидетельствующие о положительном потенциале представленной архитектуры.


Литература:
  1. Basili V.R., Perricone B.T. Software errors and complexity: an empirical investigation // ACM 27, pp. 42-52.

  2. Симоненко Д.Н. Концепция единой отказоустойчивой среды выполнения // Сборник научных трудов НТЦ РУП МЭСИ №6.

Обсуждение

Социальные комментарии Cackle