client_state.xml

global_prefs.xml: (the host's preferences)

cc_config.xml: (the client configuration options)

The following control how long the simulation runs. Duration may not exceed TimeStep*10000.
Time step:
Duration:

The following controls enable various experimental policies. The standard policy is no checkboxes enabled.

Server does EDF simulation based on current workload?

Client uses Round-Robin (old-style) CPU scheduling?

"; } // ?? the actual function doesn't seem to work here function file_put_contents_aux($fname, $str) { $f = fopen($fname, "w"); if (!$f) die("fopen"); $x = fwrite($f, $str); if (!$x) die("fwrite"); fclose($f); } if ($_POST['submit']) { chdir("sim"); $prefix = tempnam("/tmp", "sim"); $x = $_POST['client_state']; if (!strlen($x)) { die("missing state"); } $state_fname = $prefix."client_state.xml"; file_put_contents_aux($state_fname, $x); $prefs_name = null; $config_name = null; $x = $_POST['global_prefs']; if (strlen($x)) { $prefs_fname = $prefix."global_prefs.xml"; file_put_contents_aux($prefs_fname, $x); } $x = $_POST['cc_config']; if (strlen($x)) { $config_fname = $prefix."cc_config.xml"; file_put_contents_aux($config_fname, $x); } $duration = $_POST['duration']; $delta = $_POST['delta']; if ($delta < 1) { echo "time step must be >= 1"; exit(); } if ($duration/$delta > 10000) { echo "duration/step must be <= 10000"; exit(); } $suw = ''; if ($_POST['suw']) { $suw = '--server_uses_workload'; } $rr_only = ''; if ($_POST['rr_only']) { $rr_only = '--cpu_sched_rr_only'; } $cmd = "./sim --duration $duration --delta $delta $suw --file_prefix $prefix $rr_only $llflag"; $x = system($cmd); Header("Location: ".$prefix."index.html"); } else { page_head("BOINC client simulator"); echo " This is a web interface to the BOINC client simulator. Fill in the following form to specify the parameters of your simulation. The results will be shown in your browser.

"; show_form(); } ?>