ABOUT

성능과 운영 안정성을 함께 끌어올리는 개발자입니다.

92% Positional Error Reduction
79% p95 Latency Improvement
90%+ Long Tasks Reduction

2022.02 · 한국장학재단

우수 멘티

한국장학재단 사회 리더 대학생 멘토링 IT

2022.10 · 동작구청

우수 인재상

동작구청 우수 SW 인재

2025.05 · (주) 그랩

프로그래밍 우수상

(주) 그랩 우수 프로그램 개발

2025.05 · AWSKRUG

AWS한국사용자모임 발표

AI agent 스크립트 튜닝 관련 발표

ComputerScience

Development

Engineering

Trouble Shooting

GUESTBOOK

첫 마음부터
함께 나누는 온기

방명록 작성하러 가기

SUBSCRIBE

최신소식을
편하게 만나보세요.

인터럽트 (interrupt)

 
 

CPU

 

정의

'방해하다', '중단시키다'라는 의미입니다.

CPU가 수행 중인 작업을 방해를 받아 잠시 중단될 수 있는데, 이 방해 신호를 인터럽트라고 합니다.
임의로 발생시킬 수도 있고, 잘못된 프로그램으로 인해 발생하는 등 다양한 상황에서 발생합니다.

효율적인 입출력을 위해 사용되며, 컴퓨터 구조, 운영체제 (OS)에도 중요한 개념입니다.

크게 동기 인터럽트 (예외)와 비동기 인터럽트 (하드웨어 인터럽트)로 나뉩니다.

 

동기 인터럽트

CPU에 의해 발생하며, 프로그래밍 오류와 같은 예외 상황에 발생합니다.

ㅇㅇ

 

 

비동기 인터럽트

입출력장치에 의해 발생하며, 효육적으로 명령어를 처리하기 위해 사용합니다.

일반적으로 입출력 장치의 속도는 CPU에 비해 현저히 느립니다.

그러므로 비동기 인터럽트를 통해 주기적으로 입출력 작업의 완료 여부를 확인해야 합니다.

비동기 인터럽트가 알림의 역할을 해주므로, CPU는 해당 작업이 끝날 때까지 기다리지 않고 다른 작업을 처리할 수 있으며, 이는 CPU 사이클 낭비를 최소화하고,  효율적인 명령어 처리의 결과를 만들어 냅니다.

이러한 입출력 장치의 상태나, 처리할 데이터 여부를 주기적으로 확인하는 기법을 폴링 (polling)이라고 합니다.

비동기 인터럽트 처리 순서
  1. 인터럽트는 CPU가 수행 중인 작업을 끊는 것이기 때문에 인터럽트 전에 가능 여부를 확인하는 인터럽트 요청 신호를 보냅니다.
  2. CPU는 실행 사이클이 끝나고 명령어를 인출하기 전에 항상 인터럽트 여부를 확인합니다.
  3. CPU가 인터럽트 요청을 수용하기 위해서 레지스터(Register)인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는지 여부를 확인합니다. 인터럽트 플래그가 불가능
  4. 인터럽트 플랙그가 불가능으로 설정되어 있으면 무시하고,  받아들일 수 있다면 CPU가 지금까지의 작업을 백업합니다.
  5. CPU는 인터럽트 벡터를 참조해 인터럽트 서비스 루틴을 실행합니다.
  6. 인터럽트 서비스 루틴 실행이 끝나면 4에서 백업한 작업을 복구해 실행을 재개합니다.

 

 

 

728x90