728x90
1. 정의
CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능
CPU가 프로그램을 실행하고 있을 때, 입/출력 장치 혹은 다른 예외 상황이 발생하여 처리가 필요한 경우에 CPU에 알려서 처리하는 기술
2. 필요성
- 실시간 처리: 중요한 이벤트나 작업이 발생했을 때, CPU가 이를 즉시 처리하여 시스템의 반응성을 높임
- 효율적인 자원 사용: CPU가 유휴 상태로 대기하지 않고, 필요한 작업이 발생했을 때만 개입하여 시스템 자원을 효율적으로 사용함
- 다중 작업 처리: 여러 작업을 동시에 처리하기 위해 CPU가 중요한 작업을 우선 처리하고 나머지 작업을 관리할 수 있음
3. 처리 과정
1) 실행중인 프로그램을 중단
2) 현재 프로그램 상태를 보관 (컨텍스트 스위칭 = 문맥 교환)
3) 인터럽트 처리 루틴을 실행
4) 인터럽트 서비스 루틴을 실행
5) 인터럽트 요청 신호가 발생했을 때 보관한 PC의 값을 복원하여 이전 실행 위치로 복귀
6) 이어서 프로그램을 진행
4. 종류
- 외부 인터럽트
- 정의: 입출력 장치, 타이밍 장치, 전원 등의 외부적인 요인에 의해서 발생하는 인터럽트
= 하드웨어 인터럽트: 하드웨어 장치의 컨트롤러가 CPU의 서비스를 요청하기 위해 발생시키는 인터럽트 - 종류
- 전원 이상 인터럽트: 정전이나 전원이 이상이 있는 경우
- 기계 고장 인터럽트: CPU등의 기능적인 동작 오류가 발생한 경우
- 입출력 인터럽트(I/O Interrupt): 입출력의 종료 등의 이유로 CPU의 수행을 요청하는 인터럽트
- 내부 인터럽트
- 정의: CPU 내부에서 자동으로 발생하는 인터럽트. 예외(Exception)라고도 불림
- 용도: 프로그램 실행 중에 예기치 않은 상황이 발생했을 때 대응하기 위함
- 예
- 제로 나누기 연산: 프로그램이 0으로 나누기를 시도할 때 발생
- 잘못된 명령어: 프로그램이 유효하지 않은 명령어를 실행하려고 할 때 발생
- 페이지 폴트(Page Fault): 메모리에 접근할 때, 접근하려는 페이지가 메모리에 없는 경우 발생
- 소프트웨어 인터럽트
- 정의: 프로그램이 명령어를 통해 명시적으로 발생시키는 인터럽트
- 용도: 시스템 호출(시스템 콜, System Call)이나 특정 이벤트를 처리하기 위해 사용됨
- 예
- 시스템 콜: 운영 체제의 서비스(파일 열기, 읽기, 쓰기 등)를 요청할 때 사용됨
- 디버깅: 프로그램의 특정 지점에서 실행을 중단하고 디버거에 제어를 넘길 때 사용됨
출처
https://github.com/devSquad-study/2023-CS-Study/blob/main/OS/os_interrupt.md
'Computer Science > OS' 카테고리의 다른 글
[OS] PCB와 Context Switching (0) | 2024.06.18 |
---|---|
[OS] 시스템 콜 System Call (0) | 2024.06.16 |
[OS] CPU 스케줄링 알고리즘 (2) | 2024.06.16 |
[OS] 프로세스와 스레드 (0) | 2024.06.13 |
[OS] CPU와 메모리 구조 (0) | 2024.06.13 |