Slow is better than NOTHING

Computer Science/1. OS

Interrupt

Jeff_Kang 2019. 5. 9. 20:32
반응형

1. 인터럽트(Interrupt) 

 

마이크로 프로세서에서 인터럽트 마이크로프로세서(CPU)가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다. 

즉, 시스템에 예기치 않은 상황이 발생하였을 때 그것을 OS에 알리기 위한 일종의 메커니즘이다. IBM 계열의 기계에는 여섯 가지 종류의 인터럽트가 있다.

 

 

2. 인터럽트 종류

 

1) H/W Interrupt 

 

 - 입출력 인터럽트 (I/O Interrupt) : 해당 입출력 하드웨어가 주어진 입출력 동작을 완료하였거나 입출력의 오류등이 발생 하였을 때 CPU에게 요청하는 인터럽트

 

 - 외부 인터럽트(External Interrupt) : System Timer에서 일정한 시간이 만료된 경우(Time slice)나 Operator 가 Console상의 Interrupt 키를 입력한 경우, 또는 Multi processing 시스템에서 다른 Processor로부터 신호가 온 경우 발생한다.

 

 - 프로그램 에러 인터럽트 (Program Error Interrupt) : 주로 프로그램의 실행 오류로 인해 발생한다. 예를 들면 프로그램에서 Zero-Divide 연산 이라던지, Kernel 과 같은 Protection Area에 접근, 허용되지 않는 명령어의 수행, Overflow등과 같은 오류가 발생할 때 일어난다.

 

 - 기계 검사 인터럽트 (Machine check Interrupt) : 컴퓨터 자체 내의 기계적인 장애나 오류로 인한 인터럽트이다.

 

 - 재시작 인터럽트(Restart Interrupt) : Operator 가 Console 의 Restart 키를 누를때 일어난다.

 

2) S/W Interrupt

 

- SVC 인터럽트 (SuperVisor Call Interrupt) :사용자 프로그램이 수행되는 과정에서 I/O 수행, 기억장치의 할당, 또는 Operator의 개입 요구 등을 위하여 실행 중의 프로그램이 SVC명령을 수행하는 경우에 발생한다. (주로 입출력시)

 

 

 

 

 

3. 인터럽트 구조 및 처리

 

 인터럽트는 CPU가 명령어를 수행하는 동안 병행적으로 발생하는 상황에 대처하기 위하여 필요한 제어 이동을 발생시키는 것을 의미한다. 일반적으로, CPU는 인터럽트 콜을 받으면 PC(Program Counter)의 내용과 프로그램 수행 상태에 관한 모든 정보를 저장한 후에 문제 해결 과정이 기술된 Interrupt handler 의 시작 주소를 PC로 옮긴다. 그 후 인터럽트 Routine을 수행하여 해당 상황을 처리하면, 인터럽트가 발생하기 이전에 처리하던 프로그램의 수행과정을 지속한다.

다음 내용을 간단히 도식화 하면 아래와 같다.

 

Interrupt Routine

 

인터럽트의 발생 시 OS가 인터럽트 된 실행 중인 프로그램의 상태를 PSW(Program State Word)에 저장시켜 두고 제어권을 인터럽트 처리 루틴에게 넘기는 작업을 문맥 교환(Context Switching)이라고 한다.

반응형

'Computer Science > 1. OS' 카테고리의 다른 글

Context Switching  (0) 2019.05.16
Thrashing  (0) 2019.05.16
Thread  (0) 2019.05.12
Process  (0) 2019.05.09