А как нужно строить самые критически важные системы для АЭС?
Требования к системам категории А - в стандарте
МЭК 60880.
Интересны требования по отсутствию:
-ОС-
Цитата:
B.2cb Следует избегать использования универсального операционного программного обеспечения (операционных систем)
B.2cc Если операционная система необходима, то ее применение следует ограничить небольшим числом простых функций
B.2cd Операционная система должна содержать только необходимые функции
Идеальный конечный результат (в формулировке ТРИЗ):
Идеальная ОС для изделия 60880, когда ее нет, а функции ОС выполняются.
Системы строят обычно на жесткой логике или без ОС или с циклом от таймера.
-Время выполнения-
Цитата:
B.2dd Время прогона не должно существенно изменяться в результате изменения входных данных
B.2de Значение изменения времени прогона, которое может быть вызвано входными данными, должно быть документально оформлено
B.2dg Объем данных, считываемых в течение одного вычислительного цикла, должен быть постоянным
Идеальный RealTime - отсутствие планировщика, в одном потоке от таймера.
Идеальная структура программы - без ветвлений, с жестко заданными ограничениями итераций циклов, с постоянным числом принимаемых сигналов.
-Прерывания-
Цитата:
B.2e Необходимо ограничивать применение прерываний
B.2ea Прерывания могут использоваться, если они упрощают проект ПО и не делают верификацию чрезмерно сложной
B.2ed Если прерывания используются, то для непрерываемых частей необходимо иметь оценки максимального времени вычислений, чтобы можно было рассчитать максимальное время, в течение которого прерывание запрещено
Идеально - отсутствие прерываний
Интересны требования по наличию:
Цитата:
B.3c Содержимое памяти должно быть защищено или контролироваться
B.3db Следует проверять правильность передачи любого параметра, включая проверку типа параметров
B.3dc При адресации массива следует проверять его границы
Идеально - наличие контроля памяти, типов, границ.