사용자 모드 작업이 중단되면 어떻게 되나요? TSS를 참조하여 CPU가 커널 모드 스택으로 전환된다는 것을 알고 있습니다. 그러면 커널은 언제, 어떻게 IRQ 스택으로 전환됩니까?
답변1
x86_64에서 커널 코드는 인터럽트 시 인터럽트 스택으로 전환됩니다. 각 CPU에는 인터럽트 스택이 있습니다. 사용자 모드에서 실행되는 동안 인터럽트가 발생하면 실제로 두 개의 스택 스위치가 발생합니다. 먼저 해당 스레드/프로세스의 사용자 스택에서 커널 스택으로(하드웨어에 의해 자동으로 수행됨) 다음에는 인터럽트 스택으로 전환됩니다. 바라보다https://www.kernel.org/doc/Documentation/x86/kernel-stacks