개발스토리

인터럽트 처리 과정 본문

Computer Science/운영체제

인터럽트 처리 과정

무루뭉 2020. 6. 30. 15:27

* 인터럽트 처리는 먼저 하드웨어적인 처리가 수행되고, 다음으로 소프트웨어적 처리가 수행된다.

 

- 아래 처리 과정이 이해가 가지 않는다면 이전 포스팅들을 다시 보고 돌아오자.


* 하드웨어적 처리

 

- 인터럽트가 일어나고 cpu가 하던 일을 멈추면 자동으로 수행된다.

- 상태 레지스터 값을 저장.

- 프로세서 모드를 커널 모드로 변경하여 os를 수행.(모드 비트를 변경)

- pc 레지스터 값을 저장

- 발생된 인터럽트의 벡터 값(ISR 주소)을 PC레지스터에 저장 (OS내의 인터럽트 서비스 루틴을 수행하게 된다)


* 소프트웨어적 처리(OS가 수행함)

 

- CPU 레지스터들의 값을 저장(메모리에 저장)

- 인터럽트 처리 코드를 수행

- CPU 레지스터 값을 복원( 저장된 값들을 CPU 레지스터에 load )

- 상태 레지스터 값을 복원(프로세서 모드가 이전 모드로 변경된다)

- PC 레지스터 값을 복원(인터럽트가 발생하여 중단된 곳으로 돌아가게 된다, CPU가 하던 일로 돌아간다)

'Computer Science > 운영체제' 카테고리의 다른 글

인터럽트 벡터  (0) 2020.06.30
인터럽트(interrupt)  (0) 2020.06.30
캐싱(Caching)  (0) 2020.06.30
저장장치  (0) 2020.06.30
메모리  (0) 2020.06.30
Comments