인터럽트란
사전적 의미로는 ‘끼어들다’, ‘중단시키다’ 정도의 의미를 가진 말로 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것을 말한다.
인터럽트의 종류
- 외부 인터럽트
- 내부 인터럽트
- 소프트웨어 인터럽트
외부 인터럽트
- 전원 이상 인터럽트(Power fail interrupt) : 말 그대로 정전, 파워 이상 등
- 기계 착오 인터럽트(Machine check interrupt) : CPU의 기능적인 오류
- 외부 신호 인터럽트(External interrupt)
- 타이머에 의한 인터럽트 : Preemptive개념을 생각하면 된다. 자원이 할당된 시간이 다 끝난 경우
- 키보드로 인터럽트 키를 누른 경우 : 대표적으로 Control + Alt + Delete
- 외부장치로부터 인터럽트 요청이 있는 경우 : I/O 인터럽트 아님! 다른 개념.
- 입출력 인터럽트(I/O interrupt)
- 입출력 장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우
- 입출력 데이터에 이상이 있는 경우

내부 인터럽트
- 잘못된 명령이나 잘못된 데이터를 사용할 때 발생하며 Trap이라 부른다.
- 프로그램 검사 인터럽트(Program check interrupt)
- Division by zero 0으로 나눈다.
- Overflow/underflow
- 기타 Exception

- 소프트웨어적인 내용이나 분류상 인터럽트가 아니다!
인터럽트 동작 순서
- 인터럽트 요청
- 프로그램 실행 중단 : 현재 실행중이던 Micro operation 까지 수행한다.
- 현재의 프로그램 상태 보존(백업) : PCB(Process Control Block), PC(Program Counter) 등
- 인터럽트 처리 루틴 실행 : 인터럽트를 요청한 장치를 식별한다.
- 인터럽트 서비스 루틴 실행 : 인터럽트 원인을 파악하고 실질적인 작업을 수행한다. 처리기 레지스터 상태를 보존한다. 서비스 루틴 수행 중 우선순위가 더 높은 인터럽트가 발생하면 또 재귀적으로 1~5를 수행한다.
- 상태복구 : 인터럽트 발생 시 저장해둔 PC(Program Counter)를 다시 복구한다.
- 중단된 프로그램 실행 재개 : PC의 값을 이용하여 이전에 수행중이던 프로그램을 재개한다.
인터럽트 우선순위
- 여러 장치에서 인터럽트가 동시에 발생하거나 인터럽트 서비스 루틴 수행 중 인터럽트가 발생했을 경우 우선순위를 따져서 처리한다.
- 전원 이상(Power fail) → 기계 착오(Machine check) → 외부 신호(External) → 입출력(I/O) → 명령어 잘못 → 프로그램 검사(Program check) → SVC(SuperVisor Call)
- 일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트 보다 우선순위가 높고 내부 인터럽트 보다 외부 인터럽트가 우선순위가 높다.
- 하드웨어 > 소프트웨어 > 외부 > 내부
CPU ←→ Ram 통신에 대한 하드웨어 설명

- cpu와 ram이 통신을 하는데 메인보드에 있는 메모리 매니저 칩이 중요하다

- 메인 보드에 브릿지 칩셋이 있는데 cpu와 ram이 통신을 하는데 이 칩셋 성능이 중요했다.
- 그러나 지금은 cpu가 직접 ram과 통신을 한다.

- 현재 cpu가 직접 ram과 그래픽카드랑 통신을 한다.
- 보드의 칩셋은 나머지 슬롯, hdd, sdd 와 통신을 한다.

- I/O를 할 때 인터럽트가 발생되고 인터럽트가 많아지면 성능이 저하된다.
- 예전 고성능 처리를 할 때 인터럽트를 하이패스 할 수 있는 DirectX가 만들어 졌다.
Share article