1. 인터럽트
CPU의 작업을 방해하는 신호를 의미한다. 동기 인터럽트(예외), 비동기 인터럽트(하드웨어 인터럽트)로 구분할 수 있다.
동기 인터럽트는 CPU에 발생하는 인터럽트로, 프로그래밍 오류와 같은 예외상황을 마주쳤을 때 발생한다.
비동기 인터럽트는 입출력장치에 의해 발생하는 인터럽트로, 알림의 역할을 한다.
일반적으로 비동기 인터럽트를 인터럽트라고 지칭하지만, 하드웨어 인터럽트라고도 한다.
1-1. 하드웨어 인터럽트
효율적으로 명령어를 처리하기위해 사용된다.
예를 들어 하드웨어 인터럽트를 사용하지 않는다면, CPU는 프린터의 작업이 언제 끝나는지 모르기때문에 주기적으로 프린터의 작업완료여부를 확인해야한다. 이처럼 처리할 데이터가 있는지 주기적으로 확인하는 것을 "폴링"이라고 지칭하고, CPU 사이클 낭비를 발생시킬 수 있기때문에 "하드웨어 인터럽트"를 활용한다.
CPU의 하드웨어 인터럽트 처리 순서
1. 입출력장치는 CPU에게 인터럽트 요청 신호를 보낸다.
2. CPU는 실행사이클이 끝나고 명령어를 인출하기전, 인터럽트 여부를 확인한다.
3. CPU는 인터럽트 요청을 확인하고, 인터럽트 플래그를 통해 현재 인터럽트가 가능한지를 파악한다.
4. 인터럽트가 가능하다면 CPU가 지금까지의 작업을 메모리 내 스택에 백업한다.
5. CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴을 실행한다.
6. 인터럽트 서비스 루틴이 끝나면 백업한 작업을 복구하여 실행을 재개한다.
인터럽트 관련 용어 설명
ⓐ 인터럽트 요청 신호
: CPU의 인터럽트 가능 여부를 확인하기위한 신호
ⓑ 인터럽트 플래그
: 플래그 레지스터의 값 중 하나로, CPU가 현재 인터럽트를 받아들일 수 있는지에 대한 여부를 의미한다. 1일 경우 가능, 0일 경우 불가능을 뜻한다.
ⓒ 막을 수 있는 인터럽트 (Maskable Interrupt)
: 인터럽트 플래그 값이 0인 경우, 인터럽트 요청이 무시되는 인터럽트를 의미한다.
ⓓ 막을 수 없는 인터럽트 (Non-Maskable Interrupt)
: 인터럽트 플래그 값이 0임에도 가장 우선순위를 높게 하여 처리해야하는 인터럽트를 의미한다. 정전이나 하드웨어 고장으로 인한 인터럽트가 해당한다.
ⓔ 인터럽트 서비스 루틴 (인터럽트 핸들러)
: 어떤 인터럽트가 발생했을 때 해당 인터럽트를 어떻게 처리하는지에 대한 정보로 이루어진 프로그램이다. 입출력장치마다 각기 다른 인터럽트 서비스 루틴을 가지고 있고, 이는 메모리에 저장되어있다.
ⓕ 인터럽트 벡터
: 인터럽트 서비스 루틴의 시작주소를 포함하고 있는 정보이다. 인터럽트 서비스 루틴을 실행하려면 시작 주소를 찾기위해 인터럽트 벡터를 확인해야한다.
1-2. 예외
예외의 종류에는 폴트, 트랩, 중단, 소프트웨어 인터럽트가 있다.
CPU는 예외가 발생하면 하던 일을 중단하고 예외를 처리하며, 예외를 처리하고 나면 실행을 재개한다. 실행을 재개할 때 예외가 발생한 명령어 or 예외가 발생한 명령의 다음 명령어 중 어떤 것 부터 실행하느냐에 따라 "폴트"와 "트랩"이 나뉜다.
폴트
: 예외가 발생한 명령어부터 실행을 재개하는 예외이다. 실행에 필요한 데이터가 현재 메모리에 부재할 때 CPU는 폴트를 발생시키고 보조기억장치로부터 메모리로 데이터를 가져와 폴트가 발생한 명령어부터 실행해 나간다.
트랩
: 예외가 발생한 명령어의 다음 명령어부터 실행을 재개하는 예외이다. 디버깅의 브레이킹 포인트가 대표적인 예시이다.
중단
: CPU가 실행중인 프로그램을 강제로 중단할 수밖에 없는 오류를 발견했을 때 발생하는 예외이다.
소프트웨어 인터럽트
: 시스템 콜이 발생했을 때 발생하는 예외이다.
본 내용은 "이것이 취업을 위한 컴퓨터 과학이다 with CS 기술면접"을 토대로 작성된 내용입니다.
'컴퓨터 과학 > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] RAM의 종류에 대해서 (0) | 2025.01.08 |
---|---|
[컴퓨터구조] CPU의 성능을 높이는 방법 (1) | 2025.01.07 |
[컴퓨터구조] 레지스터의 정의와 종류 (0) | 2025.01.07 |
[컴퓨터구조] 다양한 인코딩 방식 (0) | 2025.01.06 |
[컴퓨터구조] 부동소수점에 대해서 (0) | 2025.01.06 |