Submitted by WillShelbyOBE t3_120omnj in explainlikeimfive
Slypenslyde t1_jdibz1n wrote
Not just computers, but most complex machines tend to have some kind of "memory". Stuff like jukeboxes could work way before we had computers, they used circuits we call "electromechanical" to basically accomplish what computers do with bigger, bulkier components.
Let's stick with a physical example. Some motors are very precise about how far they'll move if they recieve power for specific amounts of time. So robot arms and other things that need to do repetitive motions follow a "program" that's really just them applying power to the motors in specific patterns. But if something goes wrong and a gear slips, that can muck everything up. That means the arm didn't move as much as it should have, so from that point on the program's just a little bit wrong. If it keeps happening, the robot arm won't be doing what it's supposed to and is likely going to cause damage to something.
The startup process for these kinds of machines involves getting it into a "known state". For this kind of motor, it means there's usually physical barriers that stop the motor from turning too far in one direction. So to get it in a "known state", when the machine starts up it will turn the motor in that direction until sensors tell it that it has reached as far as it can go. (Or, it turns for an amount of time guaranteed to put it in that position.) Now the system "knows" where the motor is again and is safe.
(More sophisticated motors have more sensors and can tell where they are, but they cost more and don't make this explanation work so well.)
That's kind of what can happen with computers and more sophisticated machines, too. Their program or even the circuits may have tiny problems that cause tiny mistakes. Those mistakes may not be harmful for the first few hours, which is why the developers didn't notice them. But over time those tiny mistakes might add up and start causing the program to do weird things, sort of like how if the gear for the robot arm slips the program is now incorrect because the arm is not in the position it should be.
The reason you have to sometimes leave it off "for about 5 minutes" is interesting. NORMALLY a good computer should go through all of its memory and set it back to a safe state when it starts up. But that can take a long time so it's a step that might get skipped. But most memory doesn't "hold" its value for very long if the power is not on, and eventually ends up in the known state anyway. So if the program doesn't clear memory at startup (or if there's a bug that causes it to miss some memory), turning off the power for long enough to make ALL of the memory reset can fix that little issue.
So it's kind of like if after you turn off the robot arm, you manually manipulate it into the "safe" position before turning it on. That makes sure it's in the state the program expects.
Viewing a single comment thread. View all comments