본문 바로가기
Computer Science

인터럽트란? (Interrupt)

by 융식 2022. 6. 29.

인터럽트 : 프로그램 실행 중 예기치 못한 상황이 발생할 때 현재 작업을 중단하고 발생한 상황을 우선 처리한 후 원래 작업으로 복귀하는 것

 

외부 인터럽트 : 전원, 외부장치로 인한 인터럽트, 입출력

 

내부 인터럽트 : 잘못된 명령어나 데이터를 사용할 때 발생 (exception, trap, overflow, cache miss)

 

소프트웨어 인터럽트 : 프로그램의 원하는 위치에서 특수한 호출을 사용해 명령어를 발생할 수 있게 함 (SVC : SuperVisor Call)

- SCV 인터럽트가 발생하는 경우

  •  사용자가 SVC 명령어를 사용해 의도적으로 호출
  • 복잡한 입출력을 처리하는 경우
  • 기억장치 할당, operator와 통신 할 경우

 

인터럽트 우선순위

외부 > 내부 > 소프트웨어 

 

인터럽트 동작 과정

  1. 인터럽트 요청 신호 발생
  2. 현재 수행중인 명령어까지만 완료한 후 수행중인 프로그램을 일시 중지한다.
  3. 수행 중인 프로그램 상태를 안전한 장소에 보관한다.
  4. 인터럽트의 원인을 찾아 해당 인터럽트 서비스 루틴을 실행한다.
  5. 인터럽트 서비스 루틴이 끝나면 보관해 두었던 레지스터 내용과 프로그램 카운터 내용을 복구하여 인터럽트 당한 프로그램을 중단된 곳부터 다시 수행한다.

 

인터럽트 처리 과정

 

'Computer Science' 카테고리의 다른 글

경쟁상태란 무엇일까  (0) 2022.07.06
시스템 콜(System Call)  (0) 2022.07.06
프로세스와 스레드의 차이  (0) 2022.06.14
파이프라인이란?  (0) 2022.06.09
중앙처리장치(CPU)의 작동원리  (0) 2022.06.07