외부 장치의 신호나 예외 상황이 발생했을 때, CPU가 현재 실행 흐름을 잠시 멈추고 긴급한 작업을 우선 처리하는 인터럽트(Interrupt) 메커니즘에 대해 정리해 보았습니다.
인터럽트는 멀티태스킹 환경에서 비동기적인 사건들을 즉각적으로 처리할 수 있게 해주는 현대 운영체제의 핵심 기능입니다.
인터럽트가 발생했을 때 CPU와 운영체제가 어떻게 유기적으로 대응하는지 그 과정을 살펴보겠습니다.
- [하드웨어] 인터럽트 요청 신호 발생
- [CPU] 현재 명령어 실행 완료 후 신호 확인
- [CPU] 현재 상태(PC 등)를 스택이나 PCB에 저장
- [CPU] 인터럽트 벡터를 참조하여 ISR 주소로 이동
- [커널] ISR(Interrupt Service Routine) 실행 및 작업 처리
- [CPU] 저장된 이전 상태 복구 후 원래 프로그램으로 복귀
이러한 인터럽트 방식은 CPU가 장치의 작업 완료 여부를 일일이 확인하는 폴링(Polling) 방식에 비해 압도적으로 효율적입니다.
장치가 신호를 보낼 때까지 CPU는 다른 연산을 계속 수행할 수 있어 시스템 자원 활용도를 극대화할 수 있기 때문입니다.
결국 인터럽트는 시스템의 응답성을 확보하고 자원 활용을 최적화하는 데 결정적인 역할을 합니다.
사용자에게는 빠른 반응 속도를 제공하고, 시스템 내부적으로는 쉼 없이 효율적으로 일할 수 있게 만드는 이 정교한 중단과 복구의 미학이 현대 컴퓨팅의 안정성을 지탱하고 있다는 사실이 무척 흥미로웠습니는 것 같다.