I have read that a context switch happens on system calls and interrupts (e.g. programmable timer) but I\'m looking for an exhaustive list.