CS

인터럽트(Interrupt)

quedevel 2023. 4. 6. 14:53
728x90
반응형

인터럽트(Interrupt)란?

CPU가 프로그램을 실행하는 도중에 입출력(I/O) 요청, 예외상황, 하드웨어 인터럽트 등의 이벤트가 발생하면 해당 이벤트에 대한 처리를 위해 CPU의 실행 흐름을 중단하고, 우선순위가 높은 이벤트에 대한 처리를 수행하는 메커니즘입니다.

 

인터럽트의 구분

하드웨어 인터럽트 : 하드웨어 디바이스가 CPU에게 신호를 보내는 것
소프트웨어 인터럽트 : 프로그램에서 명령어를 실행하는 도중에 소프트웨어적으로 인터럽트를 발생시키는 것

 

인터럽트 동작 순서

인터럽트 동작 순서

1. 인터럽트 요청
2. 프로그램 실행 중단: 현재 실행중이던 Micro operation 까지 수행한다.
3. 현재의 프로그램 상태 보존: PCB(Process Control Block), PC(Program Counter) 등
4. 인터럽트 처리루틴 실행: 인터럽트를 요청한 장치를 식별한다.
5. 인터럽트 서비스 루틴 실행
   - 인터럽트 원인을 파악하고 실질적인 작업을 수행한다. 처리기 레지스터 상태를 보존한다.
   - 서비스루틴 수행 중 우선순위가 더 높은 인터럽트가 발생하면 또 재귀적으로 1~5를 수행한다.
   - 인터럽트 서비스 루틴을 실행할 때 인터럽트 플래그(IF)를 0으로 하면 인터럽트 발생을 방지할 수 있다.
6. 상태복구 : 인터럽트 발생 시 저장해둔 PC(Program counter)를 다시 복구한다.
7. 중단된 프로그램 실행 재개: PCB의 값을 이용하여 이전에 수행중이던 프로그램을 재개한다.

 

인터럽트 우선순위

여러 장치에서 인터럽트가 동시에 발생하거나 인터럽트 서비스 루틴 수행 중 인터럽트가 발생한 경우 우선순위 판별 필요

1. 전원 이상(Power fail)
2. 기계 착오(Machine Check)
3. 외부 신호(External)
4. 입출력(I/O)
5. 명령어 잘못
6. 프로그램 검사(Program Check)
7. SVC(SuperVisor Call)

* 일반적으로 하드웨어 인터럽트가 소프트웨어 인터럽트보다 우선 순위가 높다.
* 일반적으로 내부 인터럽트 보다 외부 인터럽트가 우선 순위가 높다.

 

 

References

 

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr

 

 

GitHub - gyoogle/tech-interview-for-developer: 👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖

👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.

github.com

 

728x90
반응형

'CS' 카테고리의 다른 글

클린코드 & 리팩토링 & 시큐어코딩  (0) 2023.04.07
시스템 콜(System Call)  (0) 2023.04.06
프로세스 주소 공간  (0) 2023.04.06
프로세스(process)와 스레드(thread)  (0) 2023.04.06
마이크로서비스 아키텍처(MSA)  (0) 2023.04.05