인터럽트
- 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) 리턴
- 인터럽트 발생 이전 실행하던 프로그램을 다시 실행
'CS > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조] 저장장치 (0) | 2020.07.15 |
---|---|
[컴퓨터구조] 레지스터(Register) (0) | 2020.07.14 |
[컴퓨터구조] 시스템 버스(System bus) (1) | 2020.07.14 |
[컴퓨터구조] 명령어(Instruction) (0) | 2020.07.13 |
[컴퓨터구조] 컴퓨터의 구성 요소 (2) | 2020.07.13 |
댓글