← 질문 목록
#220깊이 0
인터럽트와 폴링의 결정적인 차이는 무엇인가?
이벤트 발생 시 CPU가 직접 확인하는지 아니면 장치가 CPU를 깨우는지의 차이다.
| 순서 | 폴링 | 인터럽트 |
|---|---|---|
| 1 | 준비됐나 묻는다 | 다른 일을 한다 |
| 2 | 아직이다 | 다른 일을 한다 |
| 3 | 아직이다 | 다른 일을 한다 |
| 4 | 준비됐다. 처리한다 | 신호를 받고 처리한다 |
폴링은 CPU가 루프를 돌며 상태를 계속 확인하는 방식이다. 장치가 준비될 때까지 CPU가 대기하므로 자원 낭비가 심하다.
인터럽트는 CPU의 흐름을 처리 루틴으로 옮긴다. 하드웨어 신호로도 오고 소프트웨어 명령이나 예외로도 온다. CPU는 다른 작업을 수행하다가 신호가 오면 처리 루틴으로 점프한다.
인터럽트는 현대 운영체제의 멀티태스킹을 가능하게 하는 핵심 기제다. 운영체제는 하드웨어 인터럽트와 소프트웨어 인터럽트(트랩)를 구분해 알맞은 처리 루틴으로 보낸다.