728x90
운영체제 기본 개념: 인터럽트와 DMA를 쉽게 설명해드립니다
운영체제(OS, Operating System)는 하드웨어(H/W)와 사용자(User) 사이에서 작동하는 커널(Kernel)을 중심으로 구성됩니다.
이 중에서도 프로그램이 실행되는 도중에 외부나 내부에서 발생하는 이벤트를 처리하는 방식인 인터럽트와, 입출력 성능을 높이기 위한 DMA 개념은 꼭 알고 있어야 할 핵심입니다.
인터럽트란?
▶ 쉽게 말해
집에서 일하고 있는데 초인종이 울려 일을 중단하고 문을 여는 상황과 유사
운영체제에서 인터럽트(Interrupt)는 다음과 같은 상황을 처리하기 위해 사용됩니다:
- 프로그램 실행 중 예외 상황 발생 (예: 키보드 입력, 디스크 I/O 등)
- CPU는 현재 작업을 잠깐 멈추고, 요청된 작업을 처리함
▶ 인터럽트 동작 순서
- 인터럽트 요청 발생
- 프로그램 실행 중단 (현재 마이크로 작업까지 수행 후 중단)
- 현재 상태 저장 (PC, 레지스터, PCB 등)
- 인터럽트 처리 루틴 실행 (어떤 장치가 요청했는지 식별)
- 인터럽트 서비스 루틴 수행
- 요청 원인을 분석하고 실질적인 작업 수행
- 이 과정 중에도 더 높은 우선순위 인터럽트가 발생하면 재귀적으로 1~5과정 반복
- 상태 복구 (저장해둔 레지스터 및 PC 복원)
- 중단된 프로그램 재개
DMA(Direct Memory Access)란?
▶ 전통적인 방식의 한계
- 예를 들어,
printf("Hello")
를 호출했을 때:- CPU는
write()
시스템 콜을 통해 데이터를 RAM으로 보내고, - 디스크 I/O, 메모리 접근 등 모든 과정에 관여
- 데이터 양이 많아질수록 CPU 리소스 낭비 심화
- 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 |
---|