새소식

250x250
반응형
Computer Science/Operating System

[OS] 인터럽트란? 인터럽트 과정은?

  • -
728x90
반응형

인터럽트 (Interrupt)

 

프로세스 실행 도중 예기치 않은 상황이 발생할 때 발생한 상황을 처리한 후 실행 중인 작업으로 복귀하는 것

  • H/W 장치는 시스템 버스를 통해 CPU에 인터럽트를 발생시킴
  • 이러한 방식을 사용하는 컴퓨터 → 인터럽트 구동식 컴퓨터
  • 인터럽트(Interrupt)는 적절한 인터럽트 서비스 루틴(Interrupt Service Routine)이 있는 시작 주소로 제어를 전달

 

인터럽트의 종류

 

  • 하드웨어 인터럽트(Hardware Interrupt)
    • 일반적인 인터럽트
    • ex) 마우스 클릭 이벤트를 알리기 위한 인터럽트 (Mouse)
  • 소프트웨어 인터럽트(Software Interrupt), 트랩(Trap) or 예외(Exception)
    • 오류(0으로 나누기 or 유효하지 않은 메모리 접근)
    • 사용자 프로그램의 운영체제 서비스 요청 (시스템 콜, System Call)

 

인터럽트 서비스 루틴(ISR: Interrupt Service Routine)
or 인터럽트 핸들러(Interrupt Handler)

 

인터럽트를 처리하는 커널 함수

  • 인터럽트가 발생하면, 인터럽트 벡터를 통해 적절한 ISR이 있는 시작 주소로 제어가 전달됨

 

인터럽트 벡터 (Interrupt Vector)

 

인터럽트 벡터(Interrupt Vector): 인터럽트 서비스 루틴(ISR)의 주소들을 모아둔 곳

 

인터럽트 벡터 테이블(Interrupt Vector Table)

  • 인터럽트가 요청되면, 인터럽트를 유발한 장치를 위한 ISR의 주소를 제공하기 위해서 사용됨
  • 인터럽트 서비스 루틴(ISR)에 대한 주소배열을 가짐
  • 인터럽트 요청과 함께 주어진 고유의 장치 번호로 색인됨

 

인터럽트 과정

인터럽트 과정 (Interrupt Process)

  1. 주 프로그램 실행
  2. 인터럽트 발생
  3. 현재 수행 중인 프로그램 중단 및 저장
  4. 인터럽트 원인을 찾음
    • 폴링(Polling) 방식: 해당 장치들을 돌아다니면서 물어봄
    • 인터럽트 벡터(Vectored Interrupt) 방식: ISR에 대한 주소 배열
  5. 적절한 인터럽트 서비스 루틴(ISR)을 수행
  6. ISR 수행을 통해 인터럽트에 대한 조치를 취함
  7. 중단한 프로그램의 상태 복구, 중단된 곳부터 다시 실행

 

인터럽트 타임라인

출력을 수행하고 있는 단일 프로세스에 대한 인터럽트 타임라인

 

 

입출력 인터럽트 과정

입/출력 인터럽트 과정

 

728x90
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.