function renice($pid, $app) { $root = 0; $salida = null; $root = comp(); $process = find($pid, $app); if ($process != null) { $put = $app->request(); $ni = $put->put('ni'); if (is_numeric($ni)) { if ((int) $ni > -21 && (int) $ni < 20) { if ($root == 1) { $par = "sudo ./renice.sh norberfaraz@gmail.com " . $ni . " " . $pid; } else { $par = "renice " . $ni . " " . $pid; } $salida = shell_exec($par); if ($salida == null) { $salida = "No tiene permisos para repriorizar el proceso con ID:" . $pid; $app->render(202, array('msg' => $salida, 'error' => 'true')); } else { $app->render(200, array('msg' => $salida, 'error' => 'false')); } } else { $app->render(202, array('msg' => 'la variable ni(prioridad) no esta bien definida, debe ser un valor numerico entre 20 y -20 2 ', 'error' => 'true')); } } else { $app->render(202, array('msg' => 'la variable ni(prioridad) no esta bien definida, debe ser un valor numerico entre 20 y -20 1 ' . $ni . 'h', 'error' => 'true')); } } else { $app->render(202, array('msg' => 'Proceso inexistente', 'error' => true)); } }
public function testComp() { $abs_all = function (array $items) { foreach ($items as &$item) { $item = abs($item); } return $items; }; $biggest = comp('max', $abs_all); $this->assertEquals(3, $biggest([1, 2, -3])); }
function calculate_priority() { global $score_board; global $baseI; global $baseM; global $baseCPU_TIME; global $baseFLT; global $baseMAXRSS; global $use_base_user; global $NUM_OF_EFFECTIVE_SUBMISSION; global $TOTAL_P_SCORE; global $USE_SCALABLE_TOTAL_P_SCORE; global $tmDeadline; global $CPU_TIME_UNIT; $mem_key = "m_peak"; $NUM_OF_EFFECTIVE_SUBMISSION = 0; if ($use_base_user) { for ($k = 0; $k < count($score_board); ++$k) { if ($score_board[$k]["id"] == "baseline") { break; } } if ($k < count($score_board)) { if (array_key_exists("I_refs", $score_board[$k]) && array_key_exists($mem_key, $score_board[$k])) { if ($score_board[$k]["I_refs"] != -1 && $score_board[$k][$mem_key] != -1) { $baseI = $score_board[$k]["I_refs"]; $baseM = $score_board[$k][$mem_key]; $baseCPU_TIME = $score_board[$k]["cpu_time"]; $baseFLT = $score_board[$k]["flt"]; $baseMAXRSS = $score_board[$k]["maxrss"]; } } } } for ($k = 0; $k < count($score_board); ++$k) { if (IsValidScoreboardEntry($k) && $score_board[$k]["check"] == 1 && GetSubmissionTime($score_board[$k]["id"]) <= $tmDeadline) { if ($score_board[$k]["I_refs"] >= INFINITY) { $perf_I1 = 0; } else { $perf_I1 = comp($baseI) / comp($score_board[$k]["I_refs"]); } if ($perf_I1 > 0) { $perf_I2 = 0; } else { if ($score_board[$k]["cpu_time"] >= INFINITY) { $perf_I2 = 0; } else { $perf_I2 = comp($baseCPU_TIME) / comp($score_board[$k]["cpu_time"]); } if ($score_board[$k]["cpu_time"] <= CPU_TIME_UNIT && $perf_I1 < $perf_I2) { $perf_I2 += $perf_I1 / 100; } } $perf_I = max($perf_I1, $perf_I2); $perf_M1 = comp($baseM) / comp($score_board[$k][$mem_key]); if ($score_board[$k]["flt"] >= INFINITY || $score_board[$k]["maxrss"] >= INFINITY) { $perf_M2 = 0; } else { $perf_M2 = comp($baseFLT * $baseMAXRSS) / comp($score_board[$k]["flt"] * $score_board[$k]["maxrss"]); } $perf_M = max($perf_M1, $perf_M2); // $perf_M = $perf_M2; $priority = $perf_I * $perf_M; //$priority = pow($priority, 0.5); // $priority = log($priority + 2, 2) / log(3,2); } else { $priority = 0; } $score_board[$k]["priority"] = $priority; if ($priority > 0) { $NUM_OF_EFFECTIVE_SUBMISSION++; } } if ($USE_SCALABLE_TOTAL_P_SCORE) { $TOTAL_P_SCORE = 80 * $NUM_OF_EFFECTIVE_SUBMISSION; if ($TOTAL_P_SCORE > 80 * 60) { $TOTAL_P_SCORE = 80 * 60; } } }