A crash in computing is a condition where a program (either an application or part of the operating system) stops performing its expected function and also stops responding to other parts of the system. Often the offending program may simply appear to freeze. If this program is a critical part of the operating system kernel the entire computer may crash (a system crash).
Many crashes are the result of the execution of a single machine instruction, but the causes of this are manifold. Typical causes are when the program counter loses track of the correct execution path or a buffer overflow overwrites a portion of program code, due to an earlier bug. In either case it is quite common for the processor to attempt to execute data or random memory values. Since all data are possible, but only some of these are valid instructions, this very often results in an illegal instruction exception. One might say that the original bug that upset the program counter "caused" the crash, but the actual fault was an illegal instruction, possibly some time later. The art of debugging such crashes is connecting the actual cause of the crash (easily determined) with the code that set off the chain of events. This is often very far from obvious—the original bug may in fact be perfectly valid code from the processor's perspective.
On earlier personal computers, it was actually possible to cause hardware damage through trying to write to hardware addresses outside of the system's main memory. Occasionally, execution of arbitrary data on a system will result in a breakup of screen display. This is widely considered a severe system crash.
Another cause of crashes is a race condition in communication between processes. One process may send a signal to a second process then stop execution until it receives a response. If the second process is busy the signal will be forced to wait until the process can get to it. However, if the second process was busy sending a signal to the first process then both processes would wait forever for the other to respond to signals and never see the other’s signal. If the processes are uninterruptable they will hang and have to be shut down. If at least one of the processes is a critical kernel process the whole system may crash and have to be restarted.
Typical errors that result in application crashes include:
Operating system crashes can also occur when internal sanity-checking logic within the operating system detects that the operating system has lost its internal self-consistency.
In an ideal world, well-written operating systems should not be able to be crashed by application-level activity. However, until 1993, with the release of Windows NT 3.1, this wasn't the case for the average PC. Industrial strength systems have enjoyed this sort of stability for much longer.
UNIX based operating systems tend to crash less often than those that are derived from other sources. Some examples of UNIX based systems include Mac OS X, Linux, BSD, and NEXTSTEP.
Recent versions of Microsoft Windows are far more stable. Windows XP (Home, Professional, Media Center) is a 32-bit operating system, that has versions for both home and business users. Previously the only avaiable Windows operating systems designed for home use were hybrid 16-bit and 32-bit, like Windows 95, Windows 98/98SE and Windows ME, which didn't have the stability of a true 32-bit operating system. Some home users would however run Windows 2000 Professional, but it was primarily targeted at the business market. Since the introduction of Windows XP Home, home users have enjoyed a much more stable operating system.
Computer jargon | Computer errors
Computerabsturz | Crash (informatique) | Crash (informatica) | Crash (computer) | Kaatuminen (tietotekniikka) | Systemkrasch
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Crash (computing)".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world