当一个进程的行为超出预期时,系统将把它kill掉。
On Intel IA-32 and Intel 64 architecture processors, each architecturally-defined exception is assigned a unique identification number called a vector. The processor uses the vector assigned to an exception as an index into the interrupt descriptor table (IDT). The IDT provides the entry point to the exception handler. Some of the processor registers are stored on the stack before control is transferred to the exception handler.
Exceptions are classified as faults, traps, and aborts depending on the way they are reported and whether the instruction that caused the exception can be restarted without loss of program continuity.
The most common exceptions are:
-
Page faults, caused by an attempt to access data at an invalid memory address, such as dereferencing a NULL pointer.
-
Invalid/undefined opcode exceptions, caused by an attempt to execute an instruction with an invalid opcode.
-
General protection faults, caused by any of a number of conditions, including transferring execution to a non-executable code segment or writing to either a code segment or read-only data segment.