ГОСТ Р МЭК 61508-7—2012
Цель. Защита от необнаруженных на этапах спецификации и реализации ошибок в программных средствах,
которые неблагоприятно влияют на их безопасность.
Описание. Различают два подхода реализации контроля: (1) процесс контроля и контролируемая функция
реализованы на одном компьютере с некоторой гарантией независимости между ними, и (2) процесс контроля и
контролируемая функция реализованы на разных компьютерах.
Метод, в котором процесс контроля и контролируемая функция реализованы на разных компьютерах (име
ющих разную спецификацию), называется методом внешнего контроля. Данный метод направлен только на то,
чтобы гарантировать, что основным компьютером выполняются безопасные, но не обязательно корректирующие
действия. Метод внешнего контроля обеспечивает непрерывный контроль основного компьютера и предотвращает
вхождение системы в опасное состояние. Кроме того, если обнаружится, что основной компьютер вошел в по
тенциально опасное состояние, система должна возвратиться обратно в безопасное состояние с помощью либо
средств внешнего контроля, либо основного компьютера.
Аппаратные средства и программное обеспечение средств внешнего контроля следует классифицировать
и квалифицировать в соответствии с подходящим УПБ.
Литература:
Requirements based Monitors for Real-Time Systems, D. Peters. D. Pamas. IEEE Transactions on Software
Engineering, vol. 28. no. 2, 2002.
C.3.5 Многовариантное программирование
П р и м е ч а н и е — Ссыпка на данный метод/средство приведена в МЭК 61508-3 (таблица А.2).
Цель. Обнаружение и наложение маски при выполнении программ на невыявленные на этапах проекти
рования и реализации ошибки программных средств для предотвращения критичных для безопасности отказов
системы и продолжения ее правильной работы.
Описание. При многовариантном программировании заданная программная спецификация проектируется
и реализуется различными способами N раз. Одни и те же входные значения поступают в N версий и сравнива
ются результаты, выданные N версиями. Если результат определяется как правильный, он поступает на выходы
компьютера.
Важным требованием является то, что в некотором смысле N версий независимы друг от друга, поэтому
они не все одновременно перестают правильно работать по обшей причине. Независимость версий, являющуюся
основой для многовариантного программирования, на практике довольно трудно достичь и продемонстрировать.
N версий могут выполняться параллельно на различных компьютерах, либо все версии могут выполняться
на одном компьютере с последующим сравнением полученных результатов на том же компьютере. Для этих N ре
зультатов могут быть использованы различные стратегии сравнения, и в зависимости от заданных требований
применяются следующие стратегии:
- если система находится в безопасном состоянии, можно потребовать полного согласия (все N результатов
одинаковы); в противном случав используется выходное значение, которое заставит систему перейти в безопасное
состояние. Для простых пошаговых систем сравнение может обеспечить безопасность. В этом случае безопасное
действие может быть разбито по шагам, если какая-либо версия реализует пошаговые операции. Этот подход
обычно используется только для двух версий (W= 2):
- для систем, находящихся в опасном состоянии, могут быть реализованы стратегии мажоритарного срав
нения. В случаях, если отсутствует общее согласие, могут использоваться вероятностные подходы с тем. чтобы
максимизировать вероятность выбора правильного значения, например, принять среднее значение, временно за
фиксировать выходы, пока не будет достигнуто согласие и т. п.
Данный метод не устраняет ошибок, не выявленных при проектировании программ, а также ошибок в интер
претации спецификации, однако он является средством для обнаружения и маскирования ошибок, прежде чем они
смогут повлиять на безопасность.
Литература:
Modelling software design diversity — a review. B. Littlewood. P. Popov, L. Strigini. ACM Computing Surveys,
vol 33. No. 2. 2001.
The N-Version Approach to Fault-Tolerant Software. A. Avizienis. IEEE Transactions on Software Engineering,
vol. SE-11. No. 12. pp.1491—1501. 1985.
An experimental evaluation of the assumption of independence in multi-version programming. J.C. Knight.
N.G. Leveson. IEEE Transactions on Software Engineering, vol. SE-12. No. 1, 1986.
In Search of Effective Diversity: a Six Language Study of Fault-Tolerant Flight Control Software. A. Avizienis,
M. R. Lyu and W. Schutz. 18th Symposium on Fault-Tolerant Computing. Tokyo. Japan. 27—30 June 1988. IEEE Computer
Society Press. 1988. ISBN 0-8186-0867-6.
C.3.6 Восстановление предыдущего состояния
П р и м е ч а н и е — Ссылка на данный метод/средство приведена в МЭК 61508-3 (таблица А.2).
Цель. Обеспечение исправления функциональных операций при наличии одной или нескольких ошибок.
Описание. При обнаружении ошибки система возвращается в первоначальное внутреннее состояние, пра
вильность которого была подтверждена ранее. Данный метод предполагает частое сохранение внутреннего состо
яния в так называемых четко определенных контрольных точках. Сохранение может быть выполнено глобально
(для всей базы данных) или частично (для изменений только между контрольными точками). После этого система
49