An interrupt is a special signal that causes the computer’s central processing unit to suspend what it is doing and transfers its control to a special program called an interrupt handler. The responsibility of an interrupt handler is to determine what caused the interrupt, service the interrupt and then return the control to the point from where the interrupt was caused. The difference between hardware interrupt and software interrupt is as below:
Hardware Interrupt: This interrupt is caused by some external device such as request to start an I/O or occurrence of a hardware failure.
Software Interrupt: This interrupt can be invoked with the help of INT instruction. A programmer triggered this event that immediately stops execution of the program and passes execution over to the INT handler. The INT handler is usually a part of the operating system and determines the action to be taken e.g. output to the screen, execute file etc.
Thus a software interrupt as it’s name suggests is driven by a software instruction and a hardware interrupt is the result of external causes.