다섯 살도 알 수 있게 · 시스템SW

인터럽트 처리 과정이 뭐예요?

인터럽트 처리 과정을, 정비공장에서 급한 벨이 울리면 하던 일을 적어두고 바로 달려가는 이야기로 풀어봤어요.

빵빵!타이어를 갈던 중인데 갑자기 급한 차가 경적을 울려요정비사는 하던 일을 계속할지, 멈추고 봐줄지 정해야 해요

정비사가 일하는데 갑자기 급한 차가 빵빵 울려요.정비사는 하던 일을 계속할지, 멈추고 봐줄지 정해야 해요.

급한 차 왔나?...안 왔나?...틈틈이 계속 쳐다보기만 해도(폴링) 일손이 뺏겨요급한 차가 직접 알려주는 방법이 필요해요

급한 차가 왔는지 계속 흘깃거리면 정비사의 일손이 낭비돼요.급한 차가 직접 알려주는 방법이 필요해요.

하던 일 적어두기인터럽트 처리 = 벨이 울리면 하던 일을 적어두고 바로 달려가는 것급한 일을 끝내면 적어둔 자리부터 다시 이어서 해요

벨이 울리면 하던 일을 적어두고 바로 달려가요.급한 일을 끝내면 적어둔 자리부터 다시 이어서 해요.

① 인터럽트 발생벨이 울려요
② 상태 저장하던 자리를 적어둬요
③ 벡터 확인벨 종류별 담당자를 찾아요
④⑤ 처리 후 복귀적어둔 자리부터 이어가요
인터럽트 처리 순서① 벨 울림 — 인터럽트 발생② 하던 자리 적어두기 — 상태 저장③ 벨 종류별 담당표 확인 — 인터럽트 벡터④ 담당자가 급한 일을 처리(ISR)⑤ 적어둔 자리부터 복귀 — 상태 복원벨 종류별 담당표타이어 벨 → 1번 정비사엔진 벨 → 2번 정비사같은 종류의 벨은 항상 같은 담당자가 맡아요

인터럽트 처리는 ①~⑤ 다섯 단계예요.같은 종류의 벨은 항상 같은 담당자가 맡아요.

이 페이지: 어떤 벨이든 통하는 일반 처리 순서네트워크 카드 벨만 다룬 이야기는 네트워크 분야에 있어요어느 벨이든 순서는 같아요 — 저장하고, 처리하고, 복귀해요

이 페이지는 네트워크 벨만 다룬 이야기와 달리, 모든 벨의 공통 순서를 다뤄요.어느 벨이든 순서는 같아요 — 저장하고, 처리하고, 복귀해요.

한 줄로

인터럽트 처리는 벨(신호)이 울리면 하던 일을 적어두고 담당자에게 달려가 처리한 뒤, 원래 자리부터 다시 이어가는 순서예요.

인터럽트는 CPU가 현재 실행 중인 프로그램을 잠시 멈추고 다른 긴급한 작업을 처리하도록 하는 신호예요. 처리 과정은 ①인터럽트 발생 ②현재 레지스터·프로그램 카운터를 스택에 저장 ③인터럽트 벡터 테이블에서 해당 ISR(인터럽트 서비스 루틴) 주소 확인 ④ISR 실행 ⑤저장해둔 상태를 복원하고 원래 실행 흐름으로 복귀하는 순서로 이뤄져요. 계속 상태를 확인하는 폴링 방식보다 CPU 자원을 아낄 수 있어요.

어른들은 이렇게 불러요

인터럽트
Interrupt
급한 차가 울리는 벨. 하던 일을 잠시 멈추게 하는 신호예요.
상태 저장/복원
Save/Restore State
하던 일을 적어뒀다가 다시 펴보기. 레지스터·프로그램 카운터를 스택에 쌓아요.
인터럽트 벡터 테이블
Interrupt Vector Table
벨 종류별 담당자 이름표. 벨마다 정해진 처리 루틴 주소를 담고 있어요.
ISR(인터럽트 서비스 루틴)
ISR (Interrupt Service Routine)
벨에 달려가 실제로 처리하는 사람. 벡터 테이블이 가리키는 처리 코드예요.
폴링
Polling
계속 흘깃흘깃 확인하는 방식. 인터럽트보다 비효율적일 수 있어요.
인터럽트 우선순위
Interrupt Priority
더 급한 벨부터 처리하는 순서. 벨 여러 개가 동시에 울릴 때 쓰여요.
소프트웨어 인터럽트
Software Interrupt
정비사 스스로 벨을 눌러 요청하는 것. 옛 x86 시스템 콜이 이 방식이었고, x86-64는 전용 syscall 명령어를 써요.
네트워크 인터럽트
Network Interrupt
네트워크 카드 벨만 다루는 이야기. 다른 분야(네트워크 분야)에서 자세히 다뤄요. → 소포가 도착했다고 알리는 벨소리
다음 이야기
정비 공정을 처음부터 다시 그리는 일 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →