운영체제 - CPU 스케쥴링(3)
- CPU 스케쥴링은 CPU Burst 단위로 일어난다.
앞서, CPU 스케쥴링 기법으로 ①FIFO, ②SJF, ③Round Robin을 알아보았다.
SJF(Shortest Job First)는 가장 이상적인 스케쥴링 기법이지만 운영체제가 각 프로세스의 CPU Burst size를 예측할 수 없기 떄문에 불가능한 기법이라고 하였다.
그에따라 FIFO를 대체할 기법으로 Round Robin이 등장하였는데 항상 Round Robin이 FIFO보다 성능이 우수할까?
예를들어, 100 time을 요구하는 process 10개가 Ready Queue에 있다고 가정해보자.
Response time을 각 스케쥴링 기법에 대해 측정해보면
FIFO의 평균 Response time : (100+200+300+ ... + 1000) / 10
Round Robin의 평균 Response time : 대략 1000
위 경우에는 FIFO가 Round Robin보다 우수한 성능을 보여준다.
즉, 작업의 Workload에 따라서 스케쥴링기법의 성능이 달라짐을 보여주는 사례이다.
따라서, 작업의 Workload에 따라 스케쥴링 방식을 변경할 수 있는 기법. 즉, Adaptive Scheduling이 요구되었다.
* Adaptive Scheduling?
- workload의 특성에 따라 time slice의 크기를 동적으로 바꿔주는 스케쥴링 기법이다.
- FIFO의 경우 Time slice가 무한이라고 할 수 있다.
- Round Robin의 경우 Time slice를 임의의 값으로 설정했었다.
- FIFO의 정반대를 RR(TS=0)이라고 할 수 있다.
프로세스를 크게 두 종류로 나눌 수 있다.
1) I/O Bound process
- CPU Burst size가 작고 I/O Burst size가 큰 process이다.
- 예를들어, process(A)가 1ms cpu burst, 10ms I/O burst를 가지고 있다고 하자.
2) CPU Bound process
- CPU Burst size가 크고 I/O Burst size가 작은 process이다.
- 예를들어, process(B)가 계속 cpu 연산만 수행한다고 가정해보자
프로세스 A, B가 Ready Queue에 존재 할때 RR(TS=100ms), RR(TS=1ms) 스케쥴링 기법을 적용할 때 어떤 성능차이를 보일까?
RR(TS=100ms)를 사용하는 경우
- CPU utilization = 100%
- I/O utilization = 10/101 = 10%
- CPU utilization = 100%
- I/O utilization = 10/11 = 90%
'운영체제 > CPU 스케쥴링(scheduling)' 카테고리의 다른 글
운영체제 - CPU 스케쥴링(2) (0) | 2019.03.16 |
---|---|
운영체제 - CPU 스케쥴링(1) (0) | 2019.03.15 |