ГОСТ Р МЭК 61508-3—2012
Если необходимо передать данные между элементами, которые должны выполняться независимо, то долж
ны использоваться однонаправленные интерфейсы, такие, например, как сообщения или каналы, а не совместно
используемая память.
П р и м е ч ан и е — В идеальном случае независимые элементы не должны взаимодействовать друг с дру
гом. Однако если проект системы требует, чтобы один элемент передавал данные другому элементу, то проект
коммуникационного механизмадолжен быть таким, чтобы отправляющий и/или получающий сообщение элементы
не находились в состоянии отказа или их функционирование не было бы блокировано в случав прекращения или
задержки передачи данных.
Кроме переменнной информации в оперативной памяти при пространственном разделении должен быть
учтен любой резидентный обьект данных в постоянных запоминающих устройствах, таких как магнитные диски.
Например, защита доступа к файлу, реализованная операционной системой, может использоваться для предот
вращения записи одним элементом в принадлежащие другому элементу области данных.
F.5 Обеспечение временной независимости
Методы, гарантирующие временную независимость, включают в себя:
a) Детерминированные методы планирования, например:
- циклический алгоритм планирования, который дает каждому элементу определенный интервал времени,
полученный для каждого элемента в результате анализа времени его работы в наихудшем случае, чтобы статиче ски
продемонстрировать выполнение требований синхронизации для каждого элемента:
- архитектуры с временным распределением.
b
) Планирование, основанное на строгом приоритете, реализованное программой-диспетчером, работаю
щей в реальном времени, со средствами, запрещающими смену приоритетов.
c) Использование временных заграждающих меток, которые завершают выполнение элемента, если проис ходит
превышение выделенного для него времени выполнения или максимального времени (в этом случав должен быть
проведен анализ риска, показывающий, что завершение выполнения элемента не приведет к опасному отказу и.
таким образом, этот метод может быть лучше всего использован для элемента, не связанного с безопасностью). d)
Использование возможности операционной системы, которая запрещает какому-либо процессу использо
вать полностью временные ресурсы процессора, например с помощью квантования времени. Такой подход при
меним. только если элементы, связанные с безопасностью, не задают жестких требований к режиму реального
времени и если показано, что алгоритм планирования не приведет к неоправданным задержкам обращения к
какому-либо элементу.
Если элементы совместно используют ресурс (например, периферийное устройство), то проект должен га
рантировать. что элементы будут функционировать корректно, так как совместно используемый ресурс блокирует ся
другим элементом. При определении отсутствия временнбго взаимовлияния необходимо учесть время получе ния
доступа к совместно используемому ресурсу.
F.6 Требования к программному обеспечению поддержки
Если операционная система, программа-диспетчер, работающая в реальном времени, управление памятью,
управление таймером или какое-либо подобное программное обеспечение должны использоваться для обеспече
ния пространственной или временной независимости (или обеих), то в таком программном обеспечении любой из
его элементов, которые должны быть независимыми, должен обладать самой высокой стойкостью к систематиче
ским отказам.
П р и м е ч ан и е — Однако в любом таком программном обеспечении для независимых элементов суще
ствует возможность отказа по общей причине.
F.7 Независимость программных модулей. Аспекты языка программирования
Таблица F.1 содержит неформальные определения используемых терминов.
Т аб лица F.1 — Связывание модулей. Определение терминов
Термин
Неформальное определение
Связность
Мера прочности связей между данными и подпрограммами внутри одного модуля
Связывание
Мера прочности связей между модулями
Инкапсуляция
Ограничение внешнего доступа к внутренним (личным) данным и подпрограммам: тер
мин используется главным образом с объектно-ориентированными программами
Независимость
Мера отсутствия связей между частями программы; антоним понятия «связывание»
85