인터럽트 처리 중에 동일한 인터럽트가 또 발생하면?
글쓴이: gurugio / 작성시간: 토, 2009/01/24 - 11:19오전
리눅스 커널에서 x86계열의 인터럽트 처리 관련 코드를 보다보니
인터럽트 핸들러를 호출하기 전에 irq_enter() 함수에서 커널 선점을 막고
스케줄링만 안되게 하고는 인터럽트를 막지 않더라구요.
단지 같은 인터럽트가 또 발생하면 IRQ_PENDING 비트를 설정해주어서
인터럽트 핸들러가 끝난 후에 또 다시 핸들러가 실행할 수 있도록 하는 것을 보았습니다.
(인터럽트 우선 순위 등의 하드웨어 적인 설정에 상관없이 프로세서가 받아들이는 관점에서만 봤을 때)
인터럽트 처리를 하고 있는 중간에 다른 인터럽트가 발생하면 다른 인터럽트의 핸들러가 실행되나요?
그리고 동일한 인터럽트가 발생하면 핸들러가 호출되는 코드 전까지는 실행되구요?
댓글 달기