물론, 처음에는 프로세스가 음수 우선 순위 값을 갖습니다. 그게 무엇인지는 중요하지 않습니다. 단지 그것이 현재의 시간을 기준으로 부정적이며 표현 된 것입니다. 간단히하기 위해 정수 값이라고 가정 해 봅시다.
프로세스 A는 우선 순위 0으로 시작합니다 (우리는 t = 0으로 가정 함). 예를 들어 10 시간 단위로 실행되지만 완료되지 않았으므로 이후의 처리 시점에서 처리를 계속하려면 대기해야합니다. 따라서 우선 순위는 공식을 기반으로합니다.
priority = priority + 100*(endtime - starttime)
priorityA = 0 + 100*(10-0)
priorityA = 1000
프로세스 B의 초기 우선 순위는 t = 5에서 초기화되므로 -5입니다. 대기열에있는 두 가지 우선 순위 중 가장 낮은 우선 순위를 가지므로 시간도 많이 걸립니다. 또한 10 시간 단위로 실행한다고 가정합니다. 이 완료되면, B는 우선 순위가됩니다
priorityB = -5 + 100*(20-10)
priorityB = 995
을하고 그래서 다시 대기거야. 그리고 그것이 다시 10 유닛을 돌았다고 가정합시다. 다음은 새로운 우선 순위입니다. 우선 순위 대기열에서 A 다음에 B 위치를 재 지정합니다. A가 실행되지만 이번에는 5 시간 단위로만 실행됩니다. 새로운 우선 순위는 다음과 같습니다.
priorityA = 1000 + 100*(35-30)
priorityA = 1500
그리고 프로세스 A는 다시 대기열의 맨 위에 있으며주의를 끌 것입니다. 다시 5 개 시간 단위 동안 실행 가정, 그것은 새로운 우선 순위는 다음과 같습니다
priorityA = 1500 + 100(40-35)
priorityA = 2000
프로세스 B 후를 배치하고 그래서 B는 일부 프로세서 시간을 얻을 것이다. 이번에는 5 시간 단위를 사용한다고 가정합시다.
priorityB = 1995 + 100(45-40)
priorityB = 2495
이제 다시 돌아 왔습니다. 이 두 프로세스가 각각 어떻게 프로세서의 관심을 50 % 효과적으로 얻는 지 확인하십시오. 세 번째 장기 실행 프로세스 (A와 B 모두 "장기 실행"은 10 개 단위로 실행되지 않았다는 의미에서 장기 실행 중이고 완료되면 오히려 재구성 됨)를 추가하면 이러한 프로세스 실행될 때마다 프로세서 시간의 약 33 %를 얻을 가능성이 높으며, 실행을 마친 시간을 기준으로 우선 순위가 조정됩니다.새 프로세스는 항상 음수 우선 순위 값으로 제공되기 때문에 항상이 시나리오에서 먼저 실행되며 실제로 더 높은 (낮은 숫자 값) 우선 순위 으로 끝납니다. 그러나, 그것은 영원히 지속되지 않을 것입니다 - 새로운 프로세스는 더 크고 더 큰 우선 순위 값을 얻기 시작할 것입니다.
그러나이 책의 가정을 토대로 한 번에 약 100 개의 프로세스가 처리 시간을 기다리고 있기 때문에 짧은 실행 프로세스가 너무 많다는 가정도 있습니다. 일반적으로 프로세서주의를 모색하는 약 100 개의 프로세스가 될 것이므로 각 프로세스는 거의 동일한 시간을 가지게 될 것이고 곧 상대적인 숫자 우선 순위 값은 모두 서로 클러스터 될 것입니다 (즉, 우선 순위가 가장 높은 프로세스와 수치상의 차이가 거의 없음을 의미합니다 그리고 우선 순위가 가장 낮은 프로세스) 우선 프로세스가 실행 된 후에 프로세스를 실행하면 프로세스를 우선 순위에 추가하여 프로세스를 맨 아래 (또는 맨 아래)에 밀어 넣을 수 있습니다. 린스 앤 리피트 (Rinse and repeat)를하면 근본적으로 라운드 로빈 (round robin) 일이 발생합니다. 한 번에 약 100 개 정도의 짧은 프로세스가 존재한다고 가정 할 때, 각 프로세스는 프로세서의 1/100을 차지합니다.