[OS/운영체제] 인터럽트(Interrupt) - 정의, 종류

·2021년 7월 27일
0

OS

목록 보기
4/11

인터럽트(Interrupt)란?

정의

CPU가 프로그램을 실행하는 도중에 예기치 않은 상황이나 예외 상황이 발생하여 처리가 필요한 경우, 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 원래 실행중이던 작업으로 복귀하는 것


종류

1) 외부 인터럽트 (== HW 인터럽트)

CPU코어 '외부'에서 어떤 일이 발생한 것을 전기적인 신호로 CPU에게 통지하는 경우

  • CPU의 하드웨어 신호에 의해 발생
  • 입출력 장치, 타이밍 자치, 전원 등 외부적 요인에 의해 발생

2) 내부 인터럽트 (== SW 인터럽트, Trap)

CPU 내부에서 실행하면서 인터럽트에 걸리는 경우 (프로그램에 의해 발생)

  • CPU 하드웨어 신호에 의해 발생 -Trap이라 부르며 잘못된 명령이나 잘못된 데이터를 사용할 때 발생
  • 0으로 나누기 / Underflow / Overflow / Exception

인터럽트 처리 과정

⭐ 흐름

요청 - 중단 - 보관 - 처리 - 재개

  1. 인터럽트 발생
  2. 프로그램 실행 중단
  3. 현재 수행중이었던 상태를 해당 프로세스의 PCB(Process Control Block)에 저장
    • Interrupt Vector를 읽어 ISR 주소값을 얻고 PC값은 자동 저장됨
    • 현재 진행중인 프로그램의 레지스터를 대피함
  4. 인터럽트의 원인을 파악하고 실질적인 작업 수행
  5. 해당 작업을 다 처리하면 대피시킨 레지스터 복원
    PC 값을 복원하여 이전 실행 위치로 복원



출처

https://github.com/haewon-park/csStudy/blob/main/OS/%EC%9D%B8%ED%84%B0%EB%9F%BD%ED%8A%B8%20.md
http://www.parkworkshop.com/14/?q=YToyOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjtzOjQ6InBhZ2UiO2k6MTt9&bmode=view&idx=3878229&t=board

profile
당근먹고 자라나는 개발자

0개의 댓글