예지의 개발 로그포스 (Yeji's Log Force)

[OS] Interrupt 본문

CS/OS

[OS] Interrupt

Yeji Heo 2023. 2. 26. 15:03

프로세서 활용도 개선을 위해 제공된다.

대부분의 I/O장치가 프로세서보다 느리다. 이 때 프로세서가 대기해야 하므로 일시 중지 하면 프로세서를 낭비하는 것이다. 그래서 인터럽트한다.

사용자 코드에는 인터럽트 코드가 없다. cpu와 os가 인터럽트를 처리한다.

인터럽트 발생 시 pc값을 인터럽트 핸들러 프로그램의 시작 주소로 설정, 커널모드로 전환

인터럽트 있는지 체크 -> 프로세스 상태를 stack에 저장 -> 인터럽트 핸들러로 인터럽트 실행 -> stack을 참고해 원래 pc값으로 돌아오기

- 인터럽트를 이용해 I/O에 의해 발생하는 wait 시간을 효율적으로 사용할 수 있게 되었다.

- 매 명령어의 수행을 마치고 나면 대기중인 인터럽트가 있는지 확인 한 후 처리한다.

- 인터럽트는 시스템, 운영체제, 사용자 등 다양한 원인에 의해 발생할 수 있다.

 

Comments