인터럽트란 무엇일까?

박승우·2024년 5월 14일
0

자 스물 아홉번째 키워드 '인터럽트'를 알아보겠다.

이전 키워드와 같이 나오는 개념이기도 하고 중요한 개념이기에 이론으로 알아보았다.

인터럽트가 뭐에요?

인터럽트(Interupt)는 끼어듦 또는 가로막기라는 뜻을 가지고 있는데, CPU가 프로그램을 실행하고
있을때, 입출력하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에
마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다.

대부분의 컴퓨터는 한 개의 CPU를 사용하므로 한 순간에 하나의 일 밖에 처리할 수 없기 때문에
어떤 일을 처리하는 도중에 우선순위가 급한 일을 처리할 필요가 있을때 대처할 수 있는 방안이
필요하여 나온 방법이다.

인터럽트의 과정

인터럽트가 발생을 했을때 처리되는 과정은 다음과 같다.

  1. 기존의 작업을 처리하던 도중, 인터럽트가 발생

  2. 현재 컴퓨터가 처리하는 일을 중지하고 현재의 컴퓨터의 상태(CPU 내부의 레지스터, 메인 메모리 내용 등을)를 저장

  3. 해당하는 인터럽트를 처리해주기 위한 인터럽트 서비스 루틴을 처리

  4. 인터럽트 처리 이후 저장되었던 이전 작업의 상태를 복구하고 이전 작업 수행을 재개

인터럽트의 종류와 발생조건

인터럽트의 종류는 크게 두가지로 나뉜다고 한다.
각각의 종류에서 발생 조건을 알아보았다.

  1. 외부 인터럽트 : 입출력장치, 타이밍장치, 전원등의 외부적인 요인에 의해서 발생
  • 전원 이상 인터럽트: 정전이나 전원이 이상이 있는 경우

  • 기계 고장 인터럽트: CPU등의 기능적인 동작 오류가 발생한 경우

  • 입출력 인터럽트(I/O Interrupt): 입출력의 종료 등의 이유로 CPU의 수행을 요청하는 인터럽트

  1. 내부 인터럽트 : 잘못된 명령이나 데이터를 사용할 때 발생
  • 0으로 나누는 경우

  • 오버플로우 또는 언더플로우가 발생한 경우

  • 프로그램 상의 오류

  • 프로그램에서 함수 등 명령어를 잘못 사용한 경우

  • 예외를 처리하던 중 또 다른 예외가 발생할 경우, Double Fault이라고 부름

  • Double Fault가 발생하여 이를 처리하는 중에 또 다른 예외가 발생할 경우, Triple Fault라고 부르며 이 경우 CPU Reset가 발생

  • 소프트웨어 인터럽트: CPU가 인스트럭션을 수행하는 도중에 일어나는 인터럽트

결론 - 느낀 점

스레드를 공부하며 인터럽트를 직접걸어보았는데 다양한 프로그램을 돌리며 멈췄던 현상이
이런 현상이라는 것을 깨달았다. 꼭 필요한 방법이고 응용이 중요한 방법이라고 생각하여
더 깊에 탐구 해야겠다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글