02 Apr 2024

[OS] 인터럽트(Interrupt) 란?

인터럽트란?

Interrupt : 방해하다

일을 하다가 누가 말을 걸면(방해하면) 하던 일을 멈추고 그 사람을 보고 이야기를 할 것이다.

컴퓨터과학에서 인터럽트도 똑같다. CPU가 작업 도중에 급하게 다른 일을 처리하고자 할 때 사용되는 기능이다.

인터럽트의 진행 과정

Difference between ISR and Function Call - GeeksforGeeks

  1. 기존의 작업을 처리하던 도중(Main program 실행 중), 인터럽트가 발생한다.
  2. 현재 컴퓨터가 처리하는 일을 중지하고 CPU 내부의 레지스터, 메인 메모리 내용 등 현재의 컴퓨터의 상태를 스택에 저장한다.
  3. 프로그램 카운터(PC)에 인터럽트 서비스 루틴(ISR, 인터럽트 처리 프로그램)의 시작 위치를 저장
  4. 제어권이 인터럽트 처리 프로그램(ISR)을 실행
  5. 인터럽트 처리 이후 스택에 저장했던 내용을 레지스터로 다시 옮김
  6. 프로그램 카운터(PC)에 중단된 프로그램의 시작 위치를 저장
  7. 중단된 프로그램 재실행

인터럽트는 크게 외부 / 내부 인터럽트로 나뉘게 된다.

외부 인터럽트 vs 내부 인터럽트

내부 인터럽트(소프트웨어 인터럽트)

  1. 하드웨어 고장(Hardware Interrupt)
    • 컴퓨터 고장
    • 데이터 전달 과정에서의 비트 오류
    • 전원이 나간 경우
  2. 실행할 수 없는 명령어
    • 기억장치에서 인출한 명령어의 비트 패턴이 정의되어 있지 않은 경우
  3. 명령어 실행 오류 (Trap)
    • 나누기 0 : CPU가 명령어를 수행하다가 처리할 수 없는 예외를 만나면 자기자신을 인터럽트 걸어 처리함
  4. 사용 권한 위배
    • 사용자가 운영체제만 사용할 수 있는 자원에 액세스하는 경우

외부 인터럽트(하드웨어 인터럽트)

외부 인터럽트는 주로 입출력장치 에 의해 발생된다.

  1. 타이머 인터럽트
    • 타이머가 일정한 시간 간격으로 CPU에게 인터럽트를 요청하여 프로세스의 문맥 교환을 진행 (보통 10ms, 0.01초마다 진행)
  2. 입출력(I/O) 인터럽트
    • 마우스, 키보드, 프린터 등 속도가 느린 입출력장치의 입출력 준비가 완료되었음을 알리기 위해 인터럽트를 요청

인터럽트의 역할

  • 인터럽트는 현대의 운영체제가 하드웨어와의 상호작용을 향상시켜, CPU가 멀티 프로그래밍을 가능하게 하는 핵심적인 역할을 한다.

  • 인터럽트는 갑작스러운 컴퓨터의 전류 공급 중단이나, 사용자의 입력, 입출력 작업의 완료, 운영체제에 의한 긴급 요청 등과 같은 긴급한 상황에 대처하기 위해서도 필요하다.

참고자료

https://www.geeksforgeeks.org/difference-between-isr-and-function-call/

Thank You For Reading
SeungJun Jeon

점점 강해지고 있습니다.

comments powered by Disqus