728x90
✔️ 인터럽트란 무엇인가?
Interrupt(인터럽트)란?
프로그램을 실행하는 도중에 예기치 않은 상황이 발생한 경우 현재 실행 중인 작업을 즉시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는 것 (프로세서 즉, 흔히 CPU에 의해)
✔️ 인터럽트의 종류
1️⃣ 하드웨어 인터럽트(hardware interrupt) = 외부 인터럽트 : CPU의 하드웨어(ex-키보드, 마우스 등)에 의해 발생
- 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생
ex) 전원 이상, 기계 착오, 외부 신호, 입출력 등
2️⃣ 소프트웨어 인터럽트(software interrupt) = 내부 인터럽트 : CPU에 의해 실행 되고 있는 프로그램에 의해 발생
- Trap 이라고 부르며, 잘못된 명령이나 데이터를 사용할 때 발생
- 예외 상황(Exception)
: 프로그램이 허용되지 않은 연산을 수행하려 할 때, 자동적으로 발생
‣ 0으로 나누는 경우
‣ OverFlow
+) 예외 상황은 사용자 프로세스로부터 CPU의 제어권이 OS에게 넘어가게 된다.
✔️ 인터럽트 발생 처리 과정
A 프로그램이 CPU를 할당받고 명령을 수행하고 있을 때 인터럽트가 발생하면, A는 현재 수행중인 명령의 위치를 저장해놓는다.
그 후, OS 내부 코드인 인터럽트 처리 루틴으로 넘어가서
1. 인터럽트가 발생하면, 수행 중이던 프로세스 A는 현재 상태(명령 위치 등)를 프로세스 제어 블록(PCB)에 저장합니다.
➕) CPU 권한은 프로세스 A 에서 OS로 넘어가게 된다.
2. 이후, 운영체제는 인터럽트 처리 루틴을 실행하여 인터럽트를 처리합니다.
- 인터럽트 처리가 끝나면, 프로세스 A의 PCB에 저장된 정보를 복원하여, A는 이전 작업 지점부터 실행을 계속합니다.
#참고 문헌
https://gyoogle.dev/blog/computer-science/operating-system/Interrupt.html
https://velog.io/@nnnyeong/OS-인터럽트-Interrupt
https://yaelimeee.tistory.com/48
728x90
'CS 지식 > 운영체제' 카테고리의 다른 글
[운영 체제] PCB & Context Switching (0) | 2024.08.21 |
---|---|
[운영 체제] System Call(시스템 콜)이란 무엇인가? (0) | 2024.08.20 |
[운영 체제] 프로세스의 주소 공간 (0) | 2024.08.20 |
[운영 체제] 프로세스 vs 스레드 (0) | 2024.08.19 |
[운영체제] 운영체제란 & 운영체제의 구조 (0) | 2024.08.19 |