1. Hardware interrupt (one of the devices in the computer sends a signal to the interrupt controller which in turn sends an interrupt signal to the INT pin of the CPU)
2. Software interrupt (i. e. system call made by the executing process)
3. The 'quantum' of time assigned to the executing process has been used up, so this process is pre-emptively suspended and another one is picked for execution. (This is really a special case of hardware interrupt where the interrupting device is the clock.)
In upcoming posts, I will first explain interrupt processing and context switching and then give more details on scheduling of processes.