OS

CS OS 인터럽트

차가운개발 2024. 10. 22. 17:52

 

인터럽트는 컴퓨터 시스템에서 현재 수행 중인 작업을 일시적으로 중단하고, 더 긴급한 작업을 처리하기 위해 제어권을 특정 코드(인터럽트 핸들러)로 넘기는 매커니즘이다. 하드웨어와 소프트웨어에서 모두 발생할 수 있으며 여러 작업을 동시에 처리하고 시스템 자원을 효율적으로 관리할 수 있도록 돕는다.

 

ㅇ 개념

  • 정의
    현재 실행 중인 프로세스를 중단하고 특정 이벤트를 처리하기 위해 운영체제가 개입하도록 하는 신호다.
  • 처리 방식
    현재의 작업 상태를 저장한 후 운영체제는 인터럽트 핸들러라는 특수한 루틴을 실행한다. 이 루틴은 인터럽트를 처리한 후 저장된 작업 상태를 복구하여 중단된 작업을 재개한다.

 

ㅇ 인터럽트의 종류

  • 하드웨어 인터럽트
    외부 장치(키보드, 마우스, 모니터 등)에 의해 발생하는 인터럽트다. 비동기적으로 발생하며 프로세스의 작업 흐름과 독립적으로 처리된다.
  • 소프트웨어 인터럽트
    소프트웨어에서 명령어를 통해 의도적으로 발생시키는 인터럽트다. 보통 시스템 호출이나 예외 처리시 사용된다.
    동기적으로 발생하며 프로그램의 흐름에 따라 발생 시점이 결정된다.
  • 예외
    프로그램 실행 중에 예외적인 상황(나누기에서 0으로 나누기, 페이지 폴트, 잘못된 메모리 접근 등)이 발생할 때 인터럽트로 처리된다. 소프트웨어 인터럽트의 일종으로 볼 수 있다.

 

ㅇ 인터럽트의 처리과정

  1. 인터럽트 발생
    인터럽트 신호가 발생하면, 프로세서는 작업을 중단하고 요청을 확인한다.
  2. 요청 확인
    프로세서는 요청을 확인하고, 우선순위가 높은 인터럽트부터 처리한다.
  3. 작업 상태 저장
    현재 실행 중인 작업 상태를 스택에 저장하여 나중에 복원할 수 있도록 한다.
  4. 핸들러 실행
    인터럽트를 처리하기 위한 인터럽트 핸들러가 실행된다.
  5. 복원
    인터럽트 처리가 완료되면, 저장된 작업 상태를 복원하고 중단된 작업을 재개한다.

 

ㅇ 장단점

장점

  • 효율적인 자원 관리
    CPU가 바쁜 작업을 수행하는 동안에도 외부 장치의 이벤트를 즉시 처리할 수 있다.
  • 빠른 응답성
    사용자의 입력이나 하드웨어 이벤트에 빠르게 반응할 수 있어 시스템 성능을 높일 수 있다.

단점

  • 복잡성 증가
    인터럽트를 처리하는 과정에서 많은 상황을 고려해야 하므로, 복잡성이 증가한다.
  • 문맥 교환 비용
    인터럽트를 처리하기 위해 현재 작업 상태를 저장하고, 복원하는 과정에서 오버헤드가 발생할 수 있다.