운영체제 기본 개념: 인터럽트와 DMA
2024. 3. 5. 18:18
728x90

운영체제 기본 개념: 인터럽트와 DMA를 쉽게 설명해드립니다

운영체제(OS, Operating System)는 하드웨어(H/W)사용자(User) 사이에서 작동하는 커널(Kernel)을 중심으로 구성됩니다.
이 중에서도 프로그램이 실행되는 도중에 외부나 내부에서 발생하는 이벤트를 처리하는 방식인 인터럽트와, 입출력 성능을 높이기 위한 DMA 개념은 꼭 알고 있어야 할 핵심입니다.


인터럽트란?

▶ 쉽게 말해

집에서 일하고 있는데 초인종이 울려 일을 중단하고 문을 여는 상황과 유사

운영체제에서 인터럽트(Interrupt)는 다음과 같은 상황을 처리하기 위해 사용됩니다:

  • 프로그램 실행 중 예외 상황 발생 (예: 키보드 입력, 디스크 I/O 등)
  • CPU는 현재 작업을 잠깐 멈추고, 요청된 작업을 처리함

▶ 인터럽트 동작 순서

  1. 인터럽트 요청 발생
  2. 프로그램 실행 중단 (현재 마이크로 작업까지 수행 후 중단)
  3. 현재 상태 저장 (PC, 레지스터, PCB 등)
  4. 인터럽트 처리 루틴 실행 (어떤 장치가 요청했는지 식별)
  5. 인터럽트 서비스 루틴 수행
    • 요청 원인을 분석하고 실질적인 작업 수행
    • 이 과정 중에도 더 높은 우선순위 인터럽트가 발생하면 재귀적으로 1~5과정 반복
  6. 상태 복구 (저장해둔 레지스터 및 PC 복원)
  7. 중단된 프로그램 재개

DMA(Direct Memory Access)란?

▶ 전통적인 방식의 한계

  • 예를 들어, printf("Hello")를 호출했을 때:
    • CPU는 write() 시스템 콜을 통해 데이터를 RAM으로 보내고,
    • 디스크 I/O, 메모리 접근 등 모든 과정에 관여
    • 데이터 양이 많아질수록 CPU 리소스 낭비 심화

▶ DMA 방식

CPU가 모든 데이터를 직접 전달하지 않고, I/O 장치가 메모리에 직접 접근하게 함

  • DMA Controller가 중간에 개입
  • CPU는 단지 시작/종료 제어 신호만 보냄
  • 실제 데이터 전송은 DMA가 처리
  • 데이터 이동 완료 시 인터럽트 발생 → CPU가 결과를 수신

▶ 효과

  • CPU는 데이터 전송에서 자유로워짐
  • 성능 향상, 특히 입출력 작업이 많은 환경에서 효율적
  • Hello World 출력도 CPU는 요청만 하고 대기 → 인터럽트로 결과 수신

직접 그린 그림

정리

구분 설명
인터럽트 CPU가 현재 작업을 잠시 멈추고 요청된 이벤트를 처리
DMA 입출력 장치가 메모리에 직접 접근하여 CPU 부담을 줄임
공통점 둘 다 입출력 흐름 중 CPU의 자원 효율을 개선하는 목적

운영체제의 핵심 개념은 어렵게 느껴질 수 있지만,
이처럼 일상적인 비유와 함께 생각하면 훨씬 쉽게 이해할 수 있습니다.
"Hello World!"를 출력할 때도, OS 안에서는 많은 일이 일어나고 있다는 점, 기억하세요!

반응형

'컴퓨터 공학 기초 > 운영체제' 카테고리의 다른 글

CPU 스케줄링 (1)  (0) 2024.03.05