패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.
인터럽트 종류
내부 인터럽트
- 주로 프로그램 내부에서 잘못된 명령 또는 잘못된 데이터 사용시 발생
- 0으로 나눴을 때
- 사용자 모드에서 허용되지 않은 명령 또는 공간 접근시
- 계산 결과가 Overflow/Underflow 날 때
외부 인터럽트
- 주로 하드웨어에서 발생되는 이벤트 (프로그램 외부)
- 전원 이상
- 기계 문제
- 키보드 등 IO 관련 이벤트
- Timer 이벤트
내부 인터럽트는 주로 프로그램 내부에서 발생 => 소프트웨어 인터럽트
외부 인터럽트는 주로 하드웨어에서 발생 => 하드웨어 인터럽트
주요 인터럽트
- 계산하는 코드에서 0으로 나누는 코드 실행시 (Divide-by-Zero Interrupt)
- 타이머 인터럽트
- 입출력(IO) 인터럽트
계산하는 코드에서 0으로 나누는 코드 실행시 (Divide-by-Zero Interrupt)
#include <stdio.h>
int main() {
printf("Hello World!\n");
int data;
int divider = 0;
data = 1 / divider; // 이 부분에서 인터럽트 발생
return 0;
}
타이머 인터럽트
- 선점형 스케줄러를 위해 필요
입출력(IO) 인터럽트
- 프린터
- 키보드
- 마우스
- 저장매체(SSD등)
Comments