인터럽트란? 뜻부터 종류, 우선순위와 처리과정까지 이 글 하나로 총정리해드릴게요!
아정당
2025.06.17 업데이트
조회36
스크랩0
-목차-
1. 인터럽트란 무엇인가?
2. 인터럽트의 종류, 어떤 것들이 있을까?
3. 인터럽트 vs 폴링, 차이점과 장단점
4. 인터럽트 처리 과정, 우선순위와 ISR의 역할
1. 인터럽트란 무엇인가?
컴퓨터를 사용하다 보면 갑작스럽게
처리해야 할 일이 생기곤 하죠.
인터럽트는 바로 그런 상황에서 시스템이 빠르게
반응할 수 있게 해주는 기능이에요.
CPU가 지금 하던 일을 잠시 멈추고
더 급한 요청을 먼저 처리하도록 명령하는거죠.
예를 들어 키보드를 누르거나 마우스를 클릭할 때
시스템이 즉시 반응하는 게
바로 인터럽트 덕분이랍니다.
이건 프로그램이 미리 정해진 순서대로만
움직이지 않고,
외부 이벤트에 유연하게 대처할 수 있게 해줘요.
인터럽트가 없다면?
▶ CPU는 계속 기다리거나
▶ 필요 없는 작업을 반복할 수도 있겠죠.
2. 인터럽트의 종류, 어떤 것들이 있을까?
인터럽트에도 여러 가지 종류가 있는데요.
대표적으로
✔ 하드웨어 인터럽트
✔ 소프트웨어 인터럽트
두개로 나눌 수 있어요.
◆ 하드웨어 인터럽트
= 키보드 입력이나 타이머 신호처럼
물리적인 장치에서 오는 요청이에요.
◆ 소프트웨어 인터럽트
프로그램 실행 중
특정 조건이 맞아떨어질 때 발생하죠.
예를 들어 시스템 호출이나 예외 상황이 생기면
소프트웨어 인터럽트가 동작한답니다.
또 다른 분류로는
외부 인터럽트와 내부 인터럽트가 있어요.
◆ 외부 인터럽트
: 장치에서 오는 신호로 발생
◆ 내부 인터럽트
: CPU 안에서 오류나 특정 상태로 발생
이렇게 다양한 인터럽트가 상황에 따라
적절히 활용되는 거예요.
3. 인터럽트 vs 폴링, 차이점과 장단점
인터럽트와 비슷한 개념으로
폴링이라는 게 있는데요.
이 둘은 접근 방식에서 차이가 있어요.
1) 폴링
: CPU가 주기적으로 장치를 확인하면서
작업 요청이 있는지 체크하는 방식이에요.
폴링은 구현이 간단하고 예측 가능하지만
CPU가 계속 확인해야 해서
효율이 떨어질 수 있어요.
2) 인터럽트
: 장치가 직접 CPU에게 신호를 보내죠.
인터럽트는 즉각적인 반응이 가능하고
CPU 자원을 더 효과적으로 쓰지만
구현이 조금 더 복잡하죠.
◆ 추천 정리
- 폴링은 작은 시스템에서 더 낫고
- 인터럽트는 복잡한 작업 환경에서 더 유리해요.
상황에 따라 둘의 장단점이 뚜렷하게 갈린답니다.
4. 인터럽트 처리 과정, 우선순위와 ISR의 역할
인터럽트가 발생하면 어떤 순서로 처리될까요?
먼저 CPU는 현재 작업을 멈추고
상태를 저장해요.
그 다음 인터럽트 벡터를 통해
어떤 인터럽트인지 확인한 뒤 ISR로 넘어갑니다.
ISR, 그러니까 인터럽트 서비스 루틴은
그 인터럽트를 처리하는 코드를 말해요.
예를 들어 타이머 인터럽트가 오면
ISR이 시간을 업데이트하거나 알림을 주죠.
여기서 중요한 게 우선순위인데요.
인터럽트마다 급한 정도가 다르니까
우선순위가 높은 걸 먼저 처리해요.
만약 키보드 입력과 디스크 읽기가 동시에 오면
더 급한 디스크 작업이 먼저 끝날 수도 있죠.
이 과정이 끝나면?
CPU는 원래 하던 일로 돌아가요.
이런 순서만 이해하면
인터럽트가 훨씬 쉬워진답니다.
이렇게 인터럽트를 중심으로 살펴봤는데요.
- 하드웨어, 소프트웨어 인터럽트
- 폴링과의 비교
- 처리 과정까지
하나씩 따라가다 보면 개념이 확 잡힐 거예요.
궁금한 점이 있으면 언제든 물어보세요!
1