1
PIO
CPU가 상태 레지스터를 계속 확인하고 데이터 이동도 직접 맡는다.
짧은 대기
CPU 점유 큼
I/O 방식은 장치가 빠른지, 데이터가 큰지, CPU가 직접 기다려도 되는지로 고른다. 핵심은 CPU 시간을 어디까지 아끼느냐다.
CPU가 상태 레지스터를 계속 확인하고 데이터 이동도 직접 맡는다.
요청 후 CPU는 다른 작업을 실행하고, 장치가 완료 시점만 알려준다.
CPU는 전송 조건만 설정하고, 컨트롤러가 메모리로 직접 옮긴다.
| CPU 대기 | PIO: 계속 확인 | Interrupt: 완료 전까지 자유 | DMA: 전송 중에도 자유 |
|---|---|---|---|
| 데이터 이동 | CPU가 직접 복사 | 보통 CPU/드라이버가 관여 | 장치가 메모리에 직접 전송 |
| 전송 크기 | 작고 짧을 때 | 중간 규모, 드문 이벤트 | 큰 블록, 연속 스트림 |
| 오버헤드 | 낭비는 크지만 단순 | 인터럽트마다 진입 비용 | 설정 비용 후 완료 신호 1회 |
대기가 아주 짧으면 PIO도 가능하다. 완료 시점이 불규칙하면 인터럽트가 낫다. 데이터가 커지면 DMA가 기본 선택이 된다.
장치가 곧 준비되고 컨텍스트 전환 비용이 더 클 때만 선택한다.
CPU가 기다리지 않아도 되지만, 잦은 신호는 오히려 부담이 된다.
디스크, 네트워크, 그래픽처럼 큰 데이터를 옮길 때 CPU 사용을 가장 크게 줄인다.