View
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 란?, 인터럽트 종류
Melody:) 2021. 11. 26. 06:31인터럽트란?
- CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생하여 처리가 필요할 경우 CPU에 알려서 처리하는 기술어느 한순간 CPU가 실행하는 프로그램은 하나!
=> 즉, ready -> running -> waite(block) 상태에서 다시 ready로 가려면 어떤한 신호가 필요한데, 이를 interrupt라고 한다.
- 이벤트 발생 -> interrupt -> kernel모드 변경
인터럽트 필요 이유
=> 이벤트 정의부터 처리까지 담당하는 운영체제
- 선점형 스케쥴러 구현
- 프로세스 running 중에 스케쥴러가 이를 중단 시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스 실행을 중단시킴 - 그러려면, 스케쥴러 코드가 실행이 되어서, 현 프로세스 실행을 중지켜야 함.
- IO Device와의 커뮤니케이션
- 저장매체에서 데이터 처리 완료시, 프로세스를 깨워야 함.(block state -> ready state)
- 예외 상황 핸들링
- CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외 상호아이 발생할 경우, CPU가 해당 처리를 할 수 있도록 CPU에 알려줘야함.
인터럽트의 처리 예
- CPU는 Program counter(PC)가 처리하는 code한줄에 집중하고 있다.
- CPU가 프로그램을 실행하고 있을 때,
- 입출력 하드웨어 등의 장치 이슈 발생
- 파일 처리가 끝났다는 것을 운영체제에 알려주기
- 운영체제는 해당 프로세스를 block state에서 실행대기(ready) 상태로 프로세스 상태 변경하기
- 또는 예외 상황이 발생
- 0으로 나누는 계산이 발생해서, 예외 발생을 운영체제에 알려주기
- 운영체제가 해당 프로세스 실행 중지/에러 표시
- 입출력 하드웨어 등의 장치 이슈 발생
주요 인터럽트
1. 계산하는 코드에서 0으로 나누는 코드 실행 시
#include <stdio.h>
int main() {
printf("Hello World!\n");
int data;
int divider = 0;
data = 1 / divider; //=> 에러 발행
return 0;
}
data = 1 / divider; // return 0;
를 실행 중지 및 에러 화면을 보내주어야하는데, 이것을 운영체제에서 처리한다.
2. 타이머 인터럽트
- 컴퓨터 안에 타이머 인터럽트를 발생시키는 칩이 따로 존재하며, 이는 선점형 스케쥴러를 위해 필요하다.
3. 입출력(IO) 인터럽트
- 프린터, 키보드, 마우스, 저장매체(SSD 등)
🖐 인터럽트 종류
- 내부인터럽트 = 소프트웨어 인터럽트
- 주로 프로그램 내부에서 잘못된 명령 또는 잘못된 데이터 사용시 발생
- 0으로 나눴을 때
- 프로세스가 사용자 모드에서 허용되지 않은 명령 또는 공간 접근시(0~3GB : 사용자모드 , 3~4GB: 커널모드 사용 가능)
- 계산 결과가 Overflow/Underflow 날 때-> int는 보통 32bit를 지칭하는데, 2의 32승이 표현할 수 있는 범위를 넘어설 때를 의미.
- 주로 프로그램 내부에서 잘못된 명령 또는 잘못된 데이터 사용시 발생
- 외부 인터럽트 = 하드웨어 인터럽트
- 주로 하드웨어에서 발생되는 이벤트(프로그램 외부)
- 전원이상
- 기계문제
- 키보드 등 IO 관련 이벤트
- Timer 이벤트
- 주로 하드웨어에서 발생되는 이벤트(프로그램 외부)
'Computer Science > 운영체제(OS)' 카테고리의 다른 글
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 구조와 컴퓨터의 구조 (0) | 2021.11.26 |
---|---|
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 내부 동작 (0) | 2021.11.26 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-선점형과 비선점형 스케쥴러, 스케쥴링 알고리즘 조합 (0) | 2021.11.25 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 상태와 스케쥴러, 프로세스 상태기반 스케쥴링 알고리즘 기본 (0) | 2021.11.24 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-스케쥴링 알고리즘 기본 (0) | 2021.11.24 |
reply