❗ 인터럽트 기반 운영체제

현대의 운영체제는 모두 인터럽트를 기반으로 작동한다. 즉 부팅을 마친 후에는 인터럽트가 걸릴때 까지 운영체제는 아무일도 하지 않는 것이다.

우선 1)인터럽트가 무엇인지 알아보고 2)인터럽트가 발생할 경우 운영체제가 이를 어떻게 처리하는지 과정을 알아보자.

 

인터럽트란?

인터럽트에는 3가지 종류가 있다. 하드웨어, 소프트웨어 그리고 내부적으로 발생되는 인터럽트가 있다.

  1. 하드웨어 인터럽트 : 마우스를 움직이거나 키보드를 타이핑하는 등 하드웨어적인 동작으로 인해 발생하는 인터럽트이다.
  2. 소프트웨어 인터럽트 : 프로세스 내부에서 파일을 읽는 다거나 프린터를 동작하는 등 소프트웨어 자체적으로 인터럽트가 발생하는 경우이다.
  3. 내부 인터럽트 : 프로그램 내부에서 허용되지 않는 접근을 시도한다던가 DivideByZero같은 계산이 발생하는 경우 내부적인 인터럽트로 인식이 된다.

 

인터럽트가 발생할 경우 운영체제의 동작

  1. 어떤 경로로든 인터럽트가 발생할 경우에는 가장 먼저 CPU가 인터럽트를 인지하게 된다.
  2. 인터럽트를 인지한 CPU는 지금 하고 있는 동작을 중지한 후
  3. 메모리에 올라와 있는 운영체제 안에 존재하는 인터럽트를 처리하는 루틴(ISR, interupt service routine)으로 jump하게 된다.
  4. 운영체제에는 각종 상황에 따른 ISR이 존재한다. 운영체제에서 ISR이 모두 실행되고 나면 다시 CPU는 원래하던 작업으로 돌아오게 된다.

이러한 방식으로 운영체제는 인터럽트를 기반으로 동작하게 된다.

'Operating system' 카테고리의 다른 글

[운영체제] 이중모드와 HW보호  (0) 2022.12.25

+ Recent posts