I/O strategy

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

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

1

PIO

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

짧은 대기 CPU 점유 큼
2

Interrupt I/O

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

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

DMA

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

큰 블록 인터럽트 1회

비용 기준으로 비교

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

PIO·Interrupt·DMA 선택 흐름

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

PIO

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

Interrupt

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

DMA

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