반응형

컴퓨터에서의 인터럽트 (Interrupt)

인터럽트란 영어 그대로의 의미로는

'방해하다, 중단시키다' 이다.

 

컴퓨터에서 인터럽트란

CPU의 작업을 방해하는 신호를 의미한다.

 

컴퓨터의 핵심 부품 중 하나인

CPU의 작업을 방해할 만한 경우에는

어떠한 상황들이 있는지 알아보자.

 

동기 인터럽트 (예외)

인터럽트의 종류 중 하나인

동기 인터럽트예외라고도 불리며

CPU에 의해 발생하는 인터럽트이다.

 

동기 인터럽트에는 다음과 같이 존재한다.

동기 인터럽트 (예외) 종류 설명
폴트 (Fault) 예외 발생 명령어부터 실행을 재개하는 예외
트랩 (Trap) 예외 발생 명령어의 다음부터 실행을 재개하는 예외
중단 (Abort) CPU가 실행 중인 프로그램 강제 종료
소프트웨어 인터럽트 (SW Interrupt) 시스템 호출 시 발생 ###추후 추가 필요###

 

비동기 인터럽트 (하드웨어 인터럽트)

인터럽트의 종류 중 또다른 하나인

비동기 인터럽트는 이 책에서

하드웨어 인터럽트로 설명하기도 하며

주로 입출력장치에 의해 발생하는 인터럽트이다.

 

비동기 인터럽트는 알림과 같이

특정 명령을 처리했을 때 요청할 수 있다.

 

이러한 방식의 장점은

CPU가 특정 명령에 대한

완료 여부를 주기적으로 확인할 필요 없이

비동기 인터럽트가 발생했을 때만

해당 상황에 대한 처리를 할 수 있기 때문에

효율적이다.

 

비동기 인터럽트의 처리 순서 및

그에 대한 설명은 다음 표와 같다.

 

순서 비동기 인터럽트 처리 내용 설명
1 인터럽트 요청 신호 전송 비동기 인터럽트를 진행하기 위해서 입출력장치가 CPU에 인터럽트 요청 신호를 보냄
2 인터럽트 여부 확인 CPU는 항상 인출 사이클 전에 인터럽트 여부블 확인하는데, 이때 인터럽트 요청을 확인함
3 인터럽트 플래그 확인 인터럽트 요청 확인 후 인터럽트 플래그를 통해 인터럽트를 받아들일 수 있는지 확인함
4 백업 인터럽트를 받아들일 수 있다면 CPU는 현재까지의 작업을 백업함
5 인터럽트 서비스 루틴 실행 CPU는 인터럽트 벡터를 참조해 인터럽트 서비스 루틴을 실행함
6 백업해둔 작업 복구해 원래 작업 실행 인터럽트 서비스 루틴 종료 후 원해 하던 작업을 재개함

 

'백업'에 관한 내용을 살펴보면

현재까지의 작업을 백업한다고 했는데

이때, 모든 내용은 스택에 백업된다.

 

추가로 어려울 만한 용어들에 대한

설명은 다음 표에 작성했다.

 

키워드 설명
인터럽트 요청 신호 CPU에게 인터럽트 하고 싶다고 요청하는 신호
인터럽트 플래그 인터럽트 요청 신호를 받아들일지 여부를 결정하는 비트
인터럽트 벡터 인터럽트 서비스 루틴의 식별 정보, 인터럽트 서비스 루틴의 시작 주소 포함
인터럽트 서비스 루틴 (인터럽트 핸들러) 인터럽트를 처리하는 프로그램

 

추가로 비동기 인터럽트는

막을 수 있는 인터럽트와 없는 인터럽트로

나뉘는데, 막을 수 없는 인터럽트

우선순위가 가장 높은 처리 작업인 것이다.

이에 대한 예로는 정전, 고장 등이 있다.

반응형

+ Recent posts