Допустим, мы имеем 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)