2012-03-28 2 views
1

문제 : 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

문제가 다릅니다. 첫 번째 문제는 시간 퀀텀을 지정하지 않으므로 1 분에 비해 퀀텀이 매우 작다고 가정해야합니다. 두 번째 문제는 1 분 스케줄러 퀀텀을 명확하게 지정합니다.

두 번째 해결 방법과 관련된 수수께끼는 작업이 문자 순서로 실행되는 것으로 가정하는 이유입니다. 나는이 과정이 전 과정에 걸친 가정이라고 가정 할 수 있습니다. 그래서 학생들은 여기에 그것을 알기를 기대할 것입니다.

+0

퀀텀이 1 분이라고 가정 할 수 있습니다 (운동을 위해서). 나는 그것이 현실적이지 않고 1msec와 같아야한다는 것을 알고 있지만 계산을 더 쉽게하기 위해서 솔루션은 분명히 1 분 양자를 사용하고 있습니다. 그렇다면 두 번째 해결 방법이 맞습니까? 첫 번째 해결 방안에 관해서, 우리는 1 분 양자를 다루지 않기 때문에 왜 C는 10 분 후에 끝나고 3 분 또는 2 분 후에 끝나지 않을까요? 이해를 돕기 위해이 결과를 제공하는 수식/추론을 제게 제공 할 수 있습니까? –

+1

1 분 퀀텀이라고 가정하면 두 번째 솔루션은 정확합니다 (우선 순위는 무시하지만 다른 이야기입니다). 그러나 이것은 부당한 가정이며, 문제가 아니라면 그렇게하지 말아야합니다. CPU는 2 분의 CPU 시간이 필요하고 CPU의 1/5을 차지하기 때문에 10 분 후에 완료됩니다. 따라서 2 분의 CPU 시간을 얻으려면 10 분이 필요합니다. 이 때 모든 프로세스는 2 분의 CPU 시간을 얻었으므로 각 프로세스에 아직 필요한 양을 계산할 수 있습니다. 그 이후부터 다른 프로세스가 완료 될 때까지 1/4이됩니다. 등등. –

+0

이 문제는 분명히 우리 모두가 5 개의 일자리가 거의 같은 시간에 도착한다고 가정해야한다고 말하고 있습니다. 또한 라운드 로빈은 정의에 의한 우선 순위를 다루지 않습니다. 그러나 두 번째 해결책은 작업이 실행되고 중단되는 방식에 몇 가지 순서를 암시하는 것처럼 보입니다. A부터 B까지, C부터 D, E에서 A 등으로 돌아갑니다. 모든 작업이 함께 도착한다는 사실과 모순되지 않습니까? (순서가 없으므로) RR은 우선 순위를 부과하지 않습니까? –

0

실제로 '올바른'RR 알고리즘은 없습니다. RR은 단순히 순환 순서로 여러 작업을 예약하는 일반적인 개념을 기반으로하는 알고리즘의 모음입니다. 구현은 다양 할 수 있습니다 (예 : 작업 우선 순위를 고려하거나 무시할 수 있습니다. 또는 작업 길이 또는 기타 기능에 따라 우선 순위를 수동으로 설정할 수도 있습니다).

그래서 답은 - 두 알고리즘이 모두 정확하다고 보입니다.

관련 문제