티스토리 뷰

운영체제

[운영체제] 인터럽트

Hani_Levenshtein 2020. 9. 15. 05:19

안녕하세요 Hani입니다.

지금까지의 운영체제가 HW, SW와 어떤 관계가 있는지 알아봤고, 컴퓨터 구조를 크게 프로세서와 메모리의 관계로 이해할 수 있었습니다.

 

그러나 컴퓨터는 프로세서나 메모리 말고도 마우스, 프린터 등 다양한 장치들이 존재합니다.

프로세서가 연산을 하면서 직접 입출력할 것이 있는지 점검한다면 실행 시간이 낭비될 것입니다.

프로세서는 비싼 연산 장치인 만큼 연산에 집중할 수 있도록 운영체제를 설계해야 합니다.


Interrupt

프로세서가 연산을 하고 있는 도중 진행 중이던 작업을 놔두고 당장 해야 할 작업이 생겼음을 알려주는 것을 인터럽트라고 합니다.

I/O 장치를 당장 사용할 일이 생겼음을 프로세서에게 알려주는 인터럽트를 하드웨어 인터럽트라고 합니다.

 

인터럽트에는 수를 0으로 나누거나 잘못된 메모리 접근 등에 의해 발생하는 소프트웨어 인터럽트도 있고, CPU를 여러 개의 프로그램들이 공평하게 나눠 쓰기 위한 타이머 인터럽트도 있습니다.

 

인터럽트가 있기 때문에 프로세서는 직접 예외상황과 입출력장치를 확인하는 폴링(Polling)을 할 필요가 없게 됩니다.


인터럽트 처리 과정

프로세서는 연산을 하다가 인터럽트가 발생했다고 알림을 받으면 수행하던 작업을 일단 중지합니다.

PCB(Process Control Block)에 중지한 프로세스의 정보와 상태를 저장합니다.

PC(Program Counter) 레지스터에 중지한 명령의 주소를 저장합니다.

프로세서가 인터럽트 벡터에 적힌 ISR(Interrupt Service Routine) 주소에 접근하여 해당 인터럽트를 처리합니다.

ISR 가 역할을 마무리하면 프로세서PC에 적어놓은 주소를 찾아가 원래 하던 작업을 이어서 하게 됩니다.

 

인터럽트 벡터란, 인터럽트가 발생했을 때, 그 인터럽트를 처리할 수 있는 ISR 주소를 가지고 있는 공간입니다.

ISR란, 인터럽트가 발생한 원인에 맞게 조치를 해주는 프로그램입니다. 인터럽트 핸들러(Interrupt Handler)라고도 부릅니다.


우리는 위에서 인터럽트의 존재 의의와 인터럽트의 종류 그리고 인터럽트 처리과정을 알아봤습니다.

다음 포스팅에서는 여기서 더 나아가 시스템 콜 인터럽트(System Call Interrupt)를 좀 더 알아볼 것입니다.

'운영체제' 카테고리의 다른 글

[운영체제] 프로세스 동기화  (0) 2020.12.24
[운영체제] CPU 스케쥴링  (0) 2020.12.24
[운영체제] 시스템 콜  (0) 2020.09.20
[운영체제] 운영체제와 HW, SW  (0) 2020.09.15
[운영체제] 부팅  (0) 2020.09.04
댓글