스케줄링 기준
다양한 CPU 스케줄링 알고리즘은 각기 다른 특성을 가지며, 특정 알고리즘의 선택은 특정 종류의 프로세스에 유리할 수 있습니다. 특정 상황에서 어떤 알고리즘을 사용할지 선택할 때는 여러 알고리즘의 특성을 고려해야 합니다.
CPU 스케줄링 알고리즘을 비교하기 위해 여러 기준이 제안되었습니다. 비교에 어떤 특성을 사용하는지는 어떤 알고리즘이 가장 좋다고 판단되는지에 상당한 차이를 만들 수 있습니다. 기준은 다음과 같습니다:
CPU 활용률 (CPU utilization): CPU를 가능한 한 바쁘게 유지하는 것이 중요합니다. 개념적으로 CPU 활용률은 0에서 100%까지 범위에 있을 수 있습니다. 실제 시스템에서는 40%(가벼운 부하 시스템)에서 90%(높은 부하 시스템)까지 범위에 있어야 합니다. (CPU 활용률은 Linux, macOS, UNIX 시스템에서
top
명령어를 사용하여 얻을 수 있습니다 ).처리량 (Throughput): CPU가 프로세스를 실행하느라 바쁘다면 작업이 수행되고 있는 것입니다. 작업량 측정의 한 가지 방법은 단위 시간당 완료되는 프로세스 수로, 이를 처리량이라고 합니다. 긴 프로세스의 경우 이 비율은 몇 초에 한 프로세스일 수 있으며, 짧은 트랜잭션의 경우 초당 수십 개의 프로세스일 수 있습니다.
반환 시간 (Turnaround time): 특정 프로세스의 관점에서 중요한 기준은 해당 프로세스를 실행하는 데 걸리는 시간입니다. 프로세스 제출 시간부터 완료 시간까지의 간격을 반환 시간이라고 합니다. 반환 시간은 준비 큐에서 대기하는 시간, CPU에서 실행되는 시간, I/O를 수행하는 시간의 합입니다.
대기 시간 (Waiting time): CPU 스케줄링 알고리즘은 프로세스가 실행되거나 I/O를 수행하는 시간에 영향을 미치지 않습니다. 오직 프로세스가 준비 큐에서 대기하는 시간에만 영향을 미칩니다. 대기 시간은 준비 큐에서 대기하는 기간의 합입니다.
응답 시간 (Response time): 대화형 시스템에서는 반환 시간이 최상의 기준이 아닐 수 있습니다. 종종 프로세스는 상당히 일찍 일부 출력을 생성하고, 이전 결과가 사용자에게 출력되는 동안 새로운 결과를 계속 계산할 수 있습니다. 따라서 또 다른 측정 기준은 요청 제출부터 첫 번째 응답이 생성될 때까지의 시간입니다. 이 측정 기준을 응답 시간이라고 하며, 응답을 출력하는 데 걸리는 시간이 아니라 응답을 시작하는 데 걸리는 시간입니다.
CPU 활용률과 처리량은 최대화하고, 반환 시간, 대기 시간, 응답 시간은 최소화하는 것이 바람직합니다. 대부분의 경우, 평균 측정치를 최적화합니다. 그러나 일부 상황에서는 평균 대신 최소 또는 최대값을 최적화하는 것을 선호합니다. 예를 들어, 모든 사용자가 좋은 서비스를 받도록 보장하기 위해 최대 응답 시간을 최소화할 수 있습니다.
연구자들은 대화형 시스템(예: PC 데스크톱 또는 노트북 시스템)의 경우 평균 응답 시간을 최소화하는 것보다 응답 시간의 편차를 최소화하는 것이 더 중요하다고 제안했습니다. 합리적이고 예측 가능한 응답 시간을 가진 시스템은 평균적으로 더 빠르지만 변동성이 큰 시스템보다 더 바람직하게 여겨질 수 있습니다. 그러나 응답 시간의 편차를 최소화하는 CPU 스케줄링 알고리즘에 대한 연구는 거의 이루어지지 않았습니다.
Last updated