본문 바로가기

CS/운영체제

운영체제와 컴퓨터 그리고 인터럽트

운영체제는 CPU 스케줄링과 프로세스 관리, 메모리관리, 디스크 파일 관리, I/O 디바이스 관리를
합니다.

 

인터럽트는 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것을 말하며 키보드, 마우스 등 IO
디바이스로 인한 인터럽트, 0으로 숫자를 나누는 산술 연산에서의 인터럽트,프로세스 오류 등으로
발생합니다. 인터럽트가 발생되면 인터럽트 핸들러 함수가 모여 있는 인터럽트 벡터로 가서
인터럽트핸들러 함수가 실행됩니다.

 

인터럽트와 트랩의 차이점

 

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

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

 

 

 


 

 

인터럽트의 종류

 

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

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

 

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

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

 

 

출처: https://rebas.kr/862

 

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

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

rebas.kr