본문 바로가기

컴퓨터/컴퓨터 시험

정보처리 기능사 - 인터럽트(Interrupt)

728x90

인터럽트(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의 자원을 효율적으로 활용하기 위한 필수적인 기능

728x90