Sunday, May 31, 2009

Reboot

How often has a piece of hardware or software stopped working correctly on your computer and after fiddling with it for a while, you've said to yourself: oh well, i'll just reboot my PC. That might fix it, and guess what, often times it does the problem.

I wish one could try this approach for human beings. Heart not functioning well? Let's try rebooting the patient!

Well, for one thing it's not possible to reboot a human being, but even if it were possible to reboot a person doing so won't fix the problem. And when I thought about why not, I realized that it's because computer malfunctions that are fixed by rebooting are software malfunctions. The current internal state of the software program that has malfunctioned is in the RAM of the computer. Something has gone wrong with this state because of which, when this program (or the piece of hardware that it controls) is fed normal inputs, it does not produce an expected output. When you reboot the computer or restart the program, its faulty state is wiped out from memory and replaced with a fresh correctly functioning state after the program restarts. So it starts functioning correctly (at lesdt until it receives some combination of inputs which it was not written to handle correctly, at which point it fails once again).

Contrast this with a heart that is not functioning properly because of a arterial block. Even if you restart such a heart, it will continue to have the block and hence the problem with this heart will not get solved by restarting. The thing to note here is that the problem with the heart - the blockage - is persistent. To compare this with our example of the malfunctioning software program, if the program were to write it's internal state to the hard disk every few seconds while it ran and each time it was restarted, if it were to initialize itself from it's saved state on the disk, then it would not be possible to fix a malfunctioning in this program by just rebooting it. This is because it would have also persisted its malfunctioned internal state to disk, and upon restarting it would read back the malfunctioned state from disk. I.e. The malfunction in this program is of a persistent nature and rebooting cannot fix such
failures.

If we assume for a second that a reboot is possible for the human body could there any kind of malfunction that can be fixed by a reboot - a malfunction that happens only in 'software' and does not have a persistent state?

I think there is at least one kind of malfunction that fits the above criteria and I think it happens when we wrap our mind up trying to solve a problem by thinking about it and get hopelessly confused at some point.

The reset or 'reboot' that can work in this case is sleeping on the problem or just doing something else for a while as a distraction.
This can have the effect of wiping off the malfunctioned state if our thought process regarding this problem. We start thinking about it fresh and sometimes succeed in solving it!

No comments: