Устаревание программного обеспечения

редактировать

В программной инженерии, ПО устаревание относится к склонности всего программного обеспечения к отказу или к отказу системы после непрерывной работы в течение определенного времени. По мере того, как программное обеспечение стареет, оно становится менее защищенным и в конечном итоге перестает функционировать должным образом, поэтому перезагрузка или переустановка программного обеспечения можно рассматривать как краткосрочное решение. Метод упреждающего управления сбоями для решения проблемы старения программного обеспечения - это обновление программного обеспечения. Этот метод можно классифицировать как метод разнообразия среды, который обычно реализуется с помощью программных агентов омоложения (SRA).

Как с академической, так и с промышленной точки зрения, явление старения программного обеспечения увеличилось. Основное внимание было уделено пониманию его последствий на основе поддающихся проверке наблюдений и теоретического понимания.

«Программы, как и люди, стареют. Мы не можем предотвратить старение, но мы можем понять его причины, предпринять шаги для ограничения его эффекты, временно устраняют часть причиненного им ущерба и готовятся к тому дню, когда программное обеспечение перестанет работать ».

Раздутие и утечка памяти, а также повреждение данных и невыпущенные файловые блокировки - частные причины старения программного обеспечения.

Содержание
  • 1 Упреждающее управление устареванием программного обеспечения
    • 1.1 Старение программного обеспечения
    • 1.2 Восстановление
  • 2 Утечки памяти
  • 3 Реализация
  • 4 Раздутие памяти
  • 5 Ссылки
  • 6 Дополнительная литература
Упреждающее управление устареванием программного обеспечения

Старение программного обеспечения

Сбои программного обеспечения являются более вероятной причиной незапланированных сбоев в работе системы по сравнению с отказами оборудования. Это связано с тем, что программное обеспечение со временем демонстрирует возрастающую частоту отказов из-за повреждения данных, накопления числовых ошибок и неограниченного потребления ресурсов. В широко используемом и специализированном программном обеспечении обычным действием для устранения проблемы является перезагрузка, поскольку старение происходит из-за сложности программного обеспечения, которое никогда не бывает без ошибок. Практически невозможно полностью убедиться, что в программном обеспечении отсутствуют ошибки. Даже популярное программное обеспечение, такое как Windows и macOS, должно получать постоянные обновления для повышения производительности и исправления ошибок. Разработка программного обеспечения, как правило, обусловлена ​​необходимостью соблюдения сроков выпуска, а не обеспечением долгосрочной надежности. Разработка программного обеспечения, не подверженного старению, является сложной задачей. Не все программное обеспечение будет стареть с одинаковой скоростью, поскольку некоторые пользователи используют систему более интенсивно, чем другие.

Омоложение

Для предотвращения сбоев или ухудшения качества обновление программного обеспечения можно использовать заранее поскольку неизбежное старение приводит к сбоям в программных системах. Этот упреждающий метод был определен как экономичное решение в ходе исследований отказоустойчивого программного обеспечения в лаборатории ATT Bell в 1990-х годах. Обновление программного обеспечения работает путем удаления накопившихся ошибок и освобождения системных ресурсов, например, путем очистки таблиц ядра операционной системы, использования сборки мусора, повторной инициализации внутренних структур данных, и, возможно, наиболее известным методом обновления является перезагрузка системы.

Существуют простые и сложные техники омоложения. Метод, с которым знакомо большинство людей, - это аппаратная или программная перезагрузка. Более технический пример - это метод омоложения программного обеспечения Apache веб-сервера. Apache реализует одну из форм омоложения, убивая и воссоздавая процессы после обслуживания определенного количества запросов. Другой способ - перезапустить виртуальные машины, работающие в среде облачных вычислений.

Многонациональная телекоммуникационная корпорация ATT реализовала обновление программного обеспечения в реальном система time, собирающая платежные данные в США для большинства телефонных коммутаторов.

Некоторые системы, в которых использовались методы обновления программного обеспечения, включают:

  1. системы обработки транзакций
  2. веб-серверы
  3. Системы космических аппаратов

На Международном симпозиуме по проектированию надежности программного обеспечения (ISSRE) IEEE состоялся 5-й ежегодный международный семинар по старению и обновлению программного обеспечения (woSAR ) в 2013 году. Темы включали:

  • Разработка, реализация и оценка механизмов омоложения
  • Моделирование, анализ и реализация планирования омоложения
  • Программного омоложения сравнительный анализ
Утечки памяти

В системах использующие ОС пользовательские программы должны запрашивать блоки памяти для выполнения операции. После завершения этой операции (например, подпрограммы ) ожидается, что программа освободит все блоки памяти, выделенные для нее, чтобы сделать ее доступной для использования другими программами. В языках программирования без сборщика мусора (например, C и C ++ ) программист должен вызывать необходимые функции освобождения памяти и учитывать все неиспользуемые данные в программе. Однако так бывает не всегда. Из-за ошибок программного обеспечения программа может потреблять все больше и больше памяти, что в конечном итоге приводит к нехватке памяти в системе. В условиях нехватки памяти система обычно работает медленнее из-за узкого места производительности, вызванного интенсивной подкачкой (перегрузкой ), приложения перестают отвечать, а те, которые неожиданно запрашивают большой объем памяти, могут аварийно завершить работу. В случае, если в системе не хватает как памяти, так и подкачки, даже ОС может выйти из строя, что приведет к перезагрузке всей системы.

Программы, написанные на языках программирования, которые используют сборщик мусора (например, Java ) обычно положитесь на эту функцию, чтобы избежать утечек памяти. Таким образом, «старение» этих программ, по крайней мере частично, зависит от качества сборщика мусора, встроенного в саму среду выполнения языка программирования.

Иногда критические компоненты самой ОС могут быть источником утечек памяти и быть главным виновником проблем со стабильностью системы. В Microsoft Windows, например, использование памяти подключаемыми модулями Windows Explorer и долгоживущими процессами, такими как службы, может повлиять на надежность системы до такой степени, что она станет непригодной для использования.. Может потребоваться перезагрузка, чтобы система снова заработала.

Обновление программного обеспечения помогает с утечками памяти, поскольку оно заставляет освободить всю память, используемую приложением. Приложение можно перезапустить, но запускается с чистого листа.

Реализация

Два метода осуществления омоложения:

  1. Омоложение на основе времени
  2. Омоложение на основе прогнозов
Раздутие памяти

Сборка мусора - это форма автоматического управления памятью, при которой система автоматически восстанавливает неиспользуемую память. Например, .NET Framework управляет распределением и освобождением памяти для программного обеспечения, работающего под ним. Но автоматическое отслеживание этих объектов требует времени и не идеально.

Веб-службы на основе.NET управляют несколькими логическими типами памяти, такими как стек, неуправляемая и управляемая куча (свободное пространство). Когда физическая память заполняется, ОС записывает редко используемые ее части на диск, чтобы можно было перераспределить ее другому приложению. Этот процесс известен как подкачка или подкачка. Но если необходимо использовать память, ее нужно перезагрузить с диска. Если несколько приложений предъявляют большие требования, ОС может тратить большую часть своего времени, просто перемещая данные между основной памятью и диском, процесс, известный как перегрузка диска. Поскольку сборщик мусора должен проверять все выделения, чтобы решить, какие из них используются, это может усугубить эту проблему. В результате обширная подкачка может привести к увеличению циклов сборки мусора с миллисекунд до десятков секунд. Это приводит к проблемам с удобством использования.

Ссылки
Дополнительная литература
Последняя правка сделана 2021-06-08 08:26:43
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте