인터럽트 종류

패스트캠퍼스 올인원 패키지 - 컴퓨터 공학을 보고 정리하는 용도의 포스팅입니다.


인터럽트 종류

내부 인터럽트

  • 주로 프로그램 내부에서 잘못된 명령 또는 잘못된 데이터 사용시 발생
    • 0으로 나눴을 때
    • 사용자 모드에서 허용되지 않은 명령 또는 공간 접근시
    • 계산 결과가 Overflow/Underflow 날 때

외부 인터럽트

  • 주로 하드웨어에서 발생되는 이벤트 (프로그램 외부)
    • 전원 이상
    • 기계 문제
    • 키보드 등 IO 관련 이벤트
    • Timer 이벤트

내부 인터럽트는 주로 프로그램 내부에서 발생 => 소프트웨어 인터럽트

외부 인터럽트는 주로 하드웨어에서 발생 => 하드웨어 인터럽트


주요 인터럽트

  1. 계산하는 코드에서 0으로 나누는 코드 실행시 (Divide-by-Zero Interrupt)
  2. 타이머 인터럽트
  3. 입출력(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;
}

타이머 인터럽트

  • 선점형 스케줄러를 위해 필요

interrupt1


입출력(IO) 인터럽트

  • 프린터
  • 키보드
  • 마우스
  • 저장매체(SSD등)

Reference

패스트캠퍼스 - 올인원 패키지: 컴퓨터 공학 21강

Comments