ГОСТ Р 55544—201З
Л
ЕС
Л
-R80002-1:2009
Отказоустойчивость может использоваться для поддержания существенной функции вслучае отказа
программного обеспечения. Тогда простая ИЗБЫТОЧНОСТЬ, использующая множество копий одной и той
же программы, скорее всего недостаточна, поскольку тот же самый дефект будет присутствовать в каждой
копии программы.
В таких случаях требуется РАЗНООБРАЗИЕ. Например, дополнительное программное обеспечение
может использоваться для обнаружения ошибки программного обеспечения и выполнения программы вос
становления. Дополнительное программное обеспечение недолжно разделять любые функции с тем про
граммным обеспечением, которое оно контролирует. Таким образом, устраняется возможность того, что
один дефект вызывает отказ обеих программ.
В наиболее важных случаяхдва или несколько ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ могут выполнять одну
и ту же функцию, но они могут быть независимо разработаны и реализованы начиная с общей специфика
ции. Это называется «программирование РАЗНООБРАЗИЯ». Следует отметить, что есть тенденция совер
шать одни и те же ошибки разными инженерами-раэработчиками. Эта тенденцияделает РАЗНООБРАЗИЕ
недействительным. Отметим также, чтообщая спецификация может содержать неправильные требования.
Наконец, некоторые методы, такие как голосование,должны использоваться для обеспечения того, чтобы
работающее со сбоями программное обеспечение не вызывало никаких эффектов. Как минимум три раз
личных программных элемента были бы необходимы для реализации схемы голосования.
Используя ИЗБЫТОЧНОСТЬ с РАЗНООБРАЗИЕМ или без него,для обеспечения отказоустойчивос
ти. важно дать понять пользователю, что произошел отказ. В противном случае может показаться, что
отказоустойчивое МЕДИЦИНСКОЕ ИЗДЕ
Л
ИЕ работает безопасно, когда на самом деле, изделие
работает с уменьшенной БЕЗОПАСНОСТЬЮ.
6.2.2.2.4 Разделение, уменьшающее РИСК, происходящий от программных причин
Возможно, чтодефекты программного обеспечения могут приводить к ошибкам в не связанном с ним
программном обеспечении, выполняемом на тех же аппаратных средствах. ИЗГОТОВИТЕ
Л
Ь должен
выбирать методы разделения СВЯЗАННЫХ С БЕЗОПАСНОСТЬЮ ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ от не
СВЯЗАННЫХ С БЕЗОПАСНОСТЬЮ таким образом, чтобы последние не могли вмешиваться в работу
СВЯЗАННЫХ С БЕЗОПАСНОСТЬЮ ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ (см. МЭК 62304, п. 5.3.5). ИЗГОТО
ВИТЕ
Л
Ь должен продемонстрировать, что такое разделение эффективно. Это включает в себя демонстра
цию подходящего использования ресурсов (физических или временных) ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ
для избежания непреднамеренной конкуренции между элементами.
Для эффективного разделения ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ следует обратить внимание на описан
ные ниже возможные способы, при помощи которых ПРОГРАММНЫЕ Э
Л
ЕМЕНТЫ могут подвергаться
неожиданному взаимодействию.
ПРОГРАММНЫЕ Э
Л
ЕМЕНТЫ могут взаимодействовать непредусмотренными способами, когда они
конкурируют за время на общих аппаратных средствах (например, процессоры, устройства хранения
данных и другие устройства входа/выхода). Это может препятствовать запуску ПРОГРАММНОГО
Э
Л
ЕМЕНТА в назначенное время. Предоставление достаточных аппаратных средств является характер
ной архитектурной чертой или особенностью проекта (см. 6.2.2.2.2), которая должна быть установлена в
соответствующей спецификации и подлежать планированию для обеспечения достаточного времени,
насколько это возможно, чтобы запустить ПРОГРАММНЫЙ Э
Л
ЕМЕНТ в случае необходимости.
ПРОГРАММНЫЕ Э
Л
ЕМЕНТЫ могут сосуществовать в одной и той же памяти. Такая ситуация может
привести к тому, что один ПРОГРАММНЫЙ Э
Л
ЕМЕНТ неожиданно изменяет данные, принадлежащие
другому ПРОГРАММНОМУ Э
Л
ЕМЕНТУ. В чрезвычайных случаях один ПРОГРАММНЫЙ Э
Л
ЕМЕНТ может
случайно изменить кодированиедругого ПРОГРАММНОГО Э
Л
ЕМЕНТА. Многие процессоры и операцион
ные системы предлагают поддерживаемые аппаратными средствами методы разделения использования
памяти. Там. где такие методы существуют, они должны использоваться всегда. Большинство таких мето
дов защиты будут принимать меры, против непреднамеренного взаимодействия, даже когда есть дефект в
одном из ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ.
ПРОГРАММНЫЕ Э
Л
ЕМЕНТЫ могут также взаимодействовать непреднамеренным способом, когда
они делят переменные, включая глобальные переменные, переменные окружающей среды и параметры
операционной системы. Такая ситуация может привести к непреднамеренной коммуникации между
ПРОГРАММНЫМИ Э
Л
ЕМЕНТАМИ, если есть дефект в одном из ПРОГРАММНЫХ Э
Л
ЕМЕНТОВ.
25