Interrupt requests (IRQs) are signals engender by devices on the bus to request service. An example would be the serial port that has received a character from an emotionally involved input device. The serial port has no buffering so can receive only one character at a time. The processors have got to read the character, and position it in a buffer in memory; otherwise it will be overwritten by the next on to be received. As in this example, interrupts need to be contract with rapidly, or data is lost. In the PC architecture, interrupts are handled by a chip called the programmable interrupt controller (PIC). This receives interrupt signals from devices, and issues interrupts to the CPU, dependent upon the priority that has been assigned to each device. When the CPU receives an interrupt, it responds by saving information about what it is currently doing, and jumping to a special interrupt service routine (ISR). every device has its own ISR. This may be provided by the BIOS, as in the case of the keyboard or by an application such as a tape endorsement program, which would provide its own routine to service the tape streamer. After the ISR has been completed, the CPU uses the saved information to restart what it was doing before the interrupt take placed.