PIO, 인터럽트, DMA 선택 기준

I/O 방식은 장치가 빠른지, 데이터가 큰지, CPU가 직접 기다려도 되는지로 고른다. 핵심은 CPU 시간을 어디까지 아끼느냐다.

1

PIO

CPU가 상태 레지스터를 계속 확인하고 데이터 이동도 직접 맡는다.

짧은 대기 CPU 점유 큼
2

Interrupt I/O

요청 후 CPU는 다른 작업을 실행하고, 장치가 완료 시점만 알려준다.

불규칙 이벤트 응답성 좋음
3

DMA

CPU는 전송 조건만 설정하고, 컨트롤러가 메모리로 직접 옮긴다.

큰 블록 인터럽트 1회
CPU 관여 큼
PIOpoll · CPU copy Interrupt완료 신호에 반응 DMAcontroller가 전송
CPU 관여 작음

비용 기준으로 비교

choose by cost
CPU 대기 계속 확인 완료 전까지 자유 전송 중에도 자유
데이터 이동 CPU가 직접 복사 보통 CPU/드라이버가 관여 장치가 메모리에 직접 전송
전송 크기 작고 짧을 때 중간 규모, 드문 이벤트 큰 블록, 연속 스트림
오버헤드 낭비는 크지만 단순 인터럽트마다 진입 비용 설정 비용 후 완료 신호 1회

PIO·Interrupt·DMA 선택 흐름

대기가 아주 짧으면 PIO도 가능하다. 완료 시점이 불규칙하면 인터럽트가 낫다. 데이터가 커지면 DMA가 기본 선택이 된다.

PIO

장치가 곧 준비되고 컨텍스트 전환 비용이 더 클 때만 선택한다.

Interrupt

CPU가 기다리지 않아도 되지만, 잦은 신호는 오히려 부담이 된다.

DMA

디스크, 네트워크, 그래픽처럼 큰 데이터를 옮길 때 CPU 사용을 가장 크게 줄인다.