반응형
1. 긴급 작업 우선 실행을 위한, 인터럽트의 개념
- 현재 실행 중인 작업을 일시 중단하고 긴급한 작업을 우선 처리하기 위해 CPU의 흐름을 전환하는 기능
2. 인터럽트의 종류와 우선순위 판별 방법
가. 인터럽트의 종류
구분 | 종류 | 설명 |
하드웨어 인터럽트 | 외부 인터럽트 | - 외부 입출력장치 등에서 발생 - 키보드 입력, 네트워크 수신 |
내부 인터럽트 | - CPU 내부에서 발생 - 산술 오버플로우, 잘못된 명령어 |
|
소프트웨어 인터럽트 | 시스템 콜 | - 사용자 프로그램이 커널 서비스 요청 - 파일 읽기, 쓰기 요청 |
트랩 | - 프로그램에 의도적으로 삽입된 인터럽트 - 예외 처리, 디버깅 목적 |
|
예외 인터럽트 | 고의/비정상 처리 | - 프로그램 오류 또는 특수 조건 - 페이지 오류, 보호 오류 |
- 인터럽트의 발생 원인(HW/SW) 또는 위치(외부/내부) 기준으로 구분
나. 인터럽트 우선순위 판별 방법
우선순위 | 인터럽트 종류 | 설명 |
1 가장 높음 | Non-Markable Interrupt (NMI) | - 마스킹 불가능한 시스템 치명적 오류 - 전원 이상, 메모리 오류 |
2 | Reset 인터럽트 | - 시스템 리셋 요청 시 발생 인터럽트 - NMI와 동일하거나 바로 다음 순위 |
3 | 높은 우선순위 하드웨어 인터럽트 | - 타이머, 디스크 컨트롤러 등 중요 장치에 의한 인터럽트 |
4 | 일반 하드웨어 인터럽트 | - 키보드, 마우스 등 일반적 입출력 장치에 의한 인터럽트 |
5 | 소프트웨어 인터럽트 | - 사용자 프로그램의 거널 기능 요청 - 파일 읽기, 파일 쓰기 - 예외 처리, 소프트웨어 디버깅 |
6 가장 낮음 | 내부 예외처리 | - 0으로 나누기, 오버플로우 등 프로그램 내 오류 처리에 의한 인터럽 |
3. 인터럽트 처리과정
구분 | 과정 | 설명 |
인터럽트 감지 및 수신 | 인터럽트 발생 | 여러가지 요인에 의한 인터럽트 발생 후 CPU는 인터럽트 신호(IRQ) 감지 |
인터럽트 우선순위 판단 | 마스킹 여부와 우선순위 판단하여 처리 여부 결정, 처리 승인 시 현재 작업 중단 | |
인터럽트 처리 준비 | 현재 작업 상태 저장 | 프로그램 카운터(PC), 레지스터 등 상태를 스택에 저장 |
인터럽트 벡터 참조 및 ISR 호출 | 벡터 테이블에서 해당 ISR 주소 찾아 인터럽트 서비스 루틴 호출 | |
인터럽트 서비스 및 복귀 | 인터럽트 서비스 루틴(ISR) 실행 | 인터럽트에 대한 작업 수행 |
인터럽트 종료 및 상태 복원 | EOI(End of Interrupt) 전송, 저장된 이전 작업 상태 복구 | |
원래 작업 복귀 | 중단되었던 프로그램 실행 재시작 |
반응형