H/W] 인터럽트의 정의와 종류 및 처리과정

 인터럽트란 무엇인가? 

인터럽트는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할경우 현재 실행중인 작업을 즉시 중단하고 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는것을 말합니다. 일명 끼어들기라고도 합니다. 인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생합니다.

 

 여러가지 인터럽트의 종류와 발생원인 

외부 인터럽트

외부 인터럽트는 다음과 같이 입,출력장치, 타이밍 장치, 전원 등 외부적인 요인에 의해 발생합니다.

전원 이상 인터럽트 : 정전이되거나 전원 이상이 있는경우 발생합니다.

기계 착오 인터럽트 : CPU의 기능적인 오류 동작이 발생한 경우 발생합니다.

외부 신호 인터럽트 : 타이머에 의해 규정된 시간을 알리는경우, 키보드로 인터럽트 키를 누른 경우, 외부 장치로부터 인터럽트 요청이 있는경우 발생합니다.

입출력 인터럽트 : 입출력 Data의 오류나 이상 현상이 발생한 경우, 입출력장치가 데이터의 전송을 요구하거나 전송을 끝났음을 알릴경우 발생합니다.

 

내부 인터럽트

내부 인터럽트는 다음과 같이 잘못된 명령이나 데이터를 사용할 때 발생하며 트랩(Trap)이라고도 부릅니다.

프로그램 검사 인터럽트 : 0으로 나누기가 발생한 경우, OverFlow 또는  UnderFlow가 발생한경우, 프로그램에서 명령어를 잘못 사용한 경우, 부당한 기억장소의 참조와 같은 프로그램 상의 오류가 발생합니다.

 

소프트웨어 인터럽트

소프트웨어 인터럽트는 프로그램 처리 중 명령의 요청에 의해 발생한 것으로, 가장 대표적인 형태는 감시 프로그램을 호출하는 SVC인터럽트가 있습니다.

SVC인터럽트 : 사용자가 SVC명령을 써서 의도적으로 호출한 경우, 복잡한 입출력 처리를 해야하는 경우, 기억장치 할당 및 오퍼레이터와 대화를 해야하는경우 발생합니다.

 

 인터럽트 발생 시 처리과정 

인터럽트 처리과정

1. 프로그램 실행을 중단합니다.

2. 현재의 프로그램 상태를 보존합니다.

3. 인터럽트 처리 루틴을 실행합니다.

4. 인터럽트 서비스 루틴을 실행합니다.

5, 인터럽트 요청 신호가 발생했을 때 보관한 PC의 값을 다시 PC에 저장합니다.

6.  PC의 값을 이용하여 인터럽트 발생 이전에 수행중이던 프로그램을 계속 실행합니다.

댓글

Designed by JB FACTORY