stringtranslate.com

Отказоустойчивость

Отказоустойчивость — это способность системы поддерживать правильную работу в случае сбоев или неисправностей одного или нескольких ее компонентов. Если качество ее работы вообще снижается, то это снижение пропорционально серьезности отказа по сравнению с наивно спроектированной системой, в которой даже небольшой отказ может привести к полному выходу из строя . Отказоустойчивость особенно востребована в системах с высокой доступностью , критически важных и даже жизненно важных системах . Способность поддерживать функциональность при выходе из строя частей системы называется постепенной деградацией . [1]

Отказоустойчивая конструкция позволяет системе продолжать работу по назначению, возможно, на пониженном уровне, вместо того, чтобы полностью выйти из строя, когда какая-то часть системы выходит из строя . [2] Этот термин чаще всего используется для описания компьютерных систем , предназначенных для продолжения более или менее полной работоспособности, возможно, с уменьшением пропускной способности или увеличением времени отклика в случае частичного сбоя. То есть система в целом не останавливается из-за проблем ни в железе , ни в программном обеспечении . Примером в другой области является автомобиль, сконструированный таким образом, чтобы он продолжал управляться даже в случае прокола одной из шин, или конструкция, способная сохранять свою целостность при наличии повреждений, вызванных такими причинами, как усталость , коррозия , производственное повреждение. недостатки или влияние.

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

История

Первым известным отказоустойчивым компьютером был SAPO , построенный в 1951 году в Чехословакии Антонином Свободой . [3] : 155  Его базовая конструкция представляла собой магнитные барабаны , соединенные через реле, с голосовым методом обнаружения ошибок памяти ( тройное модульное резервирование ). В этом направлении было разработано еще несколько машин, в основном для военного использования. В конце концов они разделились на три отдельные категории: машины, которые могли работать долгое время без какого-либо обслуживания, например те, которые используются на космических зондах и спутниках НАСА ; компьютеры, которые были очень надежными, но требовали постоянного контроля, например, те, которые использовались для мониторинга и управления атомными электростанциями или экспериментов на суперколлайдере ; и, наконец, компьютеры с большим временем работы, которые будут интенсивно использоваться, например, многие суперкомпьютеры, используемые страховыми компаниями для мониторинга вероятности .

Большая часть разработок в области так называемых вычислений LLNM (Long Life, No Maintenance) была сделана НАСА в 1960-х годах [4] в рамках подготовки к проекту «Аполлон» и другим аспектам исследований. Первая машина НАСА отправилась в космическую обсерваторию , а их вторая попытка, компьютер JSTAR, была использована в «Вояджере» . Этот компьютер имел резервную копию массивов памяти для использования методов восстановления памяти, поэтому его называли компьютером самотестирования и восстановления JPL. Он мог обнаруживать собственные ошибки и исправлять их или при необходимости вызывать избыточные модули. По состоянию на начало 2022 года компьютер все еще работает. [5]

Впервые сверхнадежные компьютеры были изобретены в основном производителями самолетов , [3] : 210  атомными энергетическими компаниями и железнодорожной отраслью США. Им требовались компьютеры с огромным временем безотказной работы, которые достаточно корректно выходили из строя при возникновении неисправности, чтобы обеспечить непрерывную работу, полагаясь при этом на тот факт, что выходные данные компьютера будут постоянно контролироваться людьми для обнаружения неисправностей. Опять же, IBM разработала первый компьютер такого типа для НАСА для управления ракетами «Сатурн-5» , но позже BNSF , Unisys и General Electric создали свои собственные. [3] : 223 

В 1970-е годы в этой области проводилось много работы. [6] [7] [8] Например, F14 CADC имел встроенную систему самотестирования и резервирования. [9]

В целом, первые усилия по созданию отказоустойчивых проектов были сосредоточены главным образом на внутренней диагностике, когда неисправность указывала на то, что что-то неисправно, и работник мог это заменить. У SAPO, например, был метод, с помощью которого неисправные барабаны памяти перед выходом из строя издавали шум. [10] Более поздние усилия показали, что для того, чтобы быть полностью эффективной, система должна была самовосстанавливаться и диагностировать – изолировать неисправность, а затем осуществлять резервное резервное копирование, одновременно предупреждая о необходимости ремонта. Это известно как резервирование N-модели, когда неисправности вызывают автоматический отказоустойчивый режим и предупреждение оператору, и это до сих пор является наиболее распространенной формой отказоустойчивой конструкции первого уровня, используемой сегодня.

Голосование было еще одним первоначальным методом, как обсуждалось выше, при котором несколько резервных копий постоянно работали и проверяли результаты друг друга, в результате чего, если, например, четыре компонента сообщали об ответе 5, а один компонент сообщал об ответе 6, остальные четыре «проголосовал бы» за неисправность пятого компонента и вывел его из эксплуатации. Это называется большинством голосов M из N.

Исторически сложилось так, что движение всегда заключалось в движении дальше от N-модели и в большей степени к M из N из-за того, что сложность систем и трудность обеспечения переходного состояния от отказо-отрицательного к отказоположительному не нарушали операции. .

Tandem Computers , в 1976 году [11] и Stratus были одними из первых компаний, специализирующихся на разработке отказоустойчивых компьютерных систем для онлайн-обработки транзакций .

Примеры

«M2 Mobile Web», исходный мобильный веб-интерфейс Twitter, позже до декабря 2020 года служил резервной устаревшей версией для клиентов без поддержки JavaScript и / или несовместимых браузеров.

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

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

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

Форматы данных также могут быть спроектированы так, чтобы постепенно ухудшаться. Например, HTML разработан с учетом прямой совместимости , что позволяет веб-браузерам игнорировать новые и неподдерживаемые объекты HTML, не делая документ непригодным для использования. Кроме того, некоторые сайты, включая популярные платформы, такие как Twitter (до декабря 2020 г.), предоставляют дополнительный облегченный интерфейс, который не использует JavaScript и имеет минимальный макет, чтобы обеспечить широкую доступность и охват , например, на игровых консолях с ограниченным доступом в Интернет. возможности просмотра. [12] [13]

Терминология

Пример плавного ухудшения изображения с прозрачностью. Каждое из двух верхних изображений является результатом просмотра составного изображения в программе просмотра, распознающей прозрачность. Два нижних изображения — результат просмотра без поддержки прозрачности. Поскольку маска прозрачности (в центре внизу) удаляется, остается только наложение (в центре вверху); Изображение слева было спроектировано так, чтобы постепенно ухудшаться, поэтому оно по-прежнему имеет смысл без информации о прозрачности.

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

Система, спроектированная так, чтобы обеспечить отказоустойчивость , отказоустойчивость или корректный отказ , независимо от того, функционирует ли она на пониженном уровне или полностью выходит из строя, делает это таким образом, чтобы защитить людей, имущество или данные от травм, повреждения, вторжения или раскрытие. На компьютерах программа может обеспечить отказоустойчивость, выполнив плавный выход (в отличие от неконтролируемого сбоя), чтобы предотвратить повреждение данных после возникновения ошибки. [14] Аналогичное различие проводится между «хорошим провалом» и « плохим провалом ».

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

В отказоустойчивых компьютерных системах программы, которые считаются надежными , предназначены для продолжения работы, несмотря на ошибку, исключение или неверный ввод, вместо полного сбоя. Хрупкость программного обеспечения является противоположностью надежности. Устойчивые сети продолжают передавать данные, несмотря на выход из строя некоторых каналов или узлов; Также ожидается, что устойчивые здания и инфраструктура предотвратят полный отказ в таких ситуациях, как землетрясения, наводнения или столкновения.

Система с высокой прозрачностью сбоев предупредит пользователей о том, что произошел сбой компонента, даже если она продолжает работать с полной производительностью, чтобы можно было устранить сбой или предвидеть неизбежный полный отказ. [16] Аналогичным образом, отказоустойчивый компонент спроектирован таким образом, чтобы сообщать о первой точке отказа, а не позволять последующим компонентам выходить из строя и генерировать отчеты после этого. Это упрощает диагностику основной проблемы и может предотвратить неправильную работу в неисправном состоянии.

Состояние одиночной неисправности – это ситуация, когда одно из средств защиты от опасности неисправно. Если одно условие отказа неизбежно приводит к другому состоянию одиночного отказа, два отказа рассматриваются как одно состояние одного отказа. [17] Источник приводит следующий пример:

Состояние единичного отказа – это состояние, когда одно средство защиты от опасностей в оборудовании неисправно или присутствует одно внешнее ненормальное состояние, например, короткое замыкание между токоведущими частями и рабочей частью. [18]

Критерии

Обеспечить отказоустойчивую конструкцию для каждого компонента обычно невозможно. Сопутствующее резервирование влечет за собой ряд недостатков: увеличение веса, размера, энергопотребления, стоимости, а также времени на проектирование, проверку и тестирование. Поэтому необходимо рассмотреть ряд вариантов, чтобы определить, какие компоненты должны быть отказоустойчивыми: [19]

Примером компонента, который проходит все испытания, является система безопасности пассажиров автомобиля. Хотя мы обычно не думаем об основной системе удержания пассажиров, это гравитация . Если автомобиль перевернется или подвергнется сильной перегрузке, этот основной метод удержания пассажиров может оказаться неэффективным. Удержание пассажиров во время такой аварии имеет решающее значение для безопасности, поэтому мы проходим первое испытание. Аварии, приводившие к катапультированию пассажиров, были довольно распространены до появления ремней безопасности , поэтому мы проходим второй тест. Стоимость резервного метода удержания, такого как ремни безопасности, довольно низка как с экономической точки зрения, так и с точки зрения веса и места, поэтому мы проходим третий тест. Поэтому установка ремней безопасности во все автомобили – отличная идея. Другие «дополнительные удерживающие системы», такие как подушки безопасности , стоят дороже и поэтому проходят это испытание с меньшим отрывом.

Еще одним прекрасным и долгосрочным примером применения этого принципа на практике является тормозная система: хотя сами тормозные механизмы имеют решающее значение, они не особенно склонны к внезапному (а не прогрессирующему) отказу и в любом случае обязательно дублируются, чтобы обеспечить возможность равномерное и сбалансированное применение тормозного усилия на все колеса. Кроме того, дальнейшее удвоение основных компонентов будет непомерно дорогостоящим, и это приведет к значительному увеличению веса. Однако столь же важные системы для приведения в действие тормозов под управлением водителя по своей природе менее надежны, обычно в них используется трос (может ржаветь, растягиваться, заклинивать, ломаться) или гидравлическая жидкость (может течь, закипать и образовывать пузыри, поглощать воду и, таким образом, терять эффективность). ). Таким образом, в большинстве современных автомобилей контур гидравлического тормоза ножного тормоза разделен по диагонали, что дает две меньшие точки отказа: потеря либо снижает тормозную мощность только на 50%, но не вызывает такого опасного дисбаланса тормозных усилий, как прямое движение вперед-назад или лево-право. разделяется, и в случае полного выхода из строя гидравлического контура (относительно очень редкое явление) имеется предохранитель в виде стояночного тормоза с тросовым приводом, который управляет относительно слабыми задними тормозами, но все же может безопасно остановить автомобиль. в сочетании с торможением трансмиссии/двигателя, если требования к нему соответствуют нормальному дорожному потоку. В совокупности маловероятное сочетание полного отказа ножного тормоза с необходимостью резкого торможения в экстренной ситуации, скорее всего, приведет к столкновению, но все равно к столкновению на более низкой скорости, чем могло бы произойти в противном случае.

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

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

Требования

Основные характеристики отказоустойчивости требуют:

  1. Отсутствие единой точки отказа . Если в системе произошел сбой, она должна продолжать работать без перерывов во время процесса ремонта.
  2. Изоляция отказа неисправного компонента. При возникновении сбоя система должна иметь возможность изолировать сбой от неисправного компонента. Это требует добавления специальных механизмов обнаружения сбоев, которые существуют только для целей изоляции сбоев. Восстановление после неисправности требует классификации неисправности или неисправного компонента. Национальный институт стандартов и технологий (NIST) классифицирует неисправности по местонахождению, причине, продолжительности и следствию. [ где? ] [ необходимо разъяснение ]
  3. Сдерживание сбоев для предотвращения распространения сбоя. Некоторые механизмы отказа могут привести к сбою системы, распространяя сбой на остальную часть системы. Примером такого рода сбоя является «незаконный передатчик», который может заглушить законную связь в системе и вызвать общий сбой системы. Для защиты системы необходимы брандмауэры или другие механизмы, которые изолируют посторонний передатчик или неисправный компонент.
  4. Наличие режимов реверса [ нужны разъяснения ]

Кроме того, отказоустойчивые системы характеризуются как плановыми, так и незапланированными отключениями услуг. Обычно они измеряются на уровне приложения, а не только на аппаратном уровне. Показатель качества называется доступностью и выражается в процентах. Например, система пяти девяток статистически обеспечит доступность на 99,999%.

Отказоустойчивые системы обычно основаны на концепции резервирования.

Методы отказоустойчивости

Исследование видов допусков, необходимых для критически важных систем, требует большого объема междисциплинарной работы. Чем сложнее система, тем тщательнее необходимо продумывать и готовиться ко всем возможным взаимодействиям. Учитывая важность высокоценных систем на транспорте, в коммунальном хозяйстве и в вооруженных силах, область тем, затрагиваемых исследованиями, очень широка: она может включать в себя такие очевидные темы, как моделирование и надежность программного обеспечения или проектирование аппаратного обеспечения , до загадочных элементов, таких как стохастические модели, теория графов , формальная или исключающая логика, параллельная обработка , удаленная передача данных и многое другое. [20]

Репликация

Запасные компоненты решают первую фундаментальную характеристику отказоустойчивости тремя способами:

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

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

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

Для синхронизации репликаций необходимо сделать их внутренние сохраненные состояния одинаковыми. Их можно запустить из фиксированного начального состояния, например состояния сброса. Альтернативно внутреннее состояние одной реплики можно скопировать в другую реплику.

Одним из вариантов DMR является пара и резерв . Два реплицированных элемента работают синхронно как пара, а схема голосования обнаруживает любое несоответствие между их операциями и выдает сигнал, указывающий на наличие ошибки. Другая пара действует точно так же. Последняя схема выбирает выход пары, которая не объявляет об ошибке. Для метода Pair and Spare требуется четыре реплики, а не три, как для TMR, но он используется в коммерческих целях.

Безотказные вычисления

Вычисления без сбоев — это метод, который позволяет компьютерным программам продолжать выполнение, несмотря на ошибки . [21] Этот метод может применяться в различных контекстах. Он может обрабатывать недопустимое чтение памяти, возвращая в программу искусственное значение, [22] которая, в свою очередь, использует изготовленное значение и игнорирует предыдущее значение памяти , к которому она пыталась получить доступ. Это сильно контрастирует с типичными программами проверки памяти , которые сообщить программе об ошибке или прервать выполнение программы.

Этот подход требует затрат производительности: поскольку этот метод переписывает код для вставки динамических проверок действительности адреса, время выполнения увеличится на 80–500%. [23]

Восстановительное пастырство

Пассинг восстановления — это упрощенный метод, позволяющий программам восстанавливаться после фатальных ошибок, таких как разыменование нулевого указателя и деление на ноль. [24] По сравнению с методом вычислений с забвением о сбоях, восстановление работает напрямую с скомпилированным двоичным файлом программы и не требует перекомпиляции в программу.

Он использует систему двоичного инструментирования «точно в срок» Pin . Он присоединяется к процессу приложения при возникновении ошибки, восстанавливает выполнение, отслеживает эффекты восстановления по мере продолжения выполнения, содержит эффекты восстановления внутри процесса приложения и отсоединяется от процесса после того, как все эффекты восстановления удаляются из состояния процесса. Это не мешает нормальному выполнению программы и поэтому требует незначительных накладных расходов. [24] Для 17 из 18 систематически собираемых реальных ошибок разыменования нуля и деления на ноль реализация прототипа позволяет приложению продолжать работу, обеспечивая приемлемый вывод и обслуживание своих пользователей на входах, вызывающих ошибки. [24]

Автоматический выключатель

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

Резервирование

Резервирование — это предоставление функциональных возможностей, которые были бы ненужны в безотказной среде. [25] Это может быть резервное копирование компонентов, которые автоматически «включаются» в случае сбоя одного из компонентов. Например, большие грузовые автомобили могут потерять шину без каких-либо серьезных последствий. У них много шин, и ни одна шина не является критичной (за исключением передних шин, которые используются для рулевого управления, но обычно несут меньшую нагрузку каждая и в целом, чем остальные четыре из 16, поэтому вероятность выхода из строя у них меньше). ). Идея использования резервирования для повышения надежности системы была впервые выдвинута Джоном фон Нейманом в 1950-х годах. [26]

Возможны два вида избыточности: [27] пространственная избыточность и временная избыточность. Резервирование пространства обеспечивает дополнительные компоненты, функции или элементы данных, которые не нужны для безотказной работы. Избыточность пространства далее подразделяется на аппаратную, программную и информационную избыточность, в зависимости от типа избыточных ресурсов, добавляемых в систему. При избыточности времени вычисления или передача данных повторяются, и результат сравнивается с сохраненной копией предыдущего результата. Текущая терминология для такого рода тестирования называется «Тестирование отказоустойчивости при эксплуатации» или сокращенно ISFTT.

Недостатки

Преимущества отказоустойчивой конструкции очевидны, в то время как многие ее недостатки — нет:

Связанные термины

Существует разница между отказоустойчивостью и системами, в которых редко возникают проблемы. Например, в поперечных системах Western Electric частота отказов составляла два часа за сорок лет, и поэтому они были очень устойчивы к сбоям . Но когда сбой все же произошел, они все равно полностью переставали работать и, следовательно, не были отказоустойчивыми .

Смотрите также

Рекомендации

  1. ^ Адаптивная отказоустойчивость и плавная деградация, Оскар Гонсалес и др., 1997, Массачусетский университет - Амхерст
  2. ^ Джонсон, BW (1984). «Отказоустойчивые микропроцессорные системы», IEEE Micro, vol. 4, нет. 6, стр. 6–21.
  3. ^ abc Дэниел П. Севиорек; К. Гордон Белл; Аллен Ньюэлл (1982). Компьютерные структуры: принципы и примеры . МакГроу-Хилл . ISBN 0-07-057302-6.
  4. ^ Альгирдас Авиженис; Джордж К. Гилли; Фрэнсис П. Матур; Дэвид А. Реннелс; Джон А. Рор; Дэвид К. Рубин. «Компьютер STAR (самотестирование и ремонт): исследование теории и практики проектирования отказоустойчивых компьютеров» (PDF) .
  5. ^ «Состояние миссии «Вояджер» (чаще всего устаревшее как минимум на три месяца)» . НАСА . Проверено 1 апреля 2022 г.
  6. ^ Рэнделл, Брайан ; Ли, Пенсильвания; Треливэн, ПК (июнь 1978 г.). «Проблемы надежности при проектировании вычислительных систем». Обзоры вычислительной техники ACM . 10 (2): 123–165. дои : 10.1145/356725.356729. ISSN  0360-0300. S2CID  16909447.
  7. ^ Пи Джей Деннинг (декабрь 1976 г.). «Отказоустойчивые операционные системы». Обзоры вычислительной техники ACM . 8 (4): 359–389. дои : 10.1145/356678.356680. ISSN  0360-0300. S2CID  207736773.
  8. ^ Теодор А. Линден (декабрь 1976 г.). «Структуры операционной системы для поддержки безопасности и надежного программного обеспечения». Обзоры вычислительной техники ACM . 8 (4): 409–445. дои : 10.1145/356678.356682. hdl : 2027/mdp.39015086560037 . ISSN  0360-0300. S2CID  16720589.
  9. ^ Рэй Холт. «Центральный компьютер воздушных данных F14A и новейшие технологии LSI в 1968 году».
  10. ^ Отказоустойчивые вычисления в компьютерном проектировании Нилфорошан, MR Журнал вычислительных наук в архиве колледжей, том 18, выпуск 4 (апрель 2003 г.) Страницы: 213–220, ISSN  1937-4771
  11. ^ «История TANDEM COMPUTERS, INC. - FundingUniverse» . www.fundinguniverse.com . Проверено 01 марта 2023 г.
  12. ^ «Почему ваш сайт должен работать без JavaScript» . Сообщество разработчиков . 17 марта 2021 г. Проверено 16 мая 2021 г.
  13. ^ Фэрфакс, Закери (28 ноября 2020 г.). «Отключение устаревшего Twitter означает, что вы больше не можете писать в Твиттере с 3DS» . Экранная ругань . Проверено 1 июля 2021 г.
  14. ^ Худак, Джей-Джей; Сух, Б.-Х.; Севёрек, ДП; Сигалл, З. (1993). «Оценка и сравнение методов отказоустойчивого программного обеспечения». Транзакции IEEE о надежности . 42 (2): 190–204. дои : 10.1109/24.229487. ISSN  1558-1721.
  15. ^ Столлингс, В. (2009): Операционные системы. Внутреннее устройство и принципы проектирования , шестое издание
  16. ^ Тампи, Сабу М. (23 ноября 2009 г.). «Введение в распределенные системы». arXiv : 0911.4395 [cs.DC].
  17. ^ «Контроль». Grouper.ieee.org . Архивировано из оригинала 8 октября 1999 г. Проверено 06 апреля 2016 г.
  18. ^ Баха Аль-Шейх, Саймон Г. Стейси, Основы оборудования для анестезии, интенсивной терапии и периоперационной медицины (2017), стр. 2017. 247.
  19. ^ Дуброва, Е. (2013). «Отказоустойчивый дизайн», Springer, 2013, ISBN 978-1-4614-2112-2 . 
  20. ^ Оценка надежности некоторых отказоустойчивых компьютерных архитектур . Спрингер-Верлаг. Ноябрь 1980 г. ISBN. 978-3-540-10274-8.
  21. ^ Герцберг, Амир; Шульман, Хая (2012). «Забывчивые и честные двухсторонние вычисления с помощью сервера». 2012 Седьмая международная конференция по доступности, надежности и безопасности . IEEE. стр. 75–84. дои : 10.1109/ares.2012.28. ISBN 978-1-4673-2244-7. S2CID  6579295.
  22. ^ Риггер, Мануэль; Пекарек, Дэниел; Мессенбёк, Ханспетер (2018), «Контекстно-зависимые вычисления без учета сбоев как средство предотвращения переполнения буфера», Сетевая и системная безопасность , Конспекты лекций по информатике, Cham: Springer International Publishing, vol. 11058, стр. 376–390, arXiv : 1806.09026 , doi : 10.1007/978-3-030-02744-5_28, ISBN 978-3-030-02743-8, получено 7 октября 2020 г.
  23. ^ Керомитис, Ангелос Д. (2007), «Характеристика систем самовосстановления программного обеспечения», Городецкий, Владимир И.; Котенко Игорь; Скормин, Виктор А. (ред.), Характеристика самовосстанавливающихся систем программного обеспечения , Безопасность компьютерных сетей: Четвертая международная конференция по математическим методам, моделям и архитектурам безопасности компьютерных сетей, Springer , ISBN 978-3-540-73985-2
  24. ^ abc Лонг, Фан; Сидироглу-Дускос, Стелиос; Ринар, Мартин (2014). «Автоматическое исправление и сдерживание ошибок во время выполнения с помощью восстановления». Материалы 35-й конференции ACM SIGPLAN по проектированию и реализации языков программирования . ПЛДИ '14'. Нью-Йорк, штат Нью-Йорк, США: ACM. стр. 227–238. дои : 10.1145/2594291.2594337 . ISBN 978-1-4503-2784-8. S2CID  6252501 .
  25. ^ Лапри, JC (1985). «Надежные вычисления и отказоустойчивость: концепции и терминология», Труды 15-го Международного симпозиума по отказоустойчивым вычислениям (FTSC-15), стр. 2–11.
  26. ^ фон Нейман, Дж. (1956). «Вероятностная логика и синтез надежных организмов из ненадежных компонентов», в «Исследованиях автоматов», под ред. К. Шеннон и Дж. Маккарти, Princeton University Press, стр. 43–98.
  27. ^ Авизиенис, А. (1976). «Отказоустойчивые системы», Транзакции IEEE на компьютерах, том. 25, нет. 12, стр. 1304–1312.