본문 바로가기
운영체제

커널별 인터럽트 처리

by tryotto 2020. 4. 26.

# 타이머 인터럽트 처리


- 기본 원리 (일반적인 인터럽트 처리 순서를 그대로 따른다)

      - 인터럽트는 통상적으로 CPU 기준, 외부 인터럽트를 의미한다

      > 따라서, 보통 하드웨어에서 발생한다고 생각하면 된다

      - 인터럽트 발생 시, 프로세스를 PCB 저장한 뒤, 인터럽트 서비스 루틴을 수행


- 커널별 타이머 인터럽트 처리방식 

      1) 마이크로 커널 

- 하드웨어 타이머에서 인터럽트 발생

- 마이크로 커널에게 전달됨

- 인터럽트 핸들 루틴을 수행한다

       > 이 과정에서, 프로세스 스케쥴링이 들어간다

- 스케쥴링을 통해 다음 프로세스를 선택한 뒤

- 커널 서버는 해당 프로세스를 수행한다


      2) 하이퍼바이저 커널

  - 하드웨어 타이머에서 인터럽트 발생

- 하이퍼바이저 커널에게 전달됨

- 인터럽트 핸들 루틴을 수행

- 하이퍼바이저 스케쥴러는 "다음 수행될 OS 를 선택" (중요)

- 선택된 OS 를 실행시킨다

       > 그 뒤, 해당 OS 에 대응되는 소프트웨어 인터럽트 핸들 루틴을 수행한다







# 커널별 타임 퀀텀 값 할당량


     - 일반 커널들 (마이크로 커널, 모노리틱 커널)

> 커널 서버에서, 프로세스 단위로 스케쥴링을 하기 떄문에

   일반적인 길이로 타임 퀀텀 값이 주어진다.


     - 마이크로 커널

> 마이크로 커널에서 스케쥴링을 하는 대상은, 

   여러개로 찢어진 커널 서버들과 일반 프로세스들이다.

> 어떤 스케쥴링 정책을 채택했는지에 따라 전혀 다른 처리를 한다

     1) priority 기반 

- 높은 priority 큐 : 커널 서버들을 담는다

- 낮은 priority 큐 : 일반 프로세스들을 담는다

       > 이때, 각 프로세스들에 할당된 타임 퀀텀은 일반 타임 퀀텀과 동일하다

     2) FCFS 기반

- 같은 큐에 커널 서버들과 일반 프로세스들이 동시에 담긴다

       > 커널 서버들은 신속하게 처리해야 한다 : 더 긴 타임 퀀텀 할당


     - 하이퍼바이저 커널

> 하이퍼바이저 커널에서 스케쥴링을 하기 떄문에, guest OS 단위로

   스케쥴링을 해야 한다

> 스케쥴링 된 OS 를 선택할 경우, 처음 주어졌던 타임 퀀텀 값을 기준으로

   또 다시 해당 OS 스케쥴링을 해야 한다

> 따라서, 일반적인 커널 방식보다 더 긴 타임 퀀텀 값을 받아야 한다

   

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

커널 종류  (0) 2020.04.26
DMA 와 메모리  (0) 2020.04.26
선점형/비선점형 스케쥴링 방식  (0) 2020.04.26
인터럽트  (0) 2020.04.26