О надёжности компьютерного программного обеспечения

топ 100 блогов stalinist — 16.06.2024 Программизм сейчас создаёт настолько сложные программные продукты, что в их надёжности уже невозможно быть уверенным. Программные дефекты Microsoft Windows стали притчей во языцех, но никакой сколько-нибудь серьёзный программный продукт не может гарантировать, что в нём нет дефектов. По этому поводу шуточная программистская аксиома гласит: "В каждой программе есть по крайней мере одна ошибка." Да и почти у всех приборов есть сзади дырочка, куда нужно засунуть шпильку и сбросить состояние прибора к исходному тогда, когда его программное обеспечение отчаялось выйти из тупика, куда его завели программные дефекты. По этой же причине производители выпускают "сырые" программные продукты с перспективой их периодического обновления, так как полностью их испытать в мириадах сценариев очень часто невозможно или, по крайней мере, непрактично, поскольку очень трудоёмко и никогда не даёт гарантии.

А сейчас я наткнулся на интересное, по существу, признание о том, что некоторые широко распространённые программистские практики считаются слишком рискованными, чтобы их можно было применять в системах, требующих высочайшей надежности:
Besides, I was trained to never use the heap/malloc in embedded systems. Most coding standards for critical aerospace systems http://www2.research.att.com/~bs/JSF-AV-rules.pdf 1 and motor vehicle coding standards like MISRA have statements like this:

MISRA C++ rule 18-4-1, dynamic heap memory allocation cannot be used.
Здесь, по существу, говорится, что динамическое выделение оперативной памяти (RAM) запрещено в аэрокосмических системах и в программном обеспечении автомобилей, а такое выделение -- краеугольный камень пресловутого объектно-ориентированного программирования, например, на языках вроде C++. Проблема с динамическим выделением памяти, то есть с ситуацией, когда программный код сам вычисляет, сколько дополнительной памяти ему требуется в данный момент, состоит в том, что невозможно оценить тот максимум потребной памяти, которая может быть запрошена в процессе исполнения программы, а этот максимум может превысить доступную память, что приведёт к аварийному -- неуправляемому и неисправляемому -- состоянию программы.

Другая проблема с динамическим выделением памяти -- так называемая "утечка памяти", когда процессы занимают память как бы на время, но "забывают" её освобождать, создавая растущее количество сегментов "мертвой" памяти, то есть памяти, выключенной из оборота, что, в свою очередь, может привести к аварийному останову из-за недостатка доступной памяти. Кстати, я сейчас пишу это в браузере Firefox, который с течением времени занимает всё больше и больше памяти, доходя до гигабайтов, что, как минимум, может сильно замедлить другие процессы.

Оставить комментарий

Архив записей в блогах:
В 2017 году «АвтоВАЗ» планирует снизить цены на свою самую доступную модель Lada Granta. Об этом глава компании Николя Мор рассказал в интервью на Московском автосалоне. Топ-менеджер пояснил, что это будет возможно благодаря снижению цен на комплектующие, диалог о которых предприятие ...
Постер - 4 обложка журнала"Комсомольская жизнь" за июнь 1989 года Первая обложка журнала"Комсомольская жизнь" за июнь 1989 года,№12 Статья Елены Литвиновой про Женю Белоусова Евгений Викторович Белоусов 1964 - 1997 годы жизни. Советский и российский поп-певец, популярный в СССР ...
В августе у меня истекал срок действия МВУ, и потому в начале августа я решил получить новое. Нашел живую пока еще справку, фотографии, взял все остальные документы, заехал в банк оплатить госпошлину - и вот я в МРЭО ГИБДД на Шоссе Революции, ...
Друзья мои, вы же всё знаете :) Опознайте, пожалуйста, это место. Это кадр из телефильма 1969 года "Тринадцать поручений". Что-то неуловимо знакомое - но никак не соображу. Да: по сюжету главный герой едет на электричке в Москву по Ярославскому направлению: ...
Во Франции, в период правления Капетингов (между 1150 и 1200 годами), существовал удивительный институт куртуазного общества под названием «Суды любви». Заправляли в них, разумеется, дамы. В трактате капеллана при французском дворе Андре «О ...