Пример #1
0
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));
    }
}
Пример #2
0
 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]));
 }
Пример #3
0
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;
        }
    }
}