Implementation of middleware fault tolerance support for real-time Осуществление промежуточного поддержки отказоустойчивости в режиме реального времени
embedded applications встраиваемых приложений
F. Afonso Ф. Афонсу
1 1
, C. Silva , С. Сильва
1 1
, S. Montenegro , С. Черногории
2 2
, A. Tavares , А. Таварес
1 1
1 1
Department of Industrial Electronics, University of Minho, Portugal Кафедра промышленной электроники университета Миньо, Португалия
2 2
Fraunhofer Institute for Computer Architecture and Software Technology, Germany Институт Фраунгофера компьютерной архитектуры и программных технологий, Германия
1 1
{fafonso, csilva, atavares}@dei.uminho.pt, {Fafonso, csilva, atavares} @ dei.uminho.pt,
2 2
sergio@first.fhg.de sergio@first.fhg.de
Abstract Аннотация
Critical real-time embedded systems need to apply Критические в режиме реального времени встроенных систем необходимо применять
fault tolerance strategies to deal with operation time толерантности стратегии вине иметь дело с наработкой
errors, either in hardware or software. ошибки, либо в оборудование или программное обеспечение. In this paper В данной работе
we present the ongoing work to provide application мы представляем текущую работу обеспечить применение
fault tolerance by means of implementing middleware отказоустойчивости путем внедрения промежуточного
transparent support over the BOSS embedded прозрачную поддержку над боссом встроенных
operating system. операционной системы. The middleware uses a publisher- Промежуточного использует издатель-
subscriber protocol and enables the execution of Протокол абонента и позволяет исполнения
several fault tolerance strategies with minimum burden несколько отказоустойчивость стратегии с минимальной нагрузки
to the application level software на программном уровне приложения
* *
. .
1. 1. Introduction Введение
Real-time embedded systems are applied in several Встроенные системы применяются в ряде
safety critical domains as aerospace, automotive and безопасности критических областях, как аэрокосмическая, автомобильная и
industrial. промышленные. In these applications, high dependability [1] В этих приложениях, высокая надежность [1]
must be a goal in the system design. должна быть цель в разработке системы. However, despite Однако, несмотря на
all efforts to prevent and remove faults during system все усилия для предотвращения и устранения неисправностей в системе
development, some sort of fault tolerance is required to развития, своего рода отказоустойчивость, необходимые для
deal with residual software faults and hardware faults сделки с остаточными неисправностей программного обеспечения и аппаратных сбоев
at run-time. во время выполнения.
Fault tolerance is usually achieved by redundancy Отказоустойчивость обычно достигается путем резервирования
and diversity. и разнообразия. Hardware redundancy and software Аппаратное резервирование и программного обеспечения
diversity are the most common techniques for разнообразия наиболее распространенных методов
increasing system reliability, but several other повышение надежности системы, а несколько других
techniques may be applied, as time redundancy (task методы могут быть применены, как временной избыточности (задача
re-execution), information redundancy (correction переоформление), избыточности информации (коррекция
codes) and data diversity (data re-expression). коды) и данные разнообразия (данные повторного выражения).
The purpose of this work is to support fault-tolerant Целью данной работы является поддержка отказоустойчивых
(FT) strategies in applications developed using the (FT) стратегии в приложениях, разработанных с использованием
BOSS embedded operating system. BOSS встроенной операционной системы. As critical Как критической
applications are usually implemented with multi- приложений, как правило, осуществляется с несколькими
computer systems connected by one or more networks, компьютерные системы связаны одну или несколько сетей,
the middleware was the selected layer of software to промежуточного был выбран слой программного обеспечения
* *
This work has been supported by the Portuguese Foundation for Эта работа была поддержана фондом Португальский
Science and Technology (FCT). Наука и технологии (ПКТ).
deliver transparent fault tolerance support to доставить прозрачной поддержки отказоустойчивости в
applications. приложений. However, the operating system kernel Тем не менее, ядро системы операционной
had to be modified, because FT was expected to work пришлось изменить, так как FT, как ожидается, работа
at the thread level. на уровне потока.
2. 2. BOSS operating system BOSS операционной системы
BOSS is a real-time embedded operating system БОСС в режиме реального времени встроенной операционной системы
designed разработаны
for для
applications приложений
demanding требовательный
high высокая
dependability [2]. надежность [2]. Simplicity is the main strategy for Простота является основной стратегией для
achieving dependability in BOSS, as complexity is the достижение надежности в BOSS, как сложность
cause of most development faults. причиной большинства недостатков развития. The system was Системы
developed in C++, using an object-oriented framework разработана в C + + с использованием объектно-ориентированного программирования
simple enough to be understood and applied in several достаточно проста, чтобы понимать и применять в нескольких
application domains. областях применения.
The BIRD Satellite, designed for early detection of BIRD спутник, предназначенный для раннего обнаружения
fires, uses BOSS as the multi-computer control пожары, использует BOSS как-компьютерного управления несколькими
operating system. операционной системы. BOSS has been ported to different BOSS была портирована на различные
projects and platforms as PowerPC, x86 and Atmel проектов и платформ как PowerPC, x86 и Atmel
AVR. AVR. It also runs on top of Linux, mainly for Он также работает поверх Linux, в основном для
developing and testing purposes разработки и тестирования
BOSS was designed to support fault tolerance in BOSS был разработан для поддержки отказоустойчивости в
applications with hardware redundancy by including a приложений с аппаратной избыточности, в том числе
middleware промежуточного
which которые
carries осуществляет
out из
transparent прозрачный
communications between nodes. связи между узлами. The messages Сообщений
exchange is asynchronous, using the publisher- обмен асинхронными, используя издатель-
subscriber protocol. Абонент протокола. Using this approach, no fix Используя этот подход, не исправить
communication paths are established and the system каналов связи устанавливаются и системы
can be reconfigured at run-time easily. может быть изменена во время выполнения легко.
3. 3. Fault tolerance strategies толерантности стратегии неисправностей
Several FT strategies have been proposed and Несколько стратегий FT были предложены и
applied in the last 30 years. применяется в последние 30 лет. The simplest strategy is Простейшая стратегия
Rollback/Retry, also called “checkpoint and restart” Откат / Повторить, называемый также "контрольно-пропускного пункта и перезагрузки"
[3], which uses time redundancy. [3], который использует временной избыточности. This strategy is Эта стратегия
effective only against transient faults, like hardware эффективны только против переходного неисправностей, как аппаратных
transient faults caused by electromagnetic radiation, переходных неисправности вызваны электромагнитным излучением,
and even some software transient faults like as race и даже некоторые программы переходного недостатки, как расы
conditions. условиях.
In order to deal with permanent software faults, Для того, чтобы иметь дело с постоянными недостатки программного обеспечения,
other strategies have been proposed as Recovery других стратегий были предложены в качестве восстановления
Blocks (RB) [4], Distributed Recovery Blocks (DRB) Блоков (РБ) [4], распределенных восстановления блоков (ДРБ)
[5] and N-Version Programming (NVP) [6]. [5] и N-версии программирования (НВП) [6].
RB and DRB perform backward error recovery like РБ и ДРБ выполнять обратную ошибок, как
Rollback/Retry, but use different software versions, or Откат / Повтор, но и использовать различные версии программного обеспечения, или
variants, in each execution block. вариантов, в каждом выполнении блока. In these techniques В этих методов
there are at least two software versions in RB and two Есть по крайней мере две версии программного обеспечения в РБ и два
software versions in DRB, which must deliver similar версий программного обеспечения в ДРБ, который должен доставить аналогичные
correct results. правильные результаты. The main difference between RB and Основное различие между РБ и
DRB is the distributed nature of the later, allowing DRB является распределенный характер позже, что позволяет
concurrent running of variants in two distinct nodes одновременно работает вариантов в двух различных узлов
and coordination between them to define what node и координации между ними, чтобы определить, какой узел
will send the final output. пошлю окончательного вывода.
NVP is a FT strategy that users forward error НВП является стратегия FT, что пользователи вперед ошибке
recovery in which multiple variants (at least 3) run восстановления, в котором несколько вариантов (по крайней мере 3) запустить
sequentially or concurrently and a decision mechanism последовательно или одновременно и механизмом решения
selects the correct response usually by majority voting. выбирает правильный ответ как правило, большинством голосов.
In a multi-computer system, each variant runs in a В-компьютерная система Multi, каждый вариант работает в
different node and the decision mechanism (voter) may различных узлов и механизмов решения (избирателей), может
be replicated too. быть воспроизведены тоже.
In this work, Rollback/Retry, RB, DRB and NVP В этой работе, отката / повтора, РБ, ДРБ и НВП
strategies are supported. стратегии поддерживаются. In fact, the Rollback/Retry В самом деле, отката / повтора
strategy can be implemented as an RB strategy, if we стратегия может быть реализована в виде стратегии РБ, если мы
define the primary and the recovery block as the same. определить первичные и восстановление блока, как же.
For NVP, this work will support the decision Для НВП, эта работа будет поддерживать решения
mechanism implementation only, as the variants can be Механизм реализации только, как варианты могут быть
implemented by normal application threads running in осуществляется нормальное темы приложение, работающее в
different nodes and sending the results to the voting различных узлов и отправка результатов голосования
thread. нить.
4. 4. Design Дизайн
The main design goal is to provide the fault Основная цель дизайна заключается в предоставлении вине
tolerance strategies just presented with minimal burden толерантности стратегий просто представлены минимальными трудностями
to the application level. на уровне приложений.
A new middleware periodic thread was created to Новое связующее периодических потоков была создана для
control and schedule all FT threads. контроль и расписание всех FT темы. This thread, called Этот поток, называемый
MiddlewareScheduler (MS), runs at the beginning of MiddlewareScheduler (MS), проходит в начале
every clock tick interval and defines the behavior of каждый тик интервал часы и определяет поведение
each FT thread. каждый поток FT.
4.1. 4.1. RB design РБ дизайн
For the execution of a RB fault-tolerant strategy Для выполнения РБ отказоустойчивой стратегию
with two variants, the application thread has to define с двумя вариантами, поток приложения должен определить
the implementation of the following procedures: осуществление следующих процедур:
primary block, recovery block, save state, restore state, первичный блок, блок восстановления, сохранения состояния, восстановление государства,
acceptance test and send result. приемочные испытания и отправить результат.
Figure 1 presents an example of a RB run when the 1 приведены пример РБ выполняться при
primary block fails and the recovery block succeeds. первичный блок не удается и восстановление блока успешно.
The operation is started by the application thread upon Операция началась на поток приложения на
receiving an input message or waking up at a specific получении входящего сообщения или просыпаться в определенное
time. время. After setting up a deadline for execution, based После установки срока для исполнения, основанных
on the actual time and the maximum allowed response о фактическом времени и максимально допустимый ответ
time, the thread suspends. время, поток приостанавливается. In subsequent MS thread В последующие поток MS
activations, this thread verifies if the RB thread активаций, этот поток проверяет, если поток РБ
deadline has expired and, in that case, restarts the Срок истек, и в этом случае перезагрузки
thread. нить. This represents a failure in delivering the Это означает отказ в предоставлении
correct response on time, but after restarting, the RB правильный ответ на время, но после перезагрузки, РБ
thread is ready again for receiving the next request or нить готова снова для получения следующего запроса или
activation. активации. If the deadline has not expired, the MS Если срок еще не истек, MS
thread commands the next actions to be performed by поток команд следующего действия, выполняемые по
the RB thread and schedules it for execution. нить РБ и графики на исполнение. After После
executing the right operations (save/restore state, run выполнение право операции (сохранения / восстановления состояния, запустите
primary/recovery block, run acceptance test) the RB первичный / восстановления блока, выполнения теста принятия) РБ
thread suspends again and the MS thread checks the поток приостанавливает снова и поток MS проверки
AT result. На результат. If the RB thread succeeds in AT, the MS Если поток РБ удается AT, MS
thread allows it to send the results and the interaction резьба позволяет отправить результаты и взаимодействие
finishes. отделки. If the RB thread fails in both blocks it is Если поток РБ не удается в обоих блоках это
restarted by the MS thread. возобновляется поток MS.
4.2. 4.2. DRB design DRB дизайн
For applying the DRB strategy, the DRB thread Для применения стратегии ДРБ, резьба DRB
should define the same procedures of the RB strategy должны определить те же процедуры стратегии РБ
but the DRB execution involves the coordination но исполнение DRB предполагает координацию
between two nodes for delivering a unique result to the между двумя узлами для доставки уникальный результат
system. системы. This coordination is performed by message Такая координация осуществляется сообщение
exchanges between the middleware of both nodes, обменов между промежуточного обоих узлов,
without any intervention from the DRB threads. без какого-либо вмешательства со темы ДРБ.
Figure 2 presents a general representation of DRB 2 представлены общие представления DRB
message exchanges. обмена сообщениями. The “AT OK” message is sent by "AT OK" сообщение отправляется
the MS thread if the primary node has succeeded in нить MS, если основной узел удалось
one of the two blocks. один из двух блоков. After sending this message, the После отправки этого сообщения,
MS thread releases the primary DRB thread to send its MS поток освобождает основной поток DRB направить своих
results, which could imply in sending an “output результаты, которые могли бы подразумевать в отправке "выход
message” to another node. сообщения "на другой узел. If the primary node fails in Если первичный узел не в
both AT or is unable to terminate before its deadline, как AT или не в состоянии прекратить до его срока,
no message is sent to the shadow node. сообщение не отправляется в тени узла. In that case, В этом случае,
the DRB primary node will be restarted and it will DRB основной узел будет перезапущен, и она будет
change its role to shadow, while the shadow node will изменение его роли в тень, а тень узел
send its results just after its deadline, and it will направить свои результаты только после его завершения и оно будет
assume as the primary node. Предположим в качестве основного узла. In case of failure of both В случае выхода из строя как
primary and shadow nodes, no output will be released первичного и тени узлов, не выход будет выпущен
and both threads will be restarted as shadow nodes. и оба потока будет перезапущен как тень узлов. In В
order to avoid this condition, an agreement protocol Чтобы избежать этого условия соглашения протокола
had to be established to detect role conflicts and set up должны были быть созданы для выявления роли конфликтов и создать
alternate roles. альтернативных ролей. This involves periodic status message Это предполагает периодические сообщения о состоянии
exchanges between MS threads when the DRB обменов между потоками MS когда DRB
execution is not active, and a conflict solution исполнения не является активным, и решение конфликта
procedure based on the order of the node процедура, основанная на порядок узла
identifications. идентификаций. These messages are represented in Эти сообщения представлены в
Figure 2 as “Status” messages. Рисунок 2 как "Статус" сообщения.
4.3. 4.3. NVP design НВП дизайн
For voting support in the NVP strategy, an Для голосования в поддержку стратегии НВП,
application voter thread will have to implement the избирателей поток приложения будет иметь для осуществления
procedures for storing a received solution, comparing процедуры для хранения полученного решения, сравнивая
solutions and sending the correct results. решений и отправка правильные результаты.
The proposed algorithm uses single match voting. Предложенный алгоритм использует единый голосования матча.
Upon receiving a solution message, the voter thread После получения решения сообщения, поток избирателей
compares the solution with the previous ones just сравнивает решение с предыдущими просто
received and if one “equal” solution is found it is получил, и если один "равно" будет найдено решение это
considered as correct and the output is immediately рассматривать как правильно и выход сразу
sent. отправлено. In this case, further messages are discarded. В этом случае, дальнейшие сообщения удаляются. If Если
only one solution message arrives and a deadline только одно решение приходит сообщение и срока
occurs, this solution is also considered correct and it is происходит, это решение также считается правильным, и это
sent as the output. передаются в выходной. For the implementation of voting Для осуществления голосования
sequential message identification is required. последовательное выявление сообщения не требуется.
Two types of voter threads were provided: a free Два типа избирателя темы были представлены: бесплатно
voter and a coordinated voter. избирателей и скоординированных избирателей. The free voter is used Свободных избирателей используется
when multiple replicas of the voter thread can send its , когда несколько реплик из избирателей поток может направить своих
results disregarding the presence of other voters. Результаты учета присутствия других избирателей. The
coordinated voter is used when the voting output must скоординированных избирателей используется при голосовании выход должен
be unique among the replicas, like in the configuration быть уникальным среди реплик, как в конфигурации
of Figure 3, and involves the establishment of a master на рисунке 3, и включает в себя создание мастер
voter thread. избирателей потока. The voter role definition, master or slave, Определение роли избирателей, главный или подчиненный,
is carried out by the middleware, by exchanging осуществляется промежуточное, путем обмена
periodic status messages between nodes with периодические сообщения о статусе между узлами с
coordinated voting threads. скоординированного голосования темы.
In all strategies presented, the scheduling of FT Во всех представленных стратегий, планирование FT
threads is performed by the MS thread, which selects темы осуществляется поток MS, который выбирает
the active FT thread with the earliest deadline and активный поток FT с ранних сроков и
increases its priority to a value greater than all повышает ее приоритет значение больше, чем все
priorities in the system, with exception to middleware приоритетов в системе, с исключением промежуточного
threads. темы. After finishing the FT execution, FT threads После окончания выполнения FT, FT темы
priorities are changed to its initial priority, and will приоритеты меняются в исходное приоритет, и будет
remain with this priority until the next FT activation. оставаться с этим приоритетом до следующей активации FT.
5. 5. Implementation Осуществление
Two implementations were provided. Два реализации были предоставлены. The first was Первый
based on object-oriented inheritance and application на основе объектно-ориентированное наследование и применение
threads are defined by single and direct inheritance of темы определяются одной и прямого наследования
classes Thread (for common threads), RBThread, Классы Thread (для общего потока), RBThread,
DRBThread or VoterThread. DRBThread или VoterThread. These FT base classes Эти базовые классы FT
define application specific procedures as virtual определяют применение конкретных процедур в качестве виртуального
functions and provide an empty (stub) implementation функции и обеспечить пустой (заглушка) реализация
for them. для них. Therefore, FT application threads must Таким образом, применение темы FT должны
overwrite these methods. перезапись этих методов. The non-virtual functions of Не виртуальные функции
these base classes define the operation of the fault- эти базовые классы определить операцию вины
tolerant терпимый
strategy стратегии
in в
coordination координация
with с
the
MiddlewareScheduler thread using the data members MiddlewareScheduler потока с использованием данных членов
of these classes to exchange information. из этих классов для обмена информацией.
The second implementation uses callback functions Вторая реализация использует функции обратного вызова
instead of virtual functions. вместо виртуальных функций. In this implementation, FT В этой реализации, FT
application threads inherit directly from the Thread приложения темы наследуют непосредственно из потока
class. класса. However, FT threads should call the function Однако, FT темы должно вызвать функцию
defineAsFT, passing its type and callback pointers for defineAsFT, передавая его тип и обратного вызова для указателей
all application functions needed, also including a все функции, необходимые приложения, включая также
callback for the function which runs the fault-tolerant обратного вызова для функции, которая работает отказоустойчивых
strategy itself. сама стратегия. The static functions executeRB, Статического executeRB функций,
executeDRB and executeVoting are provided in the executeDRB и executeVoting приводятся в
Thread class as default implementations for the FT Тема класс по умолчанию для FT
strategies. стратегий. Stub implementations are provided for Ста реализации для
application dependent functions. зависит от приложения функций.
Besides its better performance, this implementation Помимо более высокой производительности, эта реализация
allows changing the type of a FT thread at run-time, as позволяет изменять тип потока FT во время выполнения, как
long as the definition of all application specific and Пока определение всех приложений и конкретные
strategy specific functions. Стратегия конкретных функций.
6. 6. Results Результаты
Coding and testing was carried out in the Linux Кодирование и тестирование было проведено в Linux
environment, using an on-top-of Linux implementation окружающей среды, использования на топ-оф Linux реализации
of BOSS. босса. In this configuration, BOSS kernel and the В этой конфигурации, ядро и BOSS
application itself were compiled into a single Само приложение были сведены в единый
executable and run as a Linux process with FIFO исполняемую программу и запустить как процесс Linux с FIFO
scheduling and maximum priority. планирование и максимальный приоритет. Three Pentium Три Pentium
computers, connected by an Ethernet network, were компьютеры, подключенные по сети Ethernet, были
used. использовали. The MiddlewareScheduler thread activation Нить активации MiddlewareScheduler
period was set to 1 ms and network incoming messages период был установлен в 1 мс и сети входящих сообщений
were delivered each 2 ms. были доставлены каждые 2 мс. Communication was Связь была
implemented using UDP sockets and broadcast. реализован с использованием UDP сокеты и вещания.
The three FT strategies (RB, DRB and NVP) where FT три стратегии (РБ, ДРБ и НВП), где
tested in both implementations using a sorting испытаны в обеих реализаций с помощью сортировки
application. приложения. Each variant was implemented in a Каждый вариант был реализован в
different sorting algorithm as Bubble Sort, Insertion другой алгоритм сортировки, как пузырьковой сортировки, вставки
Sort and Selection Sort. Сортировка и отбор Сортировка. A random array of 2000 Случайного массива 2000 года
elements was generated and published by a Sender элементов была создана и опубликована Отправитель
thread. нить. In each configuration, a FT thread running RB В каждой конфигурации, резьба FT работает РБ
or DRB strategy or a normal thread sorted this array или DRB стратегии или нормальный поток отсортировано этого массива
and sent it to an actuator or a voter thread (for NVP). и послал его в привод или избирателей нить (для НВП).
Faulty conditions were generated by introducing Нарушение условий были получены путем введения
unsorted values after sorting in each variant at compile несортированные значения после сортировки в каждом варианте на этапе компиляции
time. время. System results were checked by logging all Система результаты были проверены, фиксируя все
messages and principal function events as thread roles сообщения и главные события функция как нить роли
changing in DRB and coordinated voting. Изменение в ДРБ и скоординированного голосования.
7. 7. Related work Связанные работы
Few implementations of fault tolerance support by Мало реализации вина поддержку терпимости
the operating system or by a middleware were found. операционной системы или промежуточного были найдены.
FT-RT-Mach, an academic general purpose FT-RT-Мах, академических общего назначения
operating systems, and the DEOS operating system, a операционные системы, и операционная система DEOS,
certified operating system for critical avionics сертифицированной операционной системы для критических авионики
applications, use re-execution of tasks as the primary приложений, использовать повторно выполнение задач в качестве основного
method for achieving fault tolerance [7]. метод для достижения отказоустойчивости [7]. Rate Оценить
Monotonic Scheduling and Admission Control of Монотонные Планирование и Admission Control от
threads are performed by both operating systems. темы выполняются обеими операционными системами.
ROAFTS (Real-Time Object-Oriented Adaptive ROAFTS (Real-Time объектно-ориентированного адаптивного
Fault Tolerant Support) is a middleware architecture Отказоустойчивость поддержки) является промежуточным архитектуры
developed by University of California [8]. разработан Калифорнийского университета [8]. It was Это было
designed to run over commercial operating systems as предназначен для работы на коммерческих операционных системах, как
UNIX and Windows NT. UNIX и Windows NT. The middleware supports the Промежуточного поддерживает
RB and DRB strategies, and dynamically switches the РБ и ДРБ стратегии, и динамически переключает
units operating mode in response to changes in the единиц режима в ответ на изменения в
resource and application modes. ресурсов и применение режимов. This middleware is Этот компонент является
applied as a component of the Time-Triggered применяется в качестве компонента времени Triggered
Message-Triggered Object structuring scheme (TMO) Message-Triggered объектов структурирование схемы (ТМО)
model of computation [9]. модель вычислений [9].
Despite having the same goal of this work, these Несмотря на то, ту же цель этой работы, эти
systems do not fit to small-scale embedded systems системы не подходят для мелких встроенных систем
applications because of its intense resource utilization. приложений из-за интенсивного использования ресурсов.
8. 8. Summary and future work Заключение и будущие работы
We have presented the work in progress in Мы представили работы в ходе
implementing of fault tolerance support mechanisms осуществление вины механизмы поддержки толерантности
for the BOSS embedded real-time operating system для BOSS встраиваемых систем реального времени операционная система
using middleware technology. использованием промежуточного технологии. The main goal of the Основная цель
work is adding fault tolerance functionality with работа добавив терпимости функциональность вине с
minimum complexity and resource commitment in минимальной сложности и адекватных ресурсов в
order to satisfy the requirements of high-dependable Чтобы удовлетворить требованиям высокого надежные
embedded systems. встраиваемых систем.
Future work will include investigating the Будущая работа будет включать исследования
application of aspect-oriented programming (AOP) for применения аспектно-ориентированного программирования (АОП) для
supporting fault tolerance strategies, improving the поддержку толерантности стратегии вина, улучшения
customization of the application and its adaptability. настройка приложений и возможности его адаптации.
References Список литературы
[1] A. Avizienis, J.-C. [1] А. Avizienis, Ж.-К. Laprie, and B. Randell, Laprie, Б. Рэнделл,
“Fundamental Concepts of Dependability,” Technical "Основные понятия надежности," Техническая
Report 739 , Department of Computing Science. Доклад 739, факультет вычислительной науки.
University of Newcastle upon Tyne, 2001. Университет Ньюкасл-апон-Тайн, 2001.
[2] S. [2] С.
Montenegro Черногория
and и
F. F.
Zolzky, Zolzky,
“BOSS "БОСС
/EVERCONTROL OS/Middleware Target Ultra High / EVERCONTROL OS / Middleware Целевая сверхвысоких
Dependability,” Proceedings of Data Systems on Надежность, "Труды Data Systems по
Aerospace -DASIA , Edinburgh, Scotland, 2005. Аэрокосмическая-DASIA, Эдинбург, Шотландия, 2005.
[3] DK Pradhan, Fault-Tolerant Computer System Design , [3] Д. Прадхан, отказоустойчивой системы Дизайн компьютера,
Prentice-Hall, Inc., 1996. Prentice-Hall, Inc, 1996.
[4] B. Randell, “System Structure for Software Fault [4] Б. Рэнделл, "Структура системы для программного обеспечения неисправностей
Tolerance,” IEEE Trans. Толерантность ", IEEE Trans. Software Engineering , vol. Software Engineering, Vol.
SE-1, pp. 220-232, June 1995. SE-1, стр. 220-232, июнь 1995 года.
[5] K. Kim and O. Welch, “Distributed Execution of [5] К. Ким, О. Уэлш, "Распределенные Исполнение
Recovery Blocks: An Approach for Uniform Treatment Восстановление блоков: подход к Единый подход
of Hardware and Software Faults in Real-Time аппаратных и программных неисправностей в режиме реального времени
Applications,” IEEE Transactions on Computers , vol. Приложения, "IEEE Transactions на компьютеры, том.
38, Nº 5, pp. 626-636, 1989. 38, N º 5, стр. 626-636, 1989.
[6] L. Chen and A. Avizienis, “N-Version Programming: A [6] Л. Чен и А. Avizienis, "N-версии программирования:
Fault-Tolerance Approach to Reliability of Software Отказоустойчивости подход к надежности программного обеспечения
Operation,” Proceedings of FTCS-8 , pp. 3-9, Toulouse, Операция, "Труды FTCs-8, стр. 3-9, Тулуза,
France, 1978. Франция, 1978.
[7] L. Dong et al., “Implementation of a Transient-Fault- [7] Л. Донг и др.. "Осуществление переходного наступающая
Tolerance Scheme on DEOS,” Proceedings of the 5th Толерантность Схема на DEOS, "Труды пятой
IEEE Real-Time Technology and Applications IEEE реального времени техники и ее применения
Symposium , pp. 56-65, 1999. Симпозиум, стр. 56-65, 1999.
[8] K. Kim, “ROAFTS: A Middleware Architecture for [8] К. Ким, "ROAFTS: Middleware Архитектура
Real-Time Object-oriented Adaptive Fault Tolerance В реальном времени объектно-ориентированного адаптивного отказоустойчивости
Support,” Proceedings of the 3rd IEEE International Поддержка, "Труды третьего Международного IEEE
High-Assurance Systems Engineering Symposium , Высокая-систем обеспечения инженерной симпозиум,
pp.50-57, Washington, DC, 1998. pp.50-57, Washington, DC, 1998.
[9] K. Kim, M. Ishida and J. Liu, “An Efficient Middleware [9] К. Ким, М. Ishida и Дж. Лю, "Эффективное Middleware
Architecture Supporting Time-Triggered, Message- Архитектура Поддержка времени срабатывает, Message-
Triggered Objects and an NT-based Implementation,” Triggered объектов и NT основе реализации ",
Proceeding of the 2 Исходя из 2
nd й
IEEE International Symposium on IEEE Международного симпозиума по
Object-Oriented Real-Time Distributed Computing , pp. Объектно-ориентированного реального времени распределенных вычислений, стр.
54-63, 1999. 54-63, 1999.
Исходный текст (английский):
Fault tolerance is usually achieved by redundancy
Предложить лучший вариант перевода