프로그래밍/운영체제

운영체제 · 인터럽트, 트랩

반응형

인터럽트와 트랩의 차이점


인터럽트 : 하드웨어적 흐름의 변화 / 프로그램 외부(I/O 장치, 디스크 등)에서 발생하며, 발생 시점이 일정하지 않기 때문에 비동기적이다.

트랩 : 소프트웨어적 흐름의 변화 / 소프트웨어 인터럽트라고도 하며, 프로그램 내부에서 일어나는 에러이다. 발생 시점이 프로그램의 일정한 지점이기 때문에 동기적이다. 즉, 고정된 영역에서 일어난다.






인터럽트의 종류


하드웨어 인터럽트 (Hardware Interrupt) 

  • 인터럽트는 외부 인터럽트와 내부 인터럽트로 구분하는데, 외부 인터럽트를 하드웨어 인터럽트라 한다. 그냥 인터럽트라 하면, 일반적으로 하드웨어 인터럽트를 의미한다. 내부 인터럽트는 소프트웨어 인터럽트와 같은 개념이라고 보면 된다.
  • 외부 인터럽트는 프로그램 외부에서 일어나는 인터럽트이다.
  • 기계 검사 인터럽트, 입출력 인터럽트, 전원 이상 인터럽트 등이 있다.


소프트웨어 인터럽트 (SWI, Software Interrupt)

  • 트랩(Trap)이라고도 하며, 프로그램 내부에서 일어나는 인터럽트이다. 예외와 시스템 콜이 있다.
  • 예외 (Exception) : 메모리 참조 오류, 0으로 나누기, Overflow, Underflow 등의 경우에서 발생하는 인터럽트
  • 시스템 콜 (System Call) : 사용자가 의도적으로 일으킨 인터럽트




반응형