[5일차] 정보처리산업기사 운영체제 – 입출력 시스템 개요 (Programmed I/O, Interrupt I/O, DMA)


정보처리산업기사, 운영체제에서 입출력 시스템(Input/Output System) 은 CPU와 주변장치(디스크, 프린터, 키보드 등) 간의 데이터 흐름을 관리하는 핵심 요소다. 현대 시스템은 수많은 I/O 장치를 동시에 처리하므로, 효율적인 제어 방식이 필요하다. 이번 학습에서는 Programmed I/O, Interrupt I/O, DMA(Direct Memory Access) 세 가지 주요 입출력 제어 방식을 중심으로 원리를 비교한다.


1. I/O 시스템의 기본 개념

입출력 시스템은 CPU, 메모리, 장치 제어기(Device Controller), 그리고 실제 장치(Device)로 구성된다.

운영체제는 이들 간의 데이터 이동을 I/O 제어 모듈을 통해 조정한다.

구성요소설명
CPU입출력 명령을 실행하고 상태를 감시
메모리(Main Memory)프로그램과 데이터를 저장
장치 제어기(Device Controller)각 I/O 장치별 제어 회로 (버퍼, 레지스터 포함)
I/O 버스CPU ↔ 제어기 ↔ 장치 간 통신 경로
Device Driver운영체제가 장치를 제어하기 위한 소프트웨어 계층

운영체제는 이 계층을 통해 하드웨어 차이를 추상화하여, 응용 프로그램이 동일한 방식으로 파일이나 장치를 다룰 수 있게 한다.

이때 입출력 제어 방식에 따라 CPU와 I/O 장치의 협력 형태가 달라진다.


2. Programmed I/O (프로그램 제어 입출력)

CPU가 직접 입출력을 제어하는 가장 단순한 방식이다.

CPU가 장치의 상태를 확인하며, 준비가 될 때까지 Polling(폴링) 방식으로 반복 검사한다.

구분내용
동작 방식CPU가 I/O 명령 실행 후 장치 상태를 반복 확인
특징구현 단순, 효율 낮음
단점CPU가 대기 상태로 낭비됨
예시간단한 임베디드 장치, 키보드 입력 처리 등

Programmed I/O는 CPU가 입출력 완료를 기다리는 동안 아무 작업도 수행하지 못하므로 CPU 활용률이 낮다.

시험에서는 이 구조가 CPU가 모든 제어를 직접 수행한다는 점을 강조한다.

Polling(폴링)

폴링(Polling) 이란 CPU가 주기적으로 I/O 장치의 상태를 확인하는 방식 즉, “지금 데이터 전송할 준비가 되었나요?” 하고 반복적으로 물어보는 구조를 말합니다.


3. Interrupt I/O (인터럽트 제어 입출력)

Programmed I/O의 비효율을 개선하기 위해 등장한 방식이다.

I/O 장치가 작업을 완료하면 인터럽트(Interrupt)를 발생시켜 CPU에 알리는 구조로, CPU는 다른 작업을 수행하다가 인터럽트를 감지하면 처리 루틴으로 분기한다.

구분내용
동작 방식장치 완료 시 인터럽트 신호 전송 → CPU가 처리
특징CPU와 I/O 병행 가능
장점CPU 낭비 감소, 응답 속도 향상
단점인터럽트 빈도가 많으면 오버헤드 증가
예시키보드 입력, 프린터 완료 신호, 네트워크 패킷 수신 등

운영체제는 인터럽트가 발생하면 ISR(Interrupt Service Routine) 으로 제어를 넘기며, 이를 처리한 후 원래 실행하던 작업으로 복귀한다.

이는 실제 컴퓨터의 비동기(Asynchronous) 동작의 기초이며, 시험에서는 “CPU가 직접 폴링하지 않는다”는 문장으로 구분된다.


4. DMA (Direct Memory Access, 직접 메모리 접근)

DMA는 대용량 데이터 전송 시 CPU 개입 없이 장치가 직접 메모리에 접근하는 방식이다.

CPU는 단지 전송 명령과 주소만 설정하고, 전송 완료 시 인터럽트를 통해 결과를 보고받는다.

구분내용
동작 방식장치 제어기가 직접 메모리와 데이터 전송
특징대용량, 고속 I/O에 적합
장점CPU 부하 감소, 병렬성 향상
단점하드웨어 복잡도 증가, 비용 상승
예시디스크·네트워크 카드 등 대용량 장치

DMA는 CPU 대신 DMA 제어기(DMA Controller) 가 버스를 제어하며, 전송이 완료되면 CPU에 인터럽트를 보낸다.

즉, CPU는 데이터 복사 작업에 관여하지 않고 제어만 담당하므로 효율이 가장 높다.


5. 입출력 제어 방식 비교

방식CPU 개입 정도병행 수행 가능성속도 / 효율적용 사례
Programmed I/O매우 높음불가능느림간단한 장치
Interrupt I/O중간가능중간프린터, 키보드
DMA낮음완전 병행빠름디스크, 네트워크

정리 포인트:

Programmed I/O는 CPU가 “직접 제어”,

Interrupt I/O는 CPU가 “신호에 반응”,

DMA는 CPU가 “제어만 위임”하는 구조다.


6. 실무 적용과 시험 포인트

현대 운영체제는 세 가지 방식을 혼합하여 사용한다.

  • CPU-중심 제어: 폴링 기반 장치 (USB 초기화 등)
  • 인터럽트 기반 제어: 사용자 입력, 이벤트 처리
  • DMA 기반 전송: 디스크 I/O, 네트워크 패킷 처리

정보처리산업기사 실기에서는 다음 유형이 자주 등장한다.

  1. Programmed / Interrupt / DMA 동작 순서 구분
  2. CPU와 I/O 장치 간 데이터 흐름 비교 문제
  3. DMA 제어기 역할인터럽트 우선순위 제어

결론

입출력 시스템은 CPU와 주변장치의 효율적인 협업을 가능하게 하는 운영체제의 핵심 기능이다.

Programmed I/O는 단순하지만 비효율적이며, Interrupt I/O는 CPU 활용률을 높인다.

DMA는 CPU의 부담을 줄이면서 고속 처리를 가능하게 해준다.

실무에서는 이러한 세 가지 방식을 상황에 따라 조합하여 시스템 성능을 극대화한다.


다음 학습 – 버퍼링과 스풀링

다음 학습에서는 버퍼(Buffer)와 스풀링(Spooling)의 개념, 그리고 단일·이중 버퍼링 구조를 통해 I/O 효율을 향상시키는 전략을 살펴본다.

정보처리산업기사 관련링크 모음

  • 큐넷(Q-Net) 정보처리산업기사 안내
    -> 바로가기
  • 큐넷 원서접수 페이지 (정보처리산업기사 실기)
    -> 바로가기
  • 한국산업인력공단 공식 홈페이지
    ->바로가기
  • 이기적 2025 정보처리산업기사 실기 교재 공식몰 (영진닷컴)
    -> 바로가기
  • HRD-Net (직업훈련포털)
    -> 바로가기

“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”