5.1 생략
5.2 각 쌍의 스케줄링 기준의 충돌을 보여라.
a. CPU utilization, response time
b. average turnaround time, maximum waiting time
c. IO device utilization, CPU utilization
a. CPU utilization을 향상시키려면 context switching의 overhead를 줄여야한다. context switch를 적게 하면 overhead를 줄일 수 있지만, response time이 길어진다.
b. turnaround time을 줄이려면 shortest task first로 실행해야 한다. 하지만 이 방법은 starvation을 발생시키고, 긴 시간이 걸리는 task의 waiting time이 증가하게 된다.
c. CPU utilization은 긴 수행시간이 걸리는 CPU-bound tasks를 context switch 없이 실행하면 최대화된다. IO device utilization은 IO-bound job을 실행가능할때 바로 해야 최대화 할 수 있는데, 이는 context switch의 overhead를 발생시킨다.
5.3 다음 CPU burst를 예측하기 위해 exponential average formula를 사용한다. 다음 value를 사용하면 어떻게 예측하겠는가?
a. α = 0, τ = 100ms
b. α = 0.99, τ = 10ms
a. 항상 100ms로 예측한다.
b. 거의 이전 burst time으로 예측한다.
공식: S_(n+1) = a(T_n)+(1-a)*S_n
5.4 생략
5.5 SJF는 starvation을 유발한다, priority based 스케줄링 알고리즘도 starvation을 유발한다.
5.6 생략
5.7 시스템이 10개의 IO-bound tasks와 1개의 CPU-bound task를 실행한다고 하자. IO bound tasks는 실행되는데 1ms가 걸리고, CPU-bound task는 10ms가 걸린다고 하자. 다음 Round Robin 스케줄러가 갖게 될 CPU-utilization 정도를 구하라.(context switch overhead는 0.1ms이다.)
a. time quantum = 1ms
b. time quantum = 10ms
a -> 둘 다 1ms만 실행되고 context switch가 발생한다. 따라서 1/1.1 = 91%
b -> 한 번 실행되면 모두 완료하고 끝난다. 따라서 20/21.1 = 94%
'학부 OS 공룡책 연습문제 Ch.4~6' 카테고리의 다른 글
Ch.6 Process Synchronization (0) | 2019.01.26 |
---|---|
Ch.4 Thread (0) | 2019.01.22 |