代码:
初来乍到 请多指教
function ListbusiestServers($k, $arrival, $load){
//记录服务器处理多少个请求
$handles = '';
//记录服务器上一个任务执行结束的时间
$endTime = '';
for ($i = 0; $i < count($arrival); $i++) {
// 如果第 (i % k) 个服务器空闲,那么对应服务器会处理该请求。将请求安排给下一个空闲的服务器(服务器构成一个环)
$j = $k;
$serverIndex = $i % $k;
while ($j > 0) {
if ($endTime[$serverIndex] <= $arrival[$i]) {
//请求放行
$handles[$serverIndex]++;
$endTime[$serverIndex] = $arrival[$i] + $load[$i];
break;
}
$j--;
$serverIndex = ($serverIndex + 1) % $k;
}
}
$result = array();
$max = $handles[0];
for ($i = 1; $i < $k; $i++) {
if ($handles[$i] > $max) {
$max = $handles[$i];
$result = array_push($result,$i);
} else if ($handles[$i] == $max) {
$result = array_push($result,$i);
}
}
return count($result);
}
$k = 3;//服务器台数
$arrival = [1, 2, 3, 4, 5];//进程
$load = [5, 2, 3, 3, 3]; //每个进程所需处理时间