[OS] Interrupt(인터럽트)

2022. 9. 30. 18:05TIL💡/OS

- 주변 장치 및 입출력 장치는 CPU나 메모리와 달리 인터럽트(Interrupt)라는 매커니즘을 통해 관리

- 주변 장치들을 CPU의 서비스가 필요한 경우에 신호를 발생시켜 서비스를 요청한다. 이 때 발생시키는 신호를 인터럽트라 한다.

- CPU는 평소에 CPU 스케줄링에 따라 자신에게 주어진 작업을 수행하고 있다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행한다.

- 인터럽트는 요청하는 장치와 발생 상황에 따라 다양한 종류가 있기 때문에 OS는 인터럽트 종류마다 서로 다른 인터럽트 처리 루틴을 갖는다. 인터럽트 처리 루틴이란 인터럽트가 발생했을 때 해주어야 할 작업을 정의한 프로그램 코드를 말한다.

이는 OS 커널 내에 존재하는 코드로, CPU 스케줄링, 메모리 관리 루틴 등 다양한 기능을 위한 커널 코드 중 일부분이라 할 수 있다.

 

인터럽트 벡터

- 여러가지 인터럽트에 대해 해당 인터럽트 발생 시 처리해야 할 루틴의 주소를 보관하고 있는 테이블

- 일종의 함수를 가리키는 포인터라고도 할 수 있다.

- (~ 인터럽트에는 ~ 루틴을 호출할까?)

 

인터럽트 핸들러

- 실제 인터럽트를 처리하기 위한 루틴으로 인터럽트 서비스 루틴이라고도 부른다.

- OS 코드 부분에는 각종 인터럽트별로 처리해야할 내용이 미 프로그램 되어있으며, 이 부분을 인터럽트 서비스 루틴 또는 인터럽트 핸들러라고 부른다.

 

'TIL💡 > OS' 카테고리의 다른 글

[OS] 프로세스의 생성과 복사  (0) 2022.10.11
[OS] 프로세스의 구조  (0) 2022.10.11
[OS] DMA(Direct Memory Access)이란?  (0) 2022.10.10
Page Table의 작동 순서  (0) 2022.09.30
API와 SDK  (0) 2022.05.31