1. 개념 한줄 요약
인터럽트 벡터는 하드웨어나 소프트웨어 인터럽트가 발생했을 때 어떤 처리 함수가 실행되어야 하는지를 지정하는 주소 목록으로, CPU가 이벤트를 빠르게 처리하도록 돕는 핵심 구조다.
2. 쉽게 풀어쓴 설명
컴퓨터는 프로그램을 순서대로 실행하면서 작업을 처리한다. 하지만 현실에서는 예상하지 못한 이벤트가 언제든 발생할 수 있다. 예를 들어 키보드 입력, 마우스 움직임, 네트워크 패킷 수신, 디스크 작업 완료 같은 이벤트가 있다.
이러한 이벤트가 발생하면 CPU는 현재 실행 중인 작업을 잠시 멈추고 해당 이벤트를 처리해야 한다. 이때 사용되는 것이 바로 ‘인터럽트(Interrupt)’다.
인터럽트가 발생하면 CPU는 해당 이벤트를 처리할 프로그램을 찾아 실행해야 한다. 이때 어떤 처리 루틴을 실행할지 알려주는 주소 목록이 바로 인터럽트 벡터다.
쉽게 말해 인터럽트 벡터는 “이 이벤트가 발생하면 이 프로그램을 실행하라”는 안내표 같은 역할을 한다.
3. 구조·원리 설명
✔ 인터럽트 기본 개념
인터럽트는 CPU가 외부 또는 내부 이벤트에 반응하도록 하는 신호다.
대표적인 인터럽트 종류는 다음과 같다.
✔ 하드웨어 인터럽트
키보드, 마우스, 디스크 등 장치에서 발생
✔ 소프트웨어 인터럽트
프로그램 실행 중 발생하는 이벤트
✔ 예외(Exception)
오류 상황에서 발생하는 인터럽트
CPU는 인터럽트 발생 시 현재 작업을 잠시 중단한다.
✔ 인터럽트 벡터 테이블 구조
인터럽트 벡터는 보통 ‘인터럽트 벡터 테이블(Interrupt Vector Table)’이라는 구조로 관리된다.
이 테이블에는 다음 정보가 저장된다.
✔ 인터럽트 번호
✔ 처리 루틴 주소
✔ 핸들러 정보
CPU는 인터럽트 번호를 기반으로 해당 처리 주소를 찾아 실행한다.
✔ 인터럽트 처리 흐름
인터럽트가 발생하면 다음과 같은 과정이 진행된다.
① 인터럽트 발생
② CPU가 현재 작업 중단
③ 인터럽트 번호 확인
④ 벡터 테이블에서 처리 주소 검색
⑤ 인터럽트 서비스 루틴(ISR) 실행
⑥ 작업 완료 후 원래 프로그램 복귀
이 과정은 매우 빠르게 처리된다.
✔ 인터럽트 서비스 루틴(ISR)
인터럽트가 발생했을 때 실행되는 프로그램을 ISR(Interrupt Service Routine)이라고 한다.
예시
✔ 키보드 입력 처리
✔ 네트워크 패킷 처리
✔ 디스크 읽기 완료 처리
ISR은 이벤트를 빠르게 처리하도록 설계된다.
✔ 인터럽트 우선순위 구조
여러 인터럽트가 동시에 발생할 수 있기 때문에 우선순위 시스템이 존재한다.
✔ 높은 우선순위 → 먼저 처리
✔ 낮은 우선순위 → 대기
이 구조를 통해 중요한 이벤트가 빠르게 처리된다.
4. 예시로 이해하는 실제 동작
✔ 키보드 입력
사용자가 키를 누르면 키보드 컨트롤러가 인터럽트를 발생시킨다. CPU는 해당 인터럽트 벡터를 찾아 입력 처리를 수행한다.
✔ 네트워크 데이터 수신
네트워크 카드가 데이터를 수신하면 인터럽트를 발생시켜 운영체제가 패킷을 처리한다.
✔ 디스크 작업 완료
디스크 읽기 작업이 끝나면 인터럽트가 발생해 다음 작업이 진행된다.
5. 주의점과 오해하기 쉬운 부분
❗ 인터럽트는 CPU 작업을 중단시킨다
인터럽트가 너무 많이 발생하면 시스템 성능이 저하될 수 있다.
❗ ISR은 짧게 유지해야 한다
인터럽트 처리 루틴이 길면 다른 작업이 지연될 수 있다.
❗ 폴링 방식과 차이
인터럽트는 이벤트 발생 시 CPU가 반응하는 방식이고, 폴링은 CPU가 계속 상태를 확인하는 방식이다.
❗ 인터럽트 마스킹 가능
일부 인터럽트는 시스템 보호를 위해 일시적으로 비활성화할 수 있다.
6. 요약 정리
✔ 인터럽트는 이벤트 처리 신호다.
✔ 인터럽트 벡터는 처리 루틴 주소 목록이다.
✔ 인터럽트 벡터 테이블로 관리된다.
✔ 인터럽트 발생 시 ISR이 실행된다.
✔ 우선순위 시스템이 존재한다.
✔ CPU 이벤트 처리 구조의 핵심 요소다.
인터럽트 벡터 의미와 처리 경로 구조를 이해하면, 컴퓨터가 외부 장치와 어떻게 빠르게 상호작용하는지 알 수 있다. 이는 운영체제와 컴퓨터 구조를 이해하는 데 매우 중요한 기본 개념이다.