Interrupts can be categorized as: maskable interrupt, non-maskable interrupt, interprocessor interrupt (IPI), software interrupt.
A maskable interrupt(IRQ) is a hardware interrupt that may be ignored by setting a bit in an interrupt mask register's (IMR) bit-mask. As well the priority of the maskable interrupt can be configured.
A non-maskable interrupt (NMI) is a hardware interrupt can never be ignored. It is having the highest priority.
An interprocessor interrupt is a special case of interrupt that is generated by one processor to interrupt another processor in a multiprocessor system.
A software interrupt is an interrupt generated within a processor by executing an instruction. Software interrupts are often used to implement System calls because they implement a subroutine call with a CPU ring level change.