interrupt system[′int·ə‚rəpt ‚sis·təm]
in digital computers, hardware and software means of effecting a temporary halt in the execution of a routine in order to transfer to another routine or to return to a previously interrupted program. The interrupt system permits the central processing unit to change state in the following cases: if an error has occurred during the execution of the program, if the computations for the program are completed, if arrays of data have been prepared for input or output and it is necessary to transfer to the appropriate units, or if the user or controlled system must immediately correct data that can change the course of the computation process. In all of these cases the lack of an interrupt system results in computer downtime, waste of productive machine operating time, or nonperformance of functions assigned to the system of which the computer is a part.
Five classes of interrupts are distinguished: interrupts initiated by the machine-checking circuits, input-output interrupts, interrupts for calling the supervisory program, program interrupts, and external interrupts. Machine-check interrupts permit the locations of failures and malfunctions to be found. Interrupts from the input-output units enable the computer to respond to the signals of these units concerning data storage or timely data exchange. Interrupts for calling the supervisory program are made by special privileged instructions, for example, instructions to transfer to multiprogramming operation. Program interrupts are caused by incorrect specification or use of instructions or data—for example, if the operation code indicated is not in the computer’s instruction repertory, if memory protection is violated, or if an overflow occurs. External interrupts can be initiated by an operator from a console, by on-line users from remote terminals, by systems operating in real time, and by absolute and relative timers.
During the execution of a program, signals may appear from several interrupt sources. The order of several interrupts is determined by the sequence of the signals’ arrival, by priority, or by both factors together. The priority principle involves the specification of an order of importance for interrupts; for example, a machine-check interrupt has the highest priority because continuation of computations is undesirable until the cause of failure is eliminated. Priorities may be partially changed during the process of computation.
Interrupt hardware detects interrupt signals; stores the control data, the interrupt causes, and the interrupt codes; and restores the machine to its prior state after the interrupt. Interrupt software collects the control data, determines the interrupt source, analyzes the interrupt causes, and organizes the processing of the interrupt codes. Interrupt software is constructed in the form of subroutines to ensure flexibility in changing interrupt systems. Interrupts can be controlled by inhibiting (masking) or permitting their processing. The distribution of functions between hardware and software depends on the structure and software of the computer.
A. V. GUSEV