Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- physical address
- Sector
- 가독성
- register
- ack
- page
- network
- 공인 IP
- addressing mode
- osi 7
- refactoring
- Clean code
- 클린 코드
- CPU
- Code complete
- float
- 리펙토링
- L2 switch
- MMU
- Public IP
- cache
- TCP
- interrupt
- 사설 IP
- L3 Router
- private ip
- 코드 컴플릿
- 명령어
- ALU
- floating point
Archives
- Today
- Total
Software Lab
3. Internal interrupt 본문
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