Crash Computing

Dennis Faas's picture

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.

Crashes: Etymology

The term "crash" originates in the phrase "head crash" which would occur when the read/write heads in a hard disk would physically come into contact with (i.e. crash into) the disk surface. The result of this would usually be that the computer would freeze up.

Application crashes

An application typically crashes when it performs an operation which is not allowed by the operating system. The operating system then shuts down the application.

Typical errors that result in application crashes include:

  • attempting to read or write memory that is not allocated for reading or writing by that application (general protection fault)  
  • attempting to execute privileged or invalid instructions  unforeseen circumstances or poor code writing that results in the program executing an endless loop  
  • attempting to perform I/O operations on hardware devices to which it does not have permission to access  passing invalid arguments to system calls  
  • attempting to access other system resources to which the application does not have permission to access (bus error)

Operating system crashes

An operating system crash often happens when a hardware exception occurs which cannot be handled, such as a hardware exception occurring within the operating system itself. 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 hasn't been 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.

This article is adapted from:

Rate this article: 
No votes yet