Литмир - Электронная Библиотека
Содержание  
A
A

— Николь, это вы, — услышала она из темноты голос Ричарда Уэйкфилда. — А я был уверен, что вы спите. У меня есть для вас кое-какие новости.

— Привет, Ричард, — поздоровалась Николь, когда тот с фонариком в руках вынырнул из темноты.

— Я не мог уснуть, — пояснил он, — слишком много всякой пакости в голове. И решил поразмыслить над вашим делом. — Он улыбнулся. — Все оказалось куда проще, чем я предполагал. Не заглянете ли ко мне, поговорим?

Николь смутилась. Она уже обдумывала, что будет говорить Брауну и Хейльману о Такагиси.

— Или вы забыли, — напомнил Ричард, — всю эту историю с программным обеспечением „Рохира“ и ручными командами?

— Значит, вы работали над этим ? — переспросила она. Прямо здесь?

— Конечно. Пришлось только попросить О'Тула передать сюда все данные. Пойдемте, я покажу.

Николь решила, что встреча с доктором Брауном может и подождать. Она шла рядом с Ричардом. По пути тот стукнул в стенку одной из хижин.

— Эй, Табори, угадай-ка, кого я нашел? — воскликнул он. — Нашу прекрасную докторшу и в самых густых потемках. Ты не хочешь к нам присоединиться? — И обратился к Николь. — Ему я кое-что уже объяснил, а в вашем домике было темно, и я решил, что вы уже спите.

Через минуту в двери появился Янош, приветствовавший Николь улыбкой.

— Отлично, Уэйкфилд, — ответил он, — только не затягивай, я и так засыпаю.

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

— Вы были правы, Николь, — проговорил он, — в „Рохир“ были введены ручные команды. Они действительно отключили защитные алгоритмы, и ни один из них не сработал во время маневра Рамы.

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

— По-видимому, когда Янош упал и ударил рукой по клавиатуре, он отдал три команды. Так по крайней мере решил „Рохир“, он принял последовательность из трех ручных команд. Естественно, получилась бессмыслица, но „Рохир“ не знал этого.

— Быть может, вы теперь представите, какие кошмары терзают душу того, кто создает программное обеспечение. Всех вариантов никто не может предвидеть. И программисты предусмотрели защиту от одной случайной команды — ну если кто-то неумышленно прикоснется к пульту во время операции, — но не от нескольких . Все ручные команды система считает экстренными. И, поскольку они обладают высоким приоритетом в программном обеспечении „Рохира“, принимаются к исполнению немедленно. Однако программа знает, что одиночная ручная команда может оказаться „плохой“, и способна отвергнуть ее и обратиться к следующему приоритету, в том числе и к защите от ошибок.

— Извините, — сказала Николь. — Я не поняла. Как это может программа отвергнуть одну плохую команду, а несколько пропустить? Я считала, что процессор оперирует с рядами.

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

— Вот операции, которые „Рохир“ выполнял после этих ручных команд.

— Они повторяются, — заметил Янош, — через семь операций.

— Правильно, — ответил Ричард. — Три раза „Рохир“ пытался исполнить первую ручную команду и каждый раз неудачно, потом он перешел к следующей команде, как это и предусмотрено программой…

— Но почему, — осведомился Табори, — он вернулся потом к первой команде?

— Потому что программисты не предусмотрели возможности поступления многократной ошибочной команды. Закончив обработку каждой команды, программа всякий раз спрашивает у себя — нет ли на буфере другой ручной команды. Если ее нет , программа отвергает первую команду и происходит прерывание. Если она есть , программа запоминает отвергнутую команду и считывает следующую. И если последовательно не прошли уже две команды, программа решает , что сломан процессор, и переключается на дублирующий и вновь пытается обработать те же ручные команды. Понимаете. Пусть одна…

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

— Минуточку, — наконец вмешалась она. — Я опять сбилась. Помните, я все-таки не инженер. Может ли кто-нибудь изложить мне суть дела на обычном английском языке?

Уэйкфилд пустился в извинения.

— Простите, Николь, — проговорил он, — вы знаете как устроены программы с прерыванием? — Она кивнула. — А очередность приоритетов в такой системе вам знакома? Хорошо. Тогда объяснение будет несложным. Сигналы на прерывание от видеосистемы и акселерометра обладали меньшим приоритетом, чем ручные команды, непроизвольно созданные Яношем при падении. Программа зациклилась по контуру обработки ручных команд и не смогла услышать сигналы датчиков. Поэтому скальпель продолжал резать.

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

Сев на кушетку Ричарда, Николь проговорила:

— Вот и вся моя тайна?

Янош опустился возле нее.

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

— Просто великолепное, — саркастически отозвалась Николь. — Но генерал Борзов тем не менее мертв. А теперь еще и Реджи Уилсон. — Николь припомнила возбужденное состояние американского журналиста в последние дни и свой разговор с Франческой. — Кстати, — не задумываясь, спросила она, — никто из вас не слышал, жаловался ли генерал Борзов на головную боль или на какие-нибудь другие неудобства? В особенности в день банкета?

Уэйкфилд покачал головой.

— Нет, — ответил Янош. — А почему вы спрашиваете?

— Дело в том, что я запросила у портативного диагноста возможный диагноз, основываясь на его биометрических показаниях, в том случае, если у него не было аппендицита. Наиболее вероятная причина — отравление. Вероятность — 62 %. Я подумала, что возможна аллергическая реакция на какой-нибудь медикамент.

80
{"b":"96773","o":1}