2012-04-26 2 views
0

cloudSim에서 cloudlet_1이 (실행 시간이라고 할 때) 시작해야한다고 어떻게 강요 할 수 있습니까?CloudSim에서 실행 명령 시행

나는 이런 식으로 몇 가지 일을하려고 :

cloudlet_2.setExecStartTime(cloudlet_1.getFinishTime()); 

하지만이 cloudlets의 양이 0.0 초에서 시작, 실행시에 아무런 영향을 미치지 않습니다.

cloudlet_1의 실행이 완료되기 전에 cloudlet_2가 실행을 시작하지 않거나 데이터 센터에 제출하지 않도록 강제 할 수있는 메커니즘이 있습니까?

시작 시간을 설정하거나 cloudlet_2 또는 다른 트릭에서 부울 조건을 부과 할 수 있습니다 ... ???

위의 요구 사항은 내가 다른 후 하나를 실행해야 cloudlets의 일부 파이프 라인 계산 패턴해야한다는 사실에서 비롯됩니다 (하지 번을.)

감사합니다.

+0

성능에 따라 두 번째 항목을 돌릴 수 있습니다. 'while (! cloudlet_1.done());'성능 향상을 위해'조건부 변수 '와'잠금 '을 사용할 수 있습니다. – twain249

+0

당신은 무엇을 의미합니까? while (! cloudlet_1.done()); ? 그것이 내가 원하는 것입니다. cloudSim에는 이러한 메소드 "done()"이 없습니다. – LeTex

+0

예제로 사용하고있는'done()'메서드가 없다고 생각했습니다. 'cloudSim'이 끝나는 시점을 알려주는 플래그/방법이 있습니까? – twain249

답변

0

스케줄링 정책에 따라 완전히 달라질 때 실행되는 클라우드 렛입니다. 여기서 필요한 것은 FCFS 정책과 같은 것입니다. 사실 Cloudsim의 기본 스케줄링 정책은 FCFS입니다.

귀하의 요구 사항에 따라 "cloudlet_2는 cloudlet_1 다음에 시작해야합니다.", VM/Cloudlet 스케줄링 정책을 변경해야합니다. 나는 당신이 필요로하는 것은 두 VM/cloudlet scheduler.Butt에 대한 SpaceSharedPolicy라고 생각합니다.

다른 스케줄링 정책을 적용하기위한, 당신은 Figure No 4 of this.

를 참조하여 코드에서 이러한 스케줄러를 변경하는 방법, 당신이 Cloudsim 패키지가 이미 examples를 참조 할 수 있습니다에 대한 수 사가지 경우가 있습니다. 예컨대

하면 VM 스케줄러를 변경할 경우, 라인 위 예 없음 188에서 파라미터 [VmSchedulerTimeShared 또는 VmSchedulerSpaceShared]을 변경할 수 있으며, 구름을 스케줄러를 변경하면 파라미터 [CloudletSchedulerTimeShared() 또는 CloudletSchedulerSpaceShared을 (변경)] 위의 예의 104 번 라인에서.