Interrupt Handling and Stack Switching in x86-64 Architecture