본문 바로가기
전공공부/전자계산기 구조

106. 인터럽트의 종류 및 발생 원인

by tiit 2020. 2. 13.
반응형

- 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것, 일명 "끼어들기"라고도 한다.

 

- 인터럽트 서비스 루틴을 실행할 때, 인터럽트 플래그(IF)를 0으로 하면 인터럽트 발생을 방지할 수 있다.

 

- 인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생한다. 

 

외부 인터럽트

- 전원 이상 인터럽트(Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우

 

- 기계 착오 인터럽트(Machine Check Interrupt) : CPU의 기능적인 오류 동작이 발생한 경우

 

- 외부 신호 인터럽트(External Interrupt) : 

1) 타이머에 의해 규정된 시간(Time Slice)을 알리는 경우

2) 키보드로 인터럽트 키를 누른 경우

3) 외부장치로부터 인터럽트 요청이 있는 경우

 

- 입,출력 인터럽트(Input - Output Interrput)

1) 입,출력 Data의 오류나 이상 현상이 발생한 경우

2) 입,출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우

 

내부 인터럽트

- 잘못된 명령이나 데이터를 사용할 때 발생하며, 트랩(Trap)이라고도 부름

 

-프로그램 검사 인터럽트(Program Check Interrupt) : 

1) 0으로 나누기(Divide by zero)가 발생한 경우

2) Overflow 또는 Underflow가 발생한 경우

3) 프로그램에서 명령어를 잘못 사용한 경우

4) 부당한 기억장소의 참조와 같은 프로그램의 오류

 

소프트웨어 인터럽트

- 프로그램 처리 중 명령(Instruction)의 요청에 의해 발생하는 것으로, 가장 대표적인 형태는 감시 프로그램을 호출하는 SVC(SuperVisor Call) 인터럽트가 있음

 

- SVC(SuperVisor Call) 인터럽트 : 

1) 사용자가 SVC 명령을 써서 의도적으로 호출한 경우

2) 복잡한 입,출력 처리를 해야 하는 경우 

 

인터럽트 우선순위

정전 > 기계 이상 > 외부 신호 > 프로그램

반응형

댓글