문제 : E를 통해라운드 로빈 스케줄링 : 두 가지 솔루션 - 어떻게 가능합니까?
다섯 일괄 작업 (A)는, 컴퓨터 센터에서 거의 같은 시간에 도착합니다. 그들은 10, 6, 2, 4, 8 분의 실행 시간을 예상했습니다. 그들의 (외부에서 결정된) 우선 순위는 각각 3, 5, 2, 1, 4이며 5가 최우선 순위입니다. 평균 프로세스 턴 시간을 결정합니다. 프로세스 전환 오버 헤드를 무시하십시오. 라운드 로빈 스케줄링의 경우, 시스템이 멀티 프로그래밍 중이며 각 작업이 CPU의 공평한 분배를 얻는다 고 가정합니다. 모든 작업은 완전히 CPU에 묶여 있습니다.
솔루션 # 1 다음 솔루션은 this page에서 온다 :
를 라운드 로빈의 경우, 처음 10 분간, 각 작업은 CPU의 1/5 가져옵니다. 10 분이 끝나면 C가 끝납니다. 다음 8 시간 동안 분 동안 각 작업은 CPU의 1/4을 얻은 후 D 시간이 끝납니다. 그런 다음 나머지 세 작업 각각은 B가 완료 될 때까지 6 분 동안 CPU의 1/3을 얻습니다. 5 개의 작업의 완료 시간은 평균 22 분 동안 10, 18, 24, 28, 30입니다.
솔루션 # 2 다음 솔루션은 코넬 대학교 (Cornell University)에서 유래이 here을 발견 할 수 있으며,에 의해, 문제가 (정확히 같은 형태로이 솔루션을 제공하더라도 이전에서 분명히 다르다 방법은) 나에게 더 의미가 있습니다 :
는 처리 시간이 작업이 도착하고 작업이 완료 사이에 을 경과 시간임을 기억하십시오. 모든 작업이 시간 0에 도달한다고 가정하므로 처리 시간은 단순히 완료되는 시간 인 이됩니다. (a) 라운드 로빈 : 아래의 테이블은 작업 시간이 각각의 시간 퀀텀 동안 처리되는 휴식 시간을 으로 나타냅니다. * 은 해당 퀀텀 중에 작업이 완료되었음을 나타냅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
A B C D E A B C* D E A B D E A B D* E A B E A B* E A E A E* A A*
결과는 다르다 : 첫 번째는 C 번째 C 8 분에 완료하는 반면, 예를 들어 10 분 후에 완료된다.
올바른 것은 무엇이며 그 이유는 무엇입니까? 나는 혼란 스럽다. 미리 감사드립니다!
퀀텀이 1 분이라고 가정 할 수 있습니다 (운동을 위해서). 나는 그것이 현실적이지 않고 1msec와 같아야한다는 것을 알고 있지만 계산을 더 쉽게하기 위해서 솔루션은 분명히 1 분 양자를 사용하고 있습니다. 그렇다면 두 번째 해결 방법이 맞습니까? 첫 번째 해결 방안에 관해서, 우리는 1 분 양자를 다루지 않기 때문에 왜 C는 10 분 후에 끝나고 3 분 또는 2 분 후에 끝나지 않을까요? 이해를 돕기 위해이 결과를 제공하는 수식/추론을 제게 제공 할 수 있습니까? –
1 분 퀀텀이라고 가정하면 두 번째 솔루션은 정확합니다 (우선 순위는 무시하지만 다른 이야기입니다). 그러나 이것은 부당한 가정이며, 문제가 아니라면 그렇게하지 말아야합니다. CPU는 2 분의 CPU 시간이 필요하고 CPU의 1/5을 차지하기 때문에 10 분 후에 완료됩니다. 따라서 2 분의 CPU 시간을 얻으려면 10 분이 필요합니다. 이 때 모든 프로세스는 2 분의 CPU 시간을 얻었으므로 각 프로세스에 아직 필요한 양을 계산할 수 있습니다. 그 이후부터 다른 프로세스가 완료 될 때까지 1/4이됩니다. 등등. –
이 문제는 분명히 우리 모두가 5 개의 일자리가 거의 같은 시간에 도착한다고 가정해야한다고 말하고 있습니다. 또한 라운드 로빈은 정의에 의한 우선 순위를 다루지 않습니다. 그러나 두 번째 해결책은 작업이 실행되고 중단되는 방식에 몇 가지 순서를 암시하는 것처럼 보입니다. A부터 B까지, C부터 D, E에서 A 등으로 돌아갑니다. 모든 작업이 함께 도착한다는 사실과 모순되지 않습니까? (순서가 없으므로) RR은 우선 순위를 부과하지 않습니까? –