[OS] Scheduling 알고리즘 평가 척도

두비니

·

2021. 4. 26. 04:18

 

 


Scheduling Criteria

스케줄링 알고리즘 평가 척도


 

수많은 스케줄링 알고리즘이 있지만, 그게 어떤 척도로 평가하느냐에 따라서도 많이 바뀌겠죠.

실제로 스케줄링 알고리즘은 다양한 척도로 평가를 하고 있으며, 오늘 알아 볼 계획입니다.

 

 

1. CPU의 입장에서

 

 

1) CPU Utilization

 

먼저 CPU 활용입니다. CPU가 존재하는 이유는 연산을 하기 위해서입니다. 그리고 CPU는 기계이기 때문에 인간적으로 쉴 시간을 챙겨줄 필요가 없이 더 많이 굴리는게 무조건 효율적입니다.

따라서 이 CPU를 얼마나 idle상태가 아닌, busy상태로 두었는지를 보는게 하나의 평가척도입니다.

 

물론 I/O bound program이라던가, I/O busy program같은 경우들에는 어쩔 수 없이 CPU가 놀고 있겠지만, 그 이외에는 CPU를 최대한 굴리는게 중요하겠죠?

 

 

2) Throughput

 

다음은 throughput입니다. Throughput은 처리량으로, 같은 시간 단위동안 얼마나 많은 연산을 해냈는가에 대한 척도입니다. 당연히 같은 시간동안 많이 일한 친구가 더 효율적이겠죠?

 

 

 

2. 프로세스 입장에서

 

1) Turnaround time

 

Turnaround time은 프로세스 입장으로 생각하면 편할 것 같습니다. CPU를 사용하기 위해 들어와서, 다 쓰고 terminated될때까지 걸리는 시간을 뜻합니다. ready에서 running 상태가 되었다가 waiting, ready 등을 거치고 terminated가 되는데까지 걸리는 시간이 되겠죠? 당연히 짧을수록 효율이 좋습니다.

 

 

2) Waiting time

 

Waiting time은 순수하게 ready queue에서 CPU에 할당되기까지의 시간을 뜻합니다. 이것도 당연히 이 시간이 짧을수록 좋겠죠?

다만 한가지 주의할 점은, waiting time은 모든 ready queue에서 기다린 시간을 합친 것입니다. 즉 처음 new 상태에서 ready로 들어와 CPU에 할당된 시간(response time), 중간에 I/O로 갔다가 돌아와서 다시 ready에서 기다린 시간 등등을 모두 포함해서 계산해야 합니다. 

 

3) Response time

 

Response time은 위에서 이야기한 waiting time에 포함되는 개념으로, 딱 처음 ready queue에 들어와서 cpu가 할당되기까지의 시간입니다. 다르게 이야기하면 response시간과 다른 대기시간을 합치면 waiting time이 되겠죠? 다른 time들과 동일하게 짧을수록 좋습니다.