본문 바로가기

INTERRUPT2

[Paper] When Poll is Better than Interrupt 운영체제를 처음 공부할 때는 폴링은 디바이스가 작업을 완료하기까지 대기하는 게 시간낭비이므로, IO가 무조건 인터럽트 방식으로 이루어질 거라고 생각했다. 하지만 하드웨어 성능이 미친듯이 좋아지면서 오히려 인터럽트의 오버헤드가 성능에 큰 영향을 미치기도 한다. When Poll is Better than Interrupt는 2012년에 USENIX에서 발표된 논문으로 고성능 디바이스에서 폴링이 인터럽트 방식보다 나을 수 있음을 보여준다. 실제로 블록 레이어에서는 2015년에 폴링 방식이 구현되었다. 네트워크 레이어는 훨씬 더 전인 2000년대 초반부터 NAPI를 통해 폴링을 지원했다. When Poll Is Better than Interrupt | USENIX www.usenix.org Abstract .. 2021. 11. 6.
[Linux Kernel] 인터럽트와 후반부 처리의 개념 Interrupt 컴퓨터는 프로세서만으로 이루어져있지 않다. 디스크로부터 데이터를 읽고 쓰거나, 네트워크 카드로부터 데이터가 들어오거나, 사용자가 마우스나 키보드로 입력을 할 수 있다. 이처럼 프로세서는 주변 장치로부터 어떤 이벤트가 발생했다는 것을 처리할 방법이 필요한데, 그것이 바로 인터럽트이다. 마우스로 무언가를 입력하면 프로세서는 실행을 잠시 중단하고, 마우스가 발생시킨 인터럽트를 처리한 후 다시 원래 실행하던 코드로 돌아간다. 그런데 마우스가 발생시키는 인터럽트와 키보드가 발생시키는 인터럽트는 다를 것이다. 커널은 서로 다른 인터럽트에 IRQ 번호를 부여하여 관리한다. 또한, 부팅시, 혹은 실행 중에 IRQ 번호에 따라 인터럽트 핸들러라는 함수를 미리 등록하여, 인터럽트가 발생했을 때 실행될 콜.. 2021. 4. 28.