Выбрать главу

Допустим, мы имеем n процессоров, каждый из которых, например, выполняет программу для получения результата вычисления выражения (2х2). Программа записана в следующем виде:

Выполнить операцию 2х2,

Если результат равен 4, то переписать

этот текст программы на то же место и

записать в контрольную ячейку К дату последней записи.

Примем, что

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

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

3. Под ненадежностью мы будем понимать возможность неисполнения заданного алгоритма.

Допустим, мы имеем n процессоров, каждый из которых циклически повторяет приведенную выше программу. Тогда, в результате «бурной» деятельности процессоров, в каждой ячейке Ki (i:=1,n) будет записана одна и та же дата.

ПРИМЕЧАНИЕ 4

Вместо даты в Ki можно записывать порядковый номер выполнения программ. Важно, чтобы это выполнялось всеми n процессорами.

Допустим, что при очередном раунде j-ый процессор остановился, так как не смог выполнить операцию, записанную в виде «Выполнить операцию 2х2». Это приведет к тому, что в ячейку Kj будет записана информация, отличная от Ki.

Примем, что по окончании раунда каждый из завершивших программу процессоров, в том числе и i—ый, сравнивает содержимое своей ячейки Ki с содержимым аналогичных ячеек других процессоров и если, например, Ki>Kj, то i—ый процессор переписывает на новое место свой текст программы, включает новый процессор, присвоив ему номер j и записывает в его ячейку Kj, содержимое собственной ячейки Ki.

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

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

ПРИМЕЧАНИЕ 5

Эти возможности могут быть реализованы в результате развития нанотехнологии

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

ЕСЛИ В ТЕЧЕНИЕ ОДНОГО РАУНДА ОТКАЖЕТ n-1 ПРОЦЕССОРОВ, то при наличии необходимых ресурсов В СЛЕДУЮЩЕМ РАУНДЕ ЧИСЛО ИСПРАВНЫХ БУДЕТ восстановлено до n.

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

Не напоминает ли это механизм сохранения популяции рыб?

Защита базы данных и программного обеспечения

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

ПРИМЕЧАНИЕ 6

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

Дальше мы будем рассматривать проверку программного обеспечения аналогично проверке базы данных.

Допустим, на борту находится n компьютеров, и в каждом i-ом (i:=1, n) компьютере база данных записана в виде двух одинаковых файлов. Аi и Вi. (АiВi)