study/Operating System
입출력 방식 쉽게 이해하기! Programmed I/O vs Interrupt I/O
root@soni
2024. 11. 8. 02:40
컴퓨터 시스템에서 입출력(I/O) 은 CPU와 장치 간의 데이터 교환을 의미합니다.
이 입출력 작업을 어떻게 처리하느냐에 따라 시스템의 효율이 달라지는데, 대표적인 방식으로 Programmed I/O와 Interrupt I/O가 있습니다.
이번 글에서는 이 두 방식을 간단하게 정리하고, 장단점을 비교해보겠습니다.
1. Programmed I/O란?
Programmed I/O는 CPU가 직접 입출력 장치에 명령을 보내고, 해당 작업이 끝날 때까지 CPU가 대기하는 방식입니다.
별도의 복잡한 구조 없이 단순하게 구현할 수 있어, 작은 시스템이나 간단한 작업에 자주 사용됩니다.
- 대기 시간: 작업이 완료될 때까지 CPU는 다른 일을 하지 못하고 기다림
- 적용 분야: 단순 입출력 작업, 소규모 시스템
2. Interrupt I/O란?
Interrupt I/O는 입출력 장치가 작업을 끝낸 후 CPU에 인터럽트를 발생시켜 알리는 방식입니다.
CPU는 입출력 명령을 전송한 후 기다리지 않고 다른 작업을 수행하며, 장치의 인터럽트가 발생했을 때만 반응합니다.
- 대기 시간: CPU는 대기하지 않고 다른 작업을 수행함
- 적용 분야: 대규모 시스템, 실시간 처리 시스템
3. Programmed I/O vs Interrupt I/O 비교
| 구분 | Programmed I/O | Interrupt I/O |
| 장점 | - 구조가 단순하고 구현이 쉬움 - 추가 하드웨어 없이 동작 가능 - 인터럽트 처리로 인한 오버헤드 없음 |
- CPU 자원을 효율적으로 사용 - 입출력 완료 후 즉시 알림으로 빠른 처리 - CPU가 다른 작업을 수행할 수 있음 |
| 단점 | - 입출력 완료까지 CPU가 대기 - CPU 활용률이 낮아짐 - 데이터 처리 속도가 느릴 수 있음 |
- 인터럽트 핸들링이 복잡함 - 추가 하드웨어 필요 - 오류 처리 로직이 어려울 수 있음 |
4. 마무리
- 간단한 시스템이나 리소스가 제한적인 환경에서는 Programmed I/O가 유리할 수 있습니다.
- 고성능이 요구되거나 동시 작업 처리가 중요한 환경에서는 Interrupt I/O가 더 적합합니다.
시스템의 특성과 목적에 맞는 입출력 방식 선택이 중요합니다.