반응형

Interrupt 란?

인터럽트란 어떤 장치가 다른 장치의 일을 잠시 중단시키고 자신의 상태 변화를 알려 주는 것이다. 인터럽트가 발생하면, 인터럽트를 받은 장치는 현재 자신의 상태를 기억시켜두고 인터럽트를 처리한다.

인터럽트를 받을 때 CPU가 어떻게 동작하는지 보자.

1. A 프로그램을 프로세서가 실행중인 상태에서 PC는 A 프로그램의 명령 부분을 가르키고 있다.

2. B 프로그램 실행을 위해 갑작스런 인터럽트를 발생시킨다.

3. CPU는 현재 자신이 가지고 있던 레지스터의 모든 상태를 스택 혹은 프로세스 제어 블록에 저장하고 인터럽트 백터를 이용하여 적절한 인터럽트 핸들러를 쓴다(부른다). (컨텍스트 스위칭이 일어나는 구간이다.)

4. B 프로그램의 PC를 가르키고 프로세서는 작업을 다시 시작한다.

5. B의 작업이 모두 끝나면 이전 저장해둔 스택에서 A의 상태를 프로세서에 복구한다. 6. 아까 일부터 다시 시작


참고자료 : http://www.jidum.com/jidums/view.do?jidumId=445





Dispatcher란?

사용자가 프로그램을 실행하면 프로세스가 생성되고 Ready상태가 된다.(Ready Queue) 그 후 스케줄러가 Ready Queue에 있는 프로세스 중 하나를 프로세서(CPU)가 사용가능한 상태가 될 때 CPU를 할당해준다.


이를 준비상태(Ready)에서 실행상태(Running)로 상태전이(State Transition)된다고 한다. 이 과정을 디스패칭(dispatching)이라고 하고 디스패처(dispatcher)가 이 일을 수행한다.







반응형