Software Lab

3. Internal interrupt 본문

컴퓨터 구조/Interrupt

3. Internal interrupt

아임코더 2022. 9. 27. 11:22

exit 같은 system_call 함수가 호출할 때 발생하는 Internal 인터럽트 과정을 살펴보자.

① : Process A에서 system_call을 실행하기 위한 명령어들을 실행하게 된다. 어떤 종류의 system_call을 호출할 것인지는 eax 값으로 결정된다. 그림에서 왼쪽 아래 테이블은 eax 값에 해당하는 system call 종류를 나타낸다. sys_exit 실행하기 위해 eax에 0x01 값을 넣는다. 다음으로 int 0x80 명령어를 실행한다.

② : CPU는 발생한 인터럽트 번호와 IDTR(Interrupt Description Table Register) 값을 더한다. 더한 그 값은 OS의 ISR 함수 포인터가 저장된 메모리 주소이다.

③ : CPU는 이제 ISR의 함수 포인터를 가져와서 실행한다. 인터럽트 번호가 0x80이므로 system_call을 실행할 것이다. system_call 안에서는 eax 값에 해당하는 sys_exit를 실행할 것이다.

'컴퓨터 구조 > Interrupt' 카테고리의 다른 글

4. External interrupt  (0) 2022.09.27
2. Trap interrupt  (0) 2022.09.26
1. 인터럽트 종류  (0) 2022.09.26
Comments