Jump to content

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

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

Это явление было впервые выявлено Дэвидом Парнасом в эссе, в котором исследовалось, что с этим делать: [2]

«Программы, как и люди, стареют. Мы не можем предотвратить старение, но мы можем понять его причины, принять меры по ограничению его последствий, временно обратить вспять часть причиненного им ущерба и подготовиться к тому дню, когда программное обеспечение выйдет из строя. более жизнеспособным». [3]

Как с академической, так и с промышленной точки зрения явление старения программного обеспечения усилилось. Недавние исследования были сосредоточены на выяснении его причин и последствий. [4] Раздувание и утечка памяти , а также повреждение данных и невыполненные блокировки файлов являются особыми причинами старения программного обеспечения.

управление старением Проактивное программного обеспечения

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

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

Омоложение [ править ]

Чтобы предотвратить сбои или деградацию, обновление программного обеспечения можно активно использовать , поскольку неизбежное старение приводит к сбоям в программных системах. Этот упреждающий метод был признан экономически эффективным решением во время исследований в AT&T Bell Laboratories в 1990-х годах. отказоустойчивого программного обеспечения [9] Обновление программного обеспечения работает путем удаления накопленных ошибок и освобождения системных ресурсов, например, путем очистки таблиц ядра операционной системы, использования сборки мусора, повторной инициализации внутренних структур данных и, возможно, наиболее известный метод обновления — перезагрузка системы.

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

Многонациональная телекоммуникационная корпорация AT&T внедрила обновление программного обеспечения в системе реального времени, собирающей платежные данные в США для большинства телефонных станций. [12]

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

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

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

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

Утечки памяти [ править ]

Некоторые языки программирования , такие как C и C++ , позволяют программисту выделять динамическую память . Более того, программисту может потребоваться освободить память, когда она больше не нужна. Освобождение памяти необходимо, поскольку некоторые операционные системы (ОС) не выполняют сборку мусора после завершения процесса . Со временем это может потреблять все больше и больше памяти, что в конечном итоге приведет к нехватке памяти на компьютере. [14] В условиях нехватки памяти компьютер обычно работает медленнее из-за интенсивного обмена и перезагрузки . Когда это происходит, приложения начинают работать медленно или даже перестают отвечать на запросы. Если на компьютере не хватает памяти и пространства подкачки, ОС может автоматически перезагрузиться или, что еще хуже, зависнуть. [15]

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

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

Реализация [ править ]

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

  1. Омоложение по времени
  2. Омоложение на основе прогнозов

Раздутие памяти [ править ]

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

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

См. также [ править ]

Ссылки [ править ]

  1. ^ Шерешевский, М.; Кроуэлл, Дж.; Цукич, Б.; Гандикота, В.; Ян Лю (2003). «Старение программного обеспечения и мультифрактальность ресурсов памяти» . Международная конференция 2003 г. по надежным системам и сетям, 2003 г. Материалы . стр. 721–730. дои : 10.1109/DSN.2003.1209987 . ISBN  978-0-7695-1952-4 . S2CID   18697750 .
  2. ^ Парнас, Д.Л. (1994). «Устарение программного обеспечения». Материалы 16-й Международной конференции по программной инженерии . стр. 279–287. дои : 10.1109/ICSE.1994.296790 . ISBN  978-0-8186-5855-6 . S2CID   790287 .
  3. ^ «Старение программного обеспечения | утренняя газета» . 14 октября 2014 г. Проверено 12 февраля 2024 г.
  4. ^ Гроттке, Майкл; Матиас, Ривалино; Триведи, Кишор С. (2008). «Основы старения программного обеспечения». 2008 Международная конференция IEEE по семинарам по проектированию надежности программного обеспечения (ISSRE WKSP) . стр. 1–6. дои : 10.1109/ISSREW.2008.5355512 . ISBN  978-1-4244-3416-9 . S2CID   11527276 .
  5. ^ «Оатд: -» .
  6. ^ Гарг, С.; Ван Мурсел, А.; Вайдьянатан, К.; Триведи, Канзас (1998). «Методология обнаружения и оценки старения программного обеспечения». Материалы девятого международного симпозиума по обеспечению надежности программного обеспечения (кат. № 98TB100257) . стр. 283–292. дои : 10.1109/ISSRE.1998.730892 . ISBN  978-0-8186-8991-8 . S2CID   8696313 .
  7. ^ Кастелли, В.; Харпер, Р.Э.; Гейдельбергер, П.; Хантер, Юго-Запад; Триведи, Канзас; Вайдьянатан, К.; Зеггерт, WP (01 марта 2001 г.). «Проактивное управление старением программного обеспечения». Журнал исследований и разработок IBM . 45 (2): 311–332. CiteSeerX   10.1.1.28.7273 . дои : 10.1147/rd.452.0311 . ISSN   0018-8646 .
  8. ^ Гросс, КК; Бхардвадж, В.; Бикфорд, Р. (2003). «Превентивное обнаружение механизмов старения программного обеспечения на компьютерах, где важна производительность». 27-й ежегодный семинар НАСА по разработке программного обеспечения Годдарда / IEEE, 2002 г. Материалы . стр. 17–23. дои : 10.1109/SEW.2002.1199445 . ISBN  978-0-7695-1855-8 . S2CID   17167955 .
  9. ^ Котронео Д., Нателла Р., Пьетрантуоно Р. и Руссо С. 2014. Обзор исследований старения и омоложения программного обеспечения. ACM J. Emerg. Технол. Вычислить. Сист. 10, 1, статья 8 (январь 2014 г.), 34 стр.
  10. ^ Триведи, К.С. и Вайдьянатан, К. 2007. Старение и омоложение программного обеспечения. Энциклопедия компьютерных наук и техники Wiley.
  11. ^ Брунео, Дарио; Дистефано, Сальваторе; Лонго, Франческо; Пулиафито, Антонио; Скарпа, Марко (2013). «Обновление программного обеспечения на основе рабочих нагрузок в облачных системах». Транзакции IEEE на компьютерах . 62 (6): 1072–1085. дои : 10.1109/TC.2013.30 . S2CID   23981532 .
  12. ^ Триведи, Кишор С.; Вайдьянатан, Кальянараман (1 января 2004 г.). Рейс, Рикардо (ред.). Обновление программного обеспечения — моделирование и анализ . ИФИП Международная федерация обработки информации. Спрингер США. стр. 151–182. дои : 10.1007/1-4020-8159-6_6 . ISBN  978-1-4020-8158-3 .
  13. ^ Лей Ли; Вайдьянатан, К.; Триведи, К.С. (2002). «Подход к оценке старения программного обеспечения на веб-сервере». Труды Международного симпозиума по эмпирической разработке программного обеспечения . стр. 91–100. дои : 10.1109/ISESE.2002.1166929 . ISBN  978-0-7695-1796-4 . S2CID   8170010 .
  14. ^ «Обзор утечек памяти» . msdn.microsoft.com . Проверено 4 ноября 2015 г.
  15. ^ Мартин Браун; Кен Милберг (16 ноября 2010 г.). «Оптимизация производительности памяти AIX 7. Часть 3. Настройка параметров пространства подкачки» . ИБМ .
  16. ^ «Предотвращение утечек памяти в приложениях Windows (Windows)» . msdn.microsoft.com . Проверено 4 ноября 2015 г.
  17. ^ СР, Чайтра; Басу, Анирбан (2012). «Обновление программного обеспечения в веб-сервисах» . Международный журнал компьютерных приложений . 54 (8): 31–35. Бибкод : 2012IJCA...54h..31S . дои : 10.5120/8589-2340 .

Дальнейшее чтение [ править ]

  • Р. Матиас-младший и П. Дж. Фрейтас Фильо, «Экспериментальное исследование старения и омоложения программного обеспечения на веб-серверах», Труды 30-й ежегодной международной конференции по компьютерному программному обеспечению и приложениям (COMPSAC'06), Vol. 01, стр. 189 – 196, 2006.
  • М. Гроттке, Р. Матиас-младший и К.С. Триведи, «Основы старения программного обеспечения», Семинар по старению и омоложению программного обеспечения (WoSAR/ISSRE), 2008 г.
  • Р. Матиас-младший, П. Барбетта, К. Триведи, П. Фрейтас Фильо «Тесты ускоренной деградации, применяемые к экспериментам по устареванию программного обеспечения», IEEE Transactions on Reliability 59 (1): 102–114, 2010.
  • М. Гроттке, Л. Ли, К. Вайдьянатан и К. С. Триведи, «Анализ старения программного обеспечения на веб-сервере», IEEE Transactions on Reliability, vol. 55, нет. 3, стр. 411–420, 2006.
  • М. Гроттке, К. Триведи, «Борьба с ошибками: удаление, повторение, репликация и обновление», IEEE Computer 40(2): 107–109, 2007.
  • Дополнительные статьи о материалах семинара по старению и омоложению программного обеспечения (WoSAR'08,'10, '11, '12, '13, '14) на IEEE Xplore.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 46d4a94fbddbf6e81f98be699b9155c0__1707744240
URL1:https://arc.ask3.ru/arc/aa/46/c0/46d4a94fbddbf6e81f98be699b9155c0.html
Заголовок, (Title) документа по адресу, URL1:
Software aging - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)