interruptpollingdma
Interrupt, polling, DMA를 비교해 설명해 주세요
- 예상 시간
- 8분
30초 답변
꼬리질문
조금 더 깊게 물어본다면
답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.
polling의 장점은 무엇인가요?
interrupt의 단점은 무엇인가요?
DMA가 CPU 사용률을 줄이는 이유는 무엇인가요?
interrupt handler에서는 왜 일을 짧게 해야 하나요?
DMA와 cache coherence는 왜 연결되나요?
부가 설명
장치와 CPU가 대화하는 방법은 상황에 따라 다릅니다. 키보드 입력처럼 가끔 발생하는 이벤트를 CPU가 계속 확인하는 것은 낭비입니다. 이때 interrupt가 잘 맞습니다. 반대로 아주 짧고 예측 가능한 대기에서는 polling이 더 단순하고 빠를 때도 있습니다.
대량 데이터 전송에서는 또 다른 문제가 생깁니다. 모든 byte를 CPU가 직접 옮기면 계산할 시간이 줄어듭니다. DMA는 장치 컨트롤러가 메모리와 직접 데이터를 주고받게 해서 CPU 부담을 줄입니다. 다만 cache coherence나 buffer pinning처럼 메모리 일관성 문제를 함께 고려해야 합니다.
한 줄 정리
Polling은 CPU가 묻는 방식, interrupt는 장치가 알리는 방식, DMA는 데이터 이동을 장치가 직접 맡는 방식입니다.