“Ah, it is you.” She heard Richard Wakefield’s voice in the dark. “I thought for certain you were asleep. I have some news for you.”

“Hello, Richard,” Nicole said as the figure holding the flashlight emerged from the darkness.

“I couldn’t sleep,” he said. “Too many grisly pictures in my head. So I decided to work on your problem.” He smiled. “It was even easier than I thought. Would you like to come to my hut for an explanation?”

Nicole was confused. She had been preoccupied with what she was going to say to Brown and Heilmann about Takagishi. “You do remember, don’t you?” Richard inquired. “The problem with the RoSur software and the manual commands.”

“You’ve been working on that?” she asked. “Down here?”

“Certainly. All I had to do was have O’Toole transmit the data that I needed. Come on, let me show you.”

Nicole decided seeing Dr. Brown could wait for a few more minutes. She walked beside Richard. He knocked on another hut as they went by. “Hey Tabori, guess what?” he shouted. “I found our lovely lady doctor wandering around in the dark. Do you want to join us?”

“I explained some of it to him first,” Richard said to Nicole. “Your hut was dark and I figured you were asleep.”

Janos stumbled out of his door less than a minute later and acknowledged Nicole with a smile. “All right, Wakefield,” he said, “but let’s not prolong it. I was finally drifting off.”

Back in Wakefield’s hut, the British engineer thoroughly enjoyed recount­ing what had happened to the robot surgeon when the Newton had experi­enced the unexpected torque. “You were right, Nicole,” he said, “that there were manual commands input to RoSur. And these commands did indeed shut down the normal fault protection algorithms. But none of them was input until during the Raman maneuver.”

Wakefield smiled and continued, watching Nicole carefully to ensure that she was following his explanation. “Apparently, when Janos fell and his fingers hit the control box, he generated three commands. At least that’s what RoSur thought; it was told that there were three manual commands in it’s queue. Of course they were all garbage. But RoSur had no way of know­ing this.

“Maybe now you can appreciate some of the nightmares that plague sys­tem software designers. There’s just no way anybody could ever anticipate all possible contingencies. The designers had protected against one inadvertent garbage command — someone brushing the control box during an operation, for example — but not several bad commands. Manual commands were essen­tially considered to be emergencies by the overall system design. Hence they had the highest priority in the interrupt structure of the RoSur software and were always processed immediately, The design acknowledged, however, that there could be a single “bad” manual command and had the capability of rejecting it and moving on to the next priority interrupts, which included fault protection.”

“Sorry,” said Nicole. “You’ve lost me. How could a design be structured to disregard a single bad command, but not several? I thought this simple processor operated in series.”

Richard turned to his portable computer and, working from notes, called up on the monitor a mass of numbers arrayed in rows and columns. “Here are the operations, instruction by instruction, that the RoSur software imple­mented after there were manual commands in its queue.”

“They repeat,” Janos observed, “every seven operations.”

“Exactly,” Richard replied. “RoSur tried three times to process the first manual command, was unsuccessful in each attempt, and then went on to the next command. The software operated exactly as it was designed—”

“But why,” Tabori asked, “did it go back to the first command after­ward?”

“Because the software designers never considered the possibility of multi­ple bad manual commands. Or at least never designed for the condition. The internal question the software asks after finishing with the processing of each command is whether or not there is another manual command in the buffer. If there is not, then the software rejects the first command and is free to handle another interrupt. If there is, however, the software is told to store the rejected command and process the next command. Now, if two com­mands in a row are rejected, the software assumes that the command proces­sor hardware is broken, swaps to the redundant hardware set, and tries again to process the same manual commands. You can understand the reasoning. Suppose one…”

Nicole listened for several seconds as Richard and Janos talked about redundant subsystems, buffered commands, and queue structures. She had very little training in either fault protection or redundancy management and could not follow the exchange. “Just a moment,” she interjected at length, “you’ve lost me again. Remember, I’m not an engineer. Can’t somebody give me a summary in normal English?”

Wakefield was apologetic. “Sorry, Nicole,” he said. “You know what an interrupt-driven software system is?” She nodded. “And you are familiar with the way priorities operate in such a system? Good. Then the explana­tion is simple. The fault protection interrupts based on the accelerometer and imaging data were lower priority than the manual commands inadver­tently entered by Janos when he was falling. The system became locked in a software loop trying to process the bad commands and never had a chance to heed the fault signals from the sensor subsystems. That’s why the scalpel kept cutting.”

For some reason Nicole was disappointed. The explanation was clear enough, and she had certainly not wanted the analysis to implicate Janos or any other member of the crew. But it was too simple. It had not been worth all her time and energy.

Nicole sat down on the cot in Richard Wakefield’s hut. “So much for my mystery,” she said.

Janos sat beside her. “Cheer up, Nicole,” he said. “This is good news. At least now we know for certain that we didn’t foul up the initialization pro­cess. There’s a logical explanation for what happened.”

“Great,” she replied sarcastically. “But General Borzov is still dead. And now Reggie Wilson is too.” Nicole thought about the American journalist’s erratic behavior over the last several days and remembered her earlier conver­sation with Francesca. “Say,” she said spontaneously, “did either of you ever hear General Borzov complain of headaches or any other discomfort? Espe­cially on the day of the banquet?”

Wakefield shook his head. “No,” said Janos. “Why do you ask?”

“Well, I asked the portable diagnostician, based on Borzov’s biometry data, to give me the possible causes of his symptoms, given that the general was not having an appendicitis. The most likely cause was listed as drug reaction. Sixty-two percent probable. I thought that maybe he might have had an adverse reaction to some medication.”

“Really?” Janos said, his curiosity piqued. “Why have you never said anything about this to me before?”

“I was going to… several times,” Nicole answered. “But I didn’t think you were interested. Remember when I stopped by your room on the New­ton the day after General Borzov died? It was right after the crew meeting. From the way you responded I concluded that you didn’t want to rehash—”

“Goodness.” Janos shook his head. “How we humans fail to communi­cate. It was just a headache. Nothing more or less. I certainly didn’t mean to give you the impression that I was unwilling to talk about Valeriy’s death.”

“Speaking of communicating,” Nicole said as she rose wearily from the cot, “I must go to see Dr. Brown and Admiral Heilmann before I go to bed.” She looked at Wakefield. “Thanks a lot for your help, Richard. I wish I could say that I felt better now.”

Nicole walked over beside Janos. “Tm sorry, friend,” she said. “I should have shared my whole investigation with you. It probably would have been over much faster—”


Перейти на страницу:
Изменить размер шрифта: