인터럽트(Interrupt) 는 컴퓨터 시스템에서 중요한 개념 중 하나야. 인터럽트는 CPU가 프로그램을 실행하는 도중에 예외적인 상황이 발생하면, 현재 작업을 멈추고 특정 작업을 먼저 수행한 후 다시 원래 작업으로 복귀하는 메커니즘이야.
🔹 인터럽트(Interrupt)란?
컴퓨터가 프로그램을 실행하는 도중에 예기치 않은 이벤트(사건)가 발생했을 때, 이를 처리하기 위해 실행 흐름을 변경하는 것을 말해. CPU는 일반적으로 순차적으로 명령을 수행하지만, 인터럽트가 발생하면 즉시 해당 요청을 처리한 후 원래의 작업으로 복귀해.
🔹 인터럽트의 종류
1️⃣ 외부 인터럽트 (External Interrupt)
외부 장치에서 발생하는 인터럽트로, 하드웨어 인터럽트라고도 해.
📌 예시:
- 키보드를 누를 때 (키보드 인터럽트)
- 마우스를 클릭할 때 (마우스 인터럽트)
- 프린터가 출력 완료를 알릴 때
- 하드디스크에서 데이터 전송이 끝났을 때
2️⃣ 내부 인터럽트 (Internal Interrupt)
프로그램 실행 중에 CPU 내부에서 발생하는 인터럽트로, 소프트웨어 인터럽트라고도 해.
📌 예시:
- 0으로 나누기 연산 (연산 오류)
- 잘못된 명령어 실행 (부적절한 명령어)
- 오버플로우 발생 (연산 범위 초과)
- 메모리 보호 오류 (접근 금지된 메모리 참조)
3️⃣ 소프트웨어 인터럽트 (Software Interrupt)
사용자가 명령을 실행하거나 운영체제가 강제로 발생시키는 인터럽트야.
📌 예시:
- 시스템 호출(System Call) → print() 같은 기능도 결국 내부적으로 소프트웨어 인터럽트를 사용해.
- 프로그램에서 강제로 인터럽트 발생 (INT 21h 같은 명령어 사용)
🔹 인터럽트 처리 과정 (인터럽트 발생 순서)
1️⃣ 프로그램 실행 중
2️⃣ 인터럽트 발생 (외부/내부/소프트웨어 인터럽트)
3️⃣ CPU가 현재 작업을 멈추고 인터럽트 발생 여부 확인
4️⃣ 해당 인터럽트를 처리하기 위해 인터럽트 서비스 루틴(ISR, Interrupt Service Routine) 실행
5️⃣ 인터럽트 처리가 끝나면 원래 작업으로 복귀
🔹 인터럽트 관련 용어
- 인터럽트 벡터(Interrupt Vector): 인터럽트 발생 시 실행할 처리 루틴의 주소를 저장한 테이블
- 인터럽트 서비스 루틴(ISR): 인터럽트 발생 시 실행되는 코드(핸들러)
- 인터럽트 플래그(Interrupt Flag, IF): 인터럽트를 활성화하거나 비활성화하는 플래그
- 마스킹(Masking): 특정 인터럽트를 무시하고 처리하지 않도록 설정하는 기능
🔹 인터럽트와 폴링(Polling)의 차이
구분 | 인터럽트(Interrupt) | 폴링(Polling) |
개념 | 이벤트 발생 시 CPU가 요청을 처리 | CPU가 주기적으로 상태를 확인 |
효율성 | CPU의 자원을 절약함 | 불필요한 반복 체크로 비효율적 |
예시 | 키보드 입력, 마우스 클릭 | CPU가 장치 상태를 계속 확인 |
인터럽트 방식이 CPU 자원을 절약하고 효율적이기 때문에 대부분의 시스템에서 사용돼.
🔹 정리
✅ 인터럽트는 CPU가 실행 중일 때 예외적인 상황이 발생하면 우선 처리 후 원래 작업으로 복귀하는 기능
✅ 인터럽트의 종류에는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트가 있음
✅ 인터럽트는 CPU의 자원을 효율적으로 활용하기 위한 필수적인 기능
'컴퓨터 > 컴퓨터 시험' 카테고리의 다른 글
정보처리 기능사 - 주기억장치(Primary Memory, Main Memory) (0) | 2025.03.06 |
---|---|
정보처리 기능사 - 인터럽트(Interrupt) 문제 (0) | 2025.03.05 |
정보처리 기능사 - DMA(Direct Memory Access) 문제 (0) | 2025.02.06 |
정보처리 기능사 - DMA(Direct Memory Access) (0) | 2025.02.06 |
정보처리 기능사(주소지정방식) 문제 (0) | 2025.02.05 |