티스토리 툴바

인터럽트는 한국말로 말하면 방해하다라는 의미이다.
말 그대로 무언가가 내 일을 방해하는 걸 말하는데 컴퓨터에서는 이렇게 정의한다.

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

그럼 각각의 인터럽트를 차근차근 살펴보자.

외부 인터럽트

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

1. 전원 이상 인터럽트(Power Fail Interrupt) : 정전이 되거나 전원 이상이 있는 경우
2. 기계 착오 인터럽트(Machine Check Interrupt) : CPU의 기능적인 오류 동작이 발생한 경우
3. 외부 신호 인터럽트(External Interrupt)
    - 타이머에 의해 규정된 시간을 알리는 경우
    - 키보드로 인터럽트키를 누른경우 ( Ctrl + Alt + Delete)
    - 외부 장치로부터 인터럽트 요청이 있는 경우

4. 입,출력 인터럽트(Input-Output Interrupt)
    - 입,출력 Data의 오류나 이상 현상이 발생한 경우
    - 입,출력장치가 데이터의 전송을 요구하거나 전송이 끝났음을 알릴 경우


내부 인터럽트

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

1. 프로그램 검사 인터럽트(Program Check Interrupt)
   - 0으로 나누기가 발생한 경우
   - Overflow 또는 Underflow가 발생한 경우
   - 프로그램에서 명령어를 잘못 사용한 경우
   - 부당한 기억장소의 참조와 같은 프로그램 상의 오류
   


소프트웨어 인터럽트

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

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


위의 3개의 인터럽트에 대한 설명이 끝났다.
이제 인터럽트가 발생했을 때 CPU가 확인해야 할 사항에 대해서 살펴보자.

1. 프로그램 카운터의 내용
2. 사용한 모든 레지스터의 내용
3. 상태 조건의 내용(PSW)

어디로 가야할 지, 무엇을 사용했는지, 무슨 상태여야 하는지 알아야 하기 때문에 위의 세가지를 확인하여야 한다.

 
그럼 이제 인터럽트의 동작 원리를 보자.

 
1. 어떤 명령을 실행하는 도중 인터럽트 요청 신호가 발생한다.
2. 프로그램 실행을 중단한다 : 현재 실행중이던 명령어는 끝까지 실행한다.
3. 현재의 프로그램 상태를 보존한다: 프로그램 상태는 다음에 실행할 명령의 번지를 말하는 것으로서 PC가 가지고 있다. PC가 가지고 있는 값을 메모리의 0번지에 보관한다.
4. 인터럽트 처리 루틴을 실행한다.   :인터럽트를 요청한 장치 식별
5. 인터럽트 서비스 루틴을 실행한다.   :취급 루틴이라고도 함, 실질적인 인터럽트 처리
6. 상태 복구 : 인터럽트 요청 신호가 발생했을 때 보관한 PC의 값을 다시 PC에 저장한다. 
7. 중단된 프로그램 실행 재개: PC의 값을 이용하여 인터럽트 발생 이전에 수행중이던 프로그램을 계속 실행한다. 
  1. SuperVisor Call [본문으로]

'컴퓨터 지식 > Data Processing' 카테고리의 다른 글

기억장치의 개요  (0) 2012/01/30
인터럽트 우선순위(Priority) 체제  (1) 2012/01/30
인터럽트의 개념  (1) 2012/01/30
입,출력 제어방식  (0) 2012/01/30
입,출력의 기본  (0) 2012/01/30
제어기의 구현  (0) 2012/01/30
by WG CEO 2012/01/30 15:46
| 1 ... 255 256 257 258 259 260 261 262 263 ... 379 |