Published on

Interrupt & Polling

Authors
  • avatar
    Name
    유사공대생
    Twitter

Interrupt와 polling은 컴퓨터 시스템에서 외부 이벤트를 처리하는 방법이다. 두 방법의 장단점은 다음과 같다.

image

Interrupt의 장점

  • 빠른 응답 시간: Interrupt는 외부 이벤트가 발생할 때마다 CPU가 즉시 해당 이벤트를 처리할 수 있다. 따라서 응답 시간이 매우 빠르다.

  • 자원 낭비가 적음: Interrupt는 외부 이벤트가 발생하지 않는 경우에는 CPU 자원을 점유하지 않는다. 이에 따라 자원 사용의 효율성이 높아진다.

  • 이벤트 처리 우선순위: Interrupt는 우선순위가 높은 이벤트부터 처리된다.

Interrupt의 단점

  • 복잡한 코드: Interrupt 처리는 코드가 복잡해질 수 있다. 이는 인터럽트를 처리할 때 데이터 무결성 및 일관성을 유지하기 위한 코드가 필요하기 때문이다.

  • 과도한 Interrupt 처리: 과도한 Interrupt 처리는 CPU에 부하를 줄 수 있다.

  • 디버깅의 어려움: Interrupt 처리는 어디서든 발생할 수 있으므로, 이로 인한 오류를 디버깅하기 어려울 수 있다.

image

Polling의 장점

  • 단순한 코드: Polling 처리는 Interrupt 처리보다 단순한 코드로 구현할 수 있다.

  • 디버깅의 용이함: Polling은 이벤트 처리를 일괄적으로 처리할 수 있으므로, 디버깅이 용이하다.

  • 코드 예측 가능성: Polling은 언제 이벤트가 발생할 지 예측이 가능하다.

Polling의 단점

  • 느린 응답 시간: Polling은 CPU가 일정한 주기로 이벤트를 체크하기 때문에 Interrupt 처리보다 응답 시간이 느릴 수 있다.

  • 자원 낭비가 큼: Polling은 CPU가 이벤트가 발생하지 않는 경우에도 일정한 주기로 체크하기 때문에, 자원 낭비가 크다.

  • 이벤트 처리 우선순위: Polling에서 이벤트 처리 우선순위를 설정하기 어렵다.


따라서, Interrupt는 빠른 응답시간과 이벤트 처리 우선순위 설정이 가능하다는 장점이 있지만, 코드가 복잡하고 과도한 Interrupt 처리는 CPU에 부하를 줄 수 있다는 단점이 있다. 반면, Polling은 단순한 코드와 디버깅 용이함과 코드 예측 가능성이라는 장점이 있지만, 응답 시간이 느리고 자원 낭비가 크며 이벤트 처리 우선순위를 설정하기 어렵다는 단점이 있다.

따라서, Interrupt와 Polling은 각각의 상황에 따라 적절한 방법을 선택해야 한다. 예를 들어, 실시간 성능이 중요한 경우에는 Interrupt를 사용하는 것이 적합하며, 대규모 시스템에서는 Polling을 사용하는 것이 좋다. 또한, Interrupt와 Polling을 혼합하여 사용할 수도 있다. 이러한 방법을 Hybrid 방법이라고 한다. 이 경우, Polling 방법을 주기적으로 수행하여 Interrupt의 부하를 줄이는 등의 효과를 얻을 수 있다.