인터럽트

Onni·2022년 1월 24일
0

📌 정의

CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것을 말한다.
인터럽트는 크게 내부 인터럽트와 외부 인터럽트로 나뉜다.

📌 종류

✔ 내부 인터럽트

  • 하드웨어 고장(Hardware Interrupt)
    - 컴퓨터 고장
    - 데이터 전달 과정에서의 비트 오류
    - 전원이 나간 경우
  • 실행할 수 없는 명령어 : 기억장치에서 인출한 명령어의 비트 패턴이 정의되어 있지 않은 경우
  • 명령어 실행 오류 : 나누기 0을 하는 경우
  • 사용 권한 위배 : 사용자가 운영체제만 사용할 수 있는 자원에 액세스하는 경우

✔ 외부 인터럽트

외부 인터럽트는 주로 입출력장치 에 의해 발생된다.

  • 타이머 인터럽트 : 타이머가 일정한 시간 간격으로 중앙처리장치에게 인터럽트를 요청
  • 입출력 인터럽트 : 속도가 느린 입출력장치가 입출력 준비가 완료되었음을 알리기 위해 인터럽트를 요청

📌 처리과정

명령어 사이클은 인출(fetch stage)과 실행(execution stage) 두 가지 단계를 반복해서 수행한다. 그런데 인터럽트 요청이 들어왔다고 해서 바로 이를 처리하는 것이 아니라, 명령어 N의 실행 단계를 마쳐야 한다. 명령어의 실행단계를 마칠 때마다 중앙처리장치는 반복적으로 인터럽트 요청이 있는지 계속해서 확인한다. 인터럽트 요청이 있어야 인터럽트 서비스 단계를 진행한다.

좀 더 큰 개념으로 살펴본다면 아래와 같은 그림이 된다.

📌 관련용어

  • 인터럽트 핸들러
    실제 인터럽트를 처리하기 위한 루틴으로 인터럽트 서비스 루틴이라고도 한다.
    운영체제의 코드 영역에는 인터럽트별로 처리해야할 내용이 이미 프로그램되어 있다.

  • 인터럽트 벡터
    인터럽드 발생시 처리해야 할 인터럽트 핸들러의 주소를 인터럽트 별로 보관하고 있는 테이블이다.

🧩 Reference

profile
꿈꿈

0개의 댓글