Interrupt   인터럽트

(2024-01-19)

1. 인터럽트CPU,프로그램 등이 대해 현재 작업을 잠시 중단하고, 특정 작업을 수행토록 하는 것
     - 주로, 하드웨어가 주는 시그널에, 소프트웨어가 반응하도록 하는 것
        . 즉, 하드웨어가 시스템과 접촉할 필요 있을 때, 입터럽트를 발생시키고,
              프로세서운영체제를 중단시키게 됨


2. 인터럽트의 발생원인 例CPU 개입 요구시
     - 입출력과 같은 주변 장치들의 조작, 네트워크를 통한 패킷 수신 등에 따라, 
     - CPU의 기능이 요구되는 경우 
  ㅇ 하드웨어적인 장애 발생시
     - 데이터의 전달 과정에서 오류의 발생 등
     - 컴퓨터 자체 내 하드웨어적 장애가 발생하는 경우 
     - 컴퓨터제어하는 주변 상황에 이상이 있는 경우 등
  ㅇ 프로그램 수행 문제 발생시
     - 보호된 기억공간에 접근, 혹은 불법적인 인스트럭션의 수행 등
     - 프로그램상의 문제가 발생하는 경우 
  ㅇ 의도적인 조작시
     - 의도적인 조작에 의하여, 프로그램의 수행을 중단시키는 경우 


3. 인터럽트의 종류

  ㅇ 하드웨어 인터럽트  (외부 인터럽트)
     - 외부 주변장치 등에 의해, 비동기적으로 발생되는 인터럽트
     - 주변장치 등이 자신에게 발생한 사건을 운영체제 커널에게 알리는 수단/매커니즘
        . 특히, CPU로 하여금 현재 작업을 중단하고, 다른 급한 처리를 하도록 요구하는 메커니즘
           .. 이렇게 급히 요구되는 처리를, 인터럽트 서비스 루틴 이라고 부름     ☞ 아래 5.항 참조
           .. 인터럽트 처리가 끝나면, CPU는 원래 작업으로 복귀하여 수행을 계속하게 됨
        . 즉, 인터럽트에 의해 운영체제CPU를 현재 작업에서 빼앗아 커널 루틴을 실행 가능케 함
     - 인터럽트는, 하드웨어와 운영체제 간의 상호작용의 핵심 부분임
     - 例) 키 입력 또는 마우스 클릭 등의 동작시 인터럽트 발생

  ㅇ 소프트웨어 인터럽트  (내부 인터럽트)  :  (트랩, 예외처리) 
     - 현재 수행중인 태스크와 관련되어, 동기적으로 발생되는 인터럽트
     - 例) 0으로 나누는 것, 세그멘테이션 결함, 페이지 결함, 보호 결함, 시스템 호출 등  

  ※ 인터럽트 종류는, 내부적으로 숫자로 구분되어, 
     - 이를통해, 인터럽트를 처리하며, 인터럽트 핸들러를 실행시킴


4. 인터럽트의 우선순위

  ㅇ 여러 인터럽트들이 동시 발생시, CPU가 우선순위를 결정하도록 함
     - 통상, 외부 인터럽트가 내부 인터럽트 보다 우선순위 높음
     - 인터럽트 마스크 : 긴급 여부를 판별하는 수단으로 사용
        . 인터럽트 처리 도중에, 하위 수준 인터럽트를 무시할 수 있도록 설정
     - 최우선순위 인터럽트 : 심각한 오류 등
        . 마스크 불가능 인터럽트(NMI, Non-maskable interrupt)

  ㅇ 일반적인 우선순위
     - 정전 > 기계 오작동 > 입출력 필요 > 예외처리 > 트랩


5. 인터럽트의 발생시 행동 방식

  ㅇ (발생 확인)  CPU는, 매 명령어 사이클 마다 인터럽트 요청 여부 확인

  ㅇ (요청 식별)  인터럽트 요청 장치의 식별
     - 장치 마다 별개 인터럽트 라인 사용
     - 1개 인터럽트 라인 만 사용 (다중화)
     - 폴링 방식 : 장치에 어떤 변화가 있는지 계속 체크함 (원래의 인터럽트 방식과는 다소 다름)

  ㅇ (조치 루틴)  각 인터럽트별로, 발생시 취할 행동(작업,처리)
     - 이러한 행동이 기록되어 있는 함수를, 
        . 인터럽트 서비스 루틴 (Interrupt Service Routine, ISR)
        . 또는, 인터럽트 핸들러 (interrupt handler, IH) 라고 함

     - 통상, 이들의 시작 위치(주소)로 분기하는(점프하는,가리키는) 테이블을 유지함
        . IDT (Interrupt Descriptor Table) 또는 IVT (Interrupt Vector Table)

  ㅇ (전담 처리)  대부분, 운영체제 커널은, 통상의 처리와는 별도로, 인터럽트 전용의 처리 모듈에서,
     - 인터럽트 핸들러가 빠르게 처리하고 종료하게끔, 전담토록 함

예외,이벤트 처리
   1. 예외 처리   2. 트랩   3. 인터럽트   4. 이벤트  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"