본문 바로가기
computer

프로세스 스케쥴링 - 인터럽트 내부동작

by 유순이 2021. 6. 18.

시스템 콜도 내부적으로 인러텁트

 

시스템 콜은 각각의 번호가 부여되어 있다.

 

eax, 시스템 콜 번호

ebx, 인자값

int 0x80 >> 시스템 콜에 해당하는 인터럽트 코드

 

이 이후에

CPU는 사용자 모드에서 커널 모드로 변경

IDT(Interrupt Descriptor Table) 에서 해당 코드(0x80)을 찾아서 실행한다. (system_call() 함수)

system_call() 함수 안에서 시스템 콜 번호 (eax), 해당 번호에 맞는 시스템 콜 번호로 이동

해당 함수 실행 후, 커널 모드에서 사용자 모드로 변경

 

인터럽트 IDT

부팅 시에 운영 체제가 기록한다,

 

0~31 : 예외상황 인터럽트 (정의 안된 채로 남아있기도 하다)

32~47 : 하드웨어 인터럽트 (주변 장치의 종류와 개수에 따라 변경 가능)

128 : 시스템 콜  (= 0x80) 

 

 

인터럽트와 프로세스

 

1. 프로세스 running, interrupt event occurs

2. 현 프로세스 실행 중단

3. 인터럽트 처리함수 실행 (운영 체제

4. 현 프로세스 재실행

 

 

 

댓글