인터럽트 처리의 종류와 절차
설명 영상 인터럽트 처리의 종류와 절차 · 2:23
핵심 정리
인터럽트는 프로세서가 현재 수행하는 작업을 잠시 멈추고 더 급한 요청을 먼저 처리하도록 하는 신호이다. 인터럽트를 사용하면 프로세서가 장치의 상태를 계속 확인하지 않아도 되므로 입출력 처리의 효율이 높아진다. 인터럽트는 원인이 발생한 위치에 따라 외부 인터럽트와 내부 인터럽트로 나뉘며, 이 구분이 이 단원의 출발점이다. 외부 인터럽트의 대표적인 예는 입출력 인터럽트이다. 입출력 인터럽트는 입출력장치가 데이터 전송을 요구하거나 완료를 알릴 때 발생하는 외부 인터럽트이다. 신호를 보내는 쪽이 입출력장치라는 점을 함께 기억해야 한다. 내부 인터럽트는 프로그램 실행 과정에서 발생한 상황이 원인이다. 대표적인 예는 오버플로이다. 오버플로는 외부 인터럽트 요인이 아니라 잘못된 연산 결과로 발생하는 내부 인터럽트이다. 두 원인을 혼동하면 선지를 잘못 판단할 수 있다. 인터럽트가 발생하면 프로세서는 현재 수행 중인 프로그램의 주소 값을 스택이나 특정 기억 장소에 저장한다. 그 뒤 인터럽트가 발생하면 프로세서는 인터럽트 처리 루틴을 호출하여 처리한다. 인터럽트 처리 루틴은 인터럽트 서비스 루틴(ISR)이라고도 한다. 처리가 끝나면 저장해 둔 주소로 돌아가 중단된 프로그램을 이어서 실행한다. 기억할 순서는 주소 값 저장, 루틴 호출, 복귀이다. 처리 루틴이 실행되는 동안에는 일반적으로 다른 인터럽트가 대기한다. 루틴 안에서 다른 인터럽트를 처리하려면 마스크 비트 해제가 필요하다. 따라서 여러 인터럽트가 겹치면 처리 순서를 정하는 문제가 생긴다.
자세히
외부 인터럽트와 내부 인터럽트의 범위
외부 인터럽트는 프로그램 바깥의 사건으로 발생하고, 내부 인터럽트는 실행 중인 프로그램 안에서 발생한다. 전원 이상 인터럽트는 정전이나 전원 이상이 발생했을 때 발생하는 외부 인터럽트이다. 전원 이상은 외부 인터럽트 정전은 프로그램이 만든 결과가 아니라는 점이 구분의 근거이다. 내부 인터럽트는 원인이 프로세서 안에 있다는 점에서 외부 인터럽트와 구별된다. 내부 인터럽트가 발생하면 컴퓨터는 더 이상 프로그램을 실행할 수 없다.
이어지는 내용
- 인터럽트 요청의 무시·지연과 우선순위
- 폴링과 인터럽트 방식의 비교
- 처리 루틴의 적재와 복귀
- 자주 헷갈리는 것
- 기출에서는
로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 절 읽기