Outstanding answer Devilboy, impressive knowledge of hardware and covered most all the possibilities except.....
Programs that run around in memory. If two try to use the same RAM space at the same time, you get a blue screen of death (BSOD). Some programs are written better than others, and the ones that are not written well can misbehave causing a crash. Windows is the memory manager, and is supposed to assign resources to each call a program makes. In the old days we accessed memory directly, but now the operating system does it for us. So it may not always be a misbehaving program, it might be a misbehaving operating system (Thank M$).
Another thing that users can do to help cause this kind of misbehavior is to have two programs that do the same things. For example, an always on (TSR) anti-virus program that also checks for malware. The user has another malware protecting program, and decides to run it. Now you have two programs doing the same thing, hopefully in different parts of memory. However, when one accesses the file allocation table to get the next file to check at the same time as the other, memory may collide.
When a user has to use a 3 fingered salute (ctrl-alt-del) or the power button to crash the computer, files that were in RAM were not closed on the hard drive. This will sometimes cause the operating system to think they don't exist or are damaged. So the more reboots the user causes in response to a locked up computer, the more instability gets introduced. The end result of which is file damage great enough to warrant a new install.
Aside from what Devil boy pointed out, I believe the number one cause for crashes is accessing occupied memory space. This is where the hardware and software meet (like IRQ's).
Some of my favorite fixes (do these in order)
- Reset the bios, by removing the battery for a few minutes or even setting the pnp-pci setting to reset. This will re-establish the hardware, important to do after any hardware changes.
- Boot into safe mode by pushing the button F8 repeatedly during start up. The menu that comes up will have a safe mode option. Choose that and let it complete booting up. Windows has now booted with a minimum number of drivers. The drivers it did not load, will be reshuffled next time you boot normally. Now reboot and let it start up normally.
- Run Scan disk, or Norton disk doctor or whatever. Check the drive for errors and repair them.
- Run a registry repair utility. REPAIR util not cleaning util.
Now, you have
- Reset the bios to recognize and re-establish hardware addresses,
- Windows reshuffled the drivers thereby re-assigning resources for each one.
- Corrected errors on the hard drive so those missing and damaged files are back again,
- Made sure the registry pointers are pointing to the correct files.
There are a couple of advanced things you can do also, such as while in safe mode delete the duplicate or former drivers that show up in device manager. Windows remembers every driver installed, duplicates for equipment you now have or no longer have.
When in normal mode you can also clean and compact the registry, as well as defragment the hard drive for a performance improvement.
There you have it, 4 steps to a better working and less crasheable computer. This process has worked for me on many customer computers who have had problems with crashes.