인터럽트

인터럽트란?

  • 컴퓨터 시스템에서 현재 실행중인 작업을 중단하고 특정 작업을 처리하도록 신호를 보내는 메커니즘
  • 주로 하드웨어나 소프트웨어에서 발생하며, 시스템 효율성과 응답성을 높이기 위해 사용

    주요 개념

  1. 발생원인
    • 하드웨어 인터럽트 : 하드웨어 장치에서 발생
      • 키보드 키 입력
      • 타이머 만료
      • 네트워크 데이터 수신
    • 소프트웨어 인터럽트 : 소프트웨어에서 명시적으로 발생, 일반적으로 시스템 호출 또는 예외 처리로 구현
  2. 인터럽트의 흐름
    1. 인터럽트가 발생하면 현재 실행 중인 작업이 중단됨
    2. 인터럽트 컨트롤러는 인터럽트 신호를 확인하고 우선 순위에 따라 처리할 인터럽트를 결정
    3. CPU나 인터럽트 벡터(해당 인터럽트를 처리하는 코드의 주소)를 참조하여 인터럽트 서비스 루틴(ISR, Interrupt Service Routine)으로 이동
    4. ISR 실행이 안되면 이전 작업으로 복귀
  3. 인터럽트 종류
    • 마스크 가능 인터럽트(Maskable Interrupt) : 소프트웨어 또는 하드웨어 설정을 통해 무시할 수 있는 인터럽트
    • 마스크 불가능 인터럽트(Non-Maskable Interrupt) : 반드시 처리해야 하는 중요한 인터럽트로, 시스템 오류와 같은 중대한 상황에서 발생
    • 소프트웨어 인터럽트 : 프로그램에 의해 명시적으로 호출되는 인터럽트
    • 외부 인터럽트 : 외부 하드웨어 장치에서 발생하는 인터럽트
    • 내부 인터럽트 : 프로세서 내부에서 발생하는 인터럽트로, 예외(Exception)와 유사함
      • 예시
        • 0으로 나누기 연산
        • 잘못된 메모리 접근

          인터럽트의 장점

  4. 인터럽트 요청(Interrupt Request, IRQ)
    • 하드웨어 장치가 CPU에 인터럽트를 요청
  5. 인터럽트 신호 수신 및 확인
    • 인터럽트 컨트롤러가 인터럽트를 감지하고, CPU에 신호를 보냄
    • CPU는 현재 인터럽트 플래그(Interrupt Flag)를 확인함
  6. 인터럽트 플래그 설정 및 컨텍스트 저장
    • COU는현재 실행중인 프로그램 상태(레지스터, 프로그램 카운터 등)를 스택에 저장함
  7. 인터럽트 백터 테이블 참조
    • CPU는 인터럽트 백터 테이블을 참조하여 해당 인터럽트에 연결된 ISR의 주소를 확인함
  8. ISR 실행
    • 인터럽트 처리 루틴이 실행
  9. 컨텍스트 복원 및 복귀
    • ISR 실행이 끝나면 저장된 컨텍스트를 복원하고, 중단된 작업을 이어서 수행함

      인터럽트와 폴링의 비교

      특징 인터럽트 폴링
      작동 방식 요청시 처리 주기적으로 상태를 확인
      CPU 사용 효율성 CPU가 필요할 때만 개입 CPU가 계속 장치 상태를 확인, 비효율적
      응답 속도 즉각적 응답 가능 장치 상태를 확인하는 주기에 따라 다름
      복잡성 구현 복잡도가 높음 구현이 단순함

'오늘의 키워드' 카테고리의 다른 글

직선과 직선의 교차  (0) 2023.09.18
삼각함수 항등식 정리  (1) 2023.09.18
데드락  (0) 2023.09.17
가상화 VS 추상화  (0) 2023.09.17
NAS  (0) 2023.09.17