반응형
컴퓨터에서의 인터럽트 (Interrupt)
인터럽트란 영어 그대로의 의미로는
'방해하다, 중단시키다' 이다.
컴퓨터에서 인터럽트란
CPU의 작업을 방해하는 신호를 의미한다.
컴퓨터의 핵심 부품 중 하나인
CPU의 작업을 방해할 만한 경우에는
어떠한 상황들이 있는지 알아보자.
동기 인터럽트 (예외)
인터럽트의 종류 중 하나인
동기 인터럽트는 예외라고도 불리며
CPU에 의해 발생하는 인터럽트이다.
동기 인터럽트에는 다음과 같이 존재한다.
동기 인터럽트 (예외) 종류 | 설명 |
폴트 (Fault) | 예외 발생 명령어부터 실행을 재개하는 예외 |
트랩 (Trap) | 예외 발생 명령어의 다음부터 실행을 재개하는 예외 |
중단 (Abort) | CPU가 실행 중인 프로그램 강제 종료 |
소프트웨어 인터럽트 (SW Interrupt) | 시스템 호출 시 발생 ###추후 추가 필요### |
비동기 인터럽트 (하드웨어 인터럽트)
인터럽트의 종류 중 또다른 하나인
비동기 인터럽트는 이 책에서
하드웨어 인터럽트로 설명하기도 하며
주로 입출력장치에 의해 발생하는 인터럽트이다.
비동기 인터럽트는 알림과 같이
특정 명령을 처리했을 때 요청할 수 있다.
이러한 방식의 장점은
CPU가 특정 명령에 대한
완료 여부를 주기적으로 확인할 필요 없이
비동기 인터럽트가 발생했을 때만
해당 상황에 대한 처리를 할 수 있기 때문에
효율적이다.
비동기 인터럽트의 처리 순서 및
그에 대한 설명은 다음 표와 같다.
순서 | 비동기 인터럽트 처리 내용 | 설명 |
1 | 인터럽트 요청 신호 전송 | 비동기 인터럽트를 진행하기 위해서 입출력장치가 CPU에 인터럽트 요청 신호를 보냄 |
2 | 인터럽트 여부 확인 | CPU는 항상 인출 사이클 전에 인터럽트 여부블 확인하는데, 이때 인터럽트 요청을 확인함 |
3 | 인터럽트 플래그 확인 | 인터럽트 요청 확인 후 인터럽트 플래그를 통해 인터럽트를 받아들일 수 있는지 확인함 |
4 | 백업 | 인터럽트를 받아들일 수 있다면 CPU는 현재까지의 작업을 백업함 |
5 | 인터럽트 서비스 루틴 실행 | CPU는 인터럽트 벡터를 참조해 인터럽트 서비스 루틴을 실행함 |
6 | 백업해둔 작업 복구해 원래 작업 실행 | 인터럽트 서비스 루틴 종료 후 원해 하던 작업을 재개함 |
'백업'에 관한 내용을 살펴보면
현재까지의 작업을 백업한다고 했는데
이때, 모든 내용은 스택에 백업된다.
추가로 어려울 만한 용어들에 대한
설명은 다음 표에 작성했다.
키워드 | 설명 |
인터럽트 요청 신호 | CPU에게 인터럽트 하고 싶다고 요청하는 신호 |
인터럽트 플래그 | 인터럽트 요청 신호를 받아들일지 여부를 결정하는 비트 |
인터럽트 벡터 | 인터럽트 서비스 루틴의 식별 정보, 인터럽트 서비스 루틴의 시작 주소 포함 |
인터럽트 서비스 루틴 (인터럽트 핸들러) | 인터럽트를 처리하는 프로그램 |
추가로 비동기 인터럽트는
막을 수 있는 인터럽트와 없는 인터럽트로
나뉘는데, 막을 수 없는 인터럽트는
우선순위가 가장 높은 처리 작업인 것이다.
이에 대한 예로는 정전, 고장 등이 있다.
반응형
'개인 학습 > 컴퓨터 구조' 카테고리의 다른 글
16 - CPU 성능을 향상하는 방법 - 2 (0) | 2023.01.28 |
---|---|
15 - CPU 성능을 향상시키는 방법 - 1 (0) | 2023.01.28 |
13 - 컴퓨터에서의 명령어 사이클 (0) | 2023.01.25 |
12 - 알아두어야 할 레지스터들 (0) | 2023.01.25 |
11 - 컴퓨터에서 제어장치의 입출력값 (0) | 2023.01.25 |