# 타이머 인터럽트 처리
- 기본 원리 (일반적인 인터럽트 처리 순서를 그대로 따른다)
- 인터럽트는 통상적으로 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 |