[기출] interrupt 하드웨어 소프트웨어 차이

agnusdei·2024년 10월 7일
0

Hardware & Software

목록 보기
10/136

하드웨어 인터럽트와 소프트웨어 인터럽트는 시스템의 동작을 잠시 멈추고 특정 작업을 처리할 필요가 있을 때 발생하는 인터럽트의 두 가지 유형입니다. 이들은 발생 원리와 처리 방식에서 차이가 있습니다.

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

    • 원인: 하드웨어 장치(예: 키보드, 마우스, 하드 디스크, 네트워크 어댑터 등)에서 발생합니다. 이들은 CPU 외부의 장치가 CPU에 신호를 보내 작업을 처리하도록 요청할 때 발생합니다.
    • 동작 원리:

    1. 하드웨어 장치가 CPU에 인터럽트를 요청하면, CPU는 현재 작업을 중단하고 인터럽트 벡터 테이블(Interrupt Vector Table)을 참조하여 해당 인터럽트에 대한 핸들러(Interrupt Handler)를 호출합니다.
    2. 인터럽트 핸들러는 인터럽트에 따라 필요한 작업을 수행한 후, 다시 원래 작업으로 복귀합니다.
      • 특징:
      • 비동기적으로 발생하며, 장치와 CPU 간의 직접적인 통신을 통해 이루어집니다.
      • 주로 외부 입력에 대해 빠르게 반응할 때 사용됩니다.
      • 우선순위가 높은 인터럽트는 즉시 처리되며, 낮은 우선순위 인터럽트는 대기할 수 있습니다.
  2. 소프트웨어 인터럽트 (Software Interrupt)

    • 원인: 프로그램이 명시적으로 CPU에게 인터럽트를 요청하는 경우에 발생합니다. 소프트웨어의 특정 명령어를 통해 호출되며, 주로 시스템 콜 또는 예외 처리 시 사용됩니다.
    • 동작 원리:

    1. 프로그램 코드 내에서 특정 소프트웨어 인터럽트 명령어(예: INT 명령어)가 실행되면, CPU는 해당 명령을 인식하고 소프트웨어 인터럽트 벡터 테이블을 참조합니다.
    2. 이후 해당 인터럽트에 맞는 인터럽트 핸들러가 호출되고, 시스템 콜이나 예외 처리가 수행됩니다.
    3. 완료 후 다시 원래 프로그램으로 복귀합니다.
      • 특징:
      • 동기적으로 발생하며, 프로그램이 의도적으로 발생시키는 인터럽트입니다.
      • 주로 운영 체제에서 프로그램이 커널 모드의 기능에 접근할 때 사용됩니다.
      • 예외 처리를 위한 인터럽트로도 사용됩니다. 예를 들어, 0으로 나누기 같은 오류가 발생했을 때 이를 처리하는 예외 인터럽트가 호출됩니다.

하드웨어와 소프트웨어 인터럽트의 주요 차이점:

구분 하드웨어 인터럽트 소프트웨어 인터럽트
발생 원인 하드웨어 장치(외부 장치) 소프트웨어 명령어
발생 시점 비동기적 동기적
용도 외부 장치의 이벤트 처리 시스템 콜, 예외 처리
우선 순위 우선순위에 따라 결정 프로그램에서 직접 제어 가능

결론적으로, 하드웨어 인터럽트는 외부 장치와 CPU 간의 비동기적 상호작용을 처리하기 위해, 소프트웨어 인터럽트는 프로그램에서 시스템 자원에 접근하거나 예외를 처리하기 위해 사용됩니다.

0개의 댓글