본문 바로가기
CS/Computer Architecture

[컴퓨터구조] 인터럽트(Interrupt)

by 테리는당근을좋아해 2020. 7. 14.

인터럽트

- CPU의 정상적인 동작을 방해하는 것

- 인터럽트란 CPU가 프로세스 실행 중에 입출력 장치나 예외상황 등의 이벤트가 발생해 해당 작업을 먼저 수행하는 기능

 

1) 인터럽트(External Interrupt)

- 프로그램 외부 상황(CPU 외의 다른 장치)에 따라 발생 시점이 일정하지 않게 발생

- 하드웨어 인터럽트

- 비동기식 인터럽트

- I/O Interrupt, Timer Interrupt 등 

 

2) 트랩(Internal Interrupt)

- 프로그램 내에서 발생하는 인터럽트로 CPU로부터 발생하는 운영오류 등을 포함

- 소프트웨어 인터럽트

- 동기식 인터럽트

- Divide by zero, Overflow 등

 

인터럽트 처리 과정

1) 인터럽트 요청 신호 발생

- 프로그램 실행 도중 인터럽트가 발생한 장치는 CPU에 인터럽트 요청 신호(INTR) 전달

 

2) 인터럽트 단계

- CLI를 실행해 해당 인터럽트 처리를 완료할 때까지 다른 인터럽트 요청을 수락하지 않음

- CPU는 인터럽트가 발생한 장치에 인터럽트 요청에 대한 확인으로 인터럽트 응답 신호(INTA) 전달

- 인터럽트 벡터를 통해 해당 인터럽트 서비스 루틴을 찾음

- 현재 실행하고 있는 프로그램을 중단해 상태를 저장하고 인터럽트 서비스 루틴의 정보를 적재(Context Switching)

 

3) 인터럽트 서비스 루틴(ISR)/인터럽트 핸들러 실행

- 해당 인터럽트를 처리하기 위해 매핑되어 있는 루틴을 실행

- STI를 실행해 다른 인터럽트 요청을 수락할 수 있도록 설정

 

4) 리턴

- 인터럽트 발생 이전 실행하던 프로그램을 다시 실행

 

댓글