본문 바로가기

운영체제/기본

운영체제 - Interrupt Mechanism

운영체제 - Interrupt Mechanism


Interrupt Mechanism

- 하드웨어에 의해 CPU의 control을 ISR(Interrupt Service Routine)으로 이동시키는 것.

- 운영체제가 존재하기 위해 컴퓨터 하드웨어가 제공해야 하는 가장 중요한 메커니즘이다.

- 운영체제는 Interrupt-driven이다.


+ 비동기(Asynchronous) 메커니즘이다.

+ Interrupt가 발생하면 해당 Interrupt Source에 대한 ISR을 수행한다.


Interrupt의 종류

1) H/W Interrupt

- I/O controller, DMA controller와 같은 하드웨어에 의해 발생한 인터럽트.

* Interrupt Source?

>  I/O controller, DMA controller


2) S/W Interrupt(=trap)

- run time error. ( divide by zero or Interrupt instruction )

- 코드 분석을 통해 S/W interrupt의 발생지점을 알 수 있다.


CPU가 H/W interrupt를 받아들이려면 Micro-processor에 interrupt를 받아들이는 pin이 있어야 한다.





Interrupt 처리 과정

1. 현재 CPU가 수행중인 Instruction을 모두 완료하고 Micro-processor의 프로그램 카운터(PC)값을 안전한 곳에 저장한다.

2. 현재 수행중인 프로그램을 중단한다.

3. 어떤 Interrupt source에서 발생한 interrupt인지 Interrupt Request Number(IRQ number)를 통해 Interrupt source(=interrupt device)를 확인한다.

4. Interrupt Vector Table을 검색해서 해당 IRQ number와 매칭되는 Interrupt Service Routine(ISR)의 주소를 확인하고 수행한다.

5. ISR수행을 완료한 뒤, 저장해두었던 PC로 복귀한다.



그러나, 1개의 Interrupt source대해 micro-processor의 pin을 제공하면 cpu의 확장성 문제가 생긴다.

(즉, 해당 micro-processor를 사용하게 될 컴퓨터 시스템이 몇개의 interrupt source를 사용하게 될 지 미리 예측할 수 없으므로 갯수를 조정할 수 없다)

따라서, PIC(Programmable Interrupt Controller)가 도입되었다.

1. PIC는 Interrupt source로 부터 Interrupt signal을 받는다.

2. 해당 Interrupt source에 해당하는 Interrupt Request Number를 특정 register에 쓴다.

3. CPU에 Interrupt가 발생되었음을 알린다.

4. CPU는 특정 레지스터에서 IRQ number값을 읽어간다.


++ Interrupt mask register

- 어떤 경우에는 특정 interrupt source를 disable해야 하는 경우가 있음. 이것을 위해 각 interrupt source의 enable/disable 상태를 표기하는 레지스터를 요구하는데 이것이 PIC 내부에 있는 interrupt mask register이다.

ex. 1110 0001 1111 1101과 같이 1:enable 0:disable 표현.