proc_advocate man page




SYNOPSIS

       proc_advocate [-hVo] [-m manager-ior] [-P period] <-t task-ior|-n name>
       -- utility [argument ...]


DESCRIPTION

       The proc_advocate utility is a wrapper for managing unmodified programs
       with  the  CPU  broker.   The wrapper will monitor the CPU usage of the
       child process(es) and report this data  to  the  Broker.   Because  the
       wrapper  is  external  to  the  program,  it can only react to observed
       changes in CPU load, unlike modified programs which can  be  pro-active
       based on inputs to the periodic method.  Therefore, the Broker may have
       a hard time adjusting to the CPU usage pattern of the wrapped  process.

       The  wrapper requires either the -t option, which specifies an existing
       task object to use, or the -n  option,  which  specifies  that  a  task
       object should be created.  Currently, the created task is adapted using
       the MaxDecayTaskAdvocate, which adjusts the reservation to the  maximum
       value seen in the last few periods.  The task is then added to the man-
       ager and utility is executed.  While utility  runs,  the  proc_advocate
       determines  the  CPU  usage of itself and all of its child at intervals
       given by the -P option.  This data is then be sent to the Broker so  it
       can  adjust  the  reservation.   Management  of  the  utility ends when
       proc_advocate receives a SIGINT/SIGTERM or the utility finishes.

       Available options:


       -h     Print out a usage message.

       -V     Print out a version number.

       -o     Do not observe the child process or make reports.   Most  likely
              used with an advocate that makes its own observations.

       -m manager-ior
              The Broker::Manager IOR for this machine.  (Default: file://man-
              ager.ior)

       -t task-ior
              The IOR for the Broker::RealTimeTask that has been  created  for
              this process.  This is incompatible with the -n option.

       -n name
              The  name  to  use when creating a Broker::RealTimeTask for this
              process.  This is incompatible with the -t option.

       -P period
              The period of the process.  The value can be a number with units
              (e.g.  "60000000us",  "60000ms",  "60s", or "1m") or without, in
              which case it is assumed to be  microseconds.  The  time  should
              reflect  the  natural period of the process (e.g. 44.1khz for an
              audio player) or, if it is a server, the smallest period used by
              a client.  (Default: 33 milliseconds)


RESOURCE SET

       The resource set used for the proc_advocate and its child processes can
       be discovered or created automatically.  The proc_advocate  will  first
       check  to  see if it was already started in a resource set.  Otherwise,
       it tries to match the task  name  against  an  existing  resource  set.
       Finally,  if none of the other attempts succeeded, it will create a new
       resource set using the task name.


RETURN VALUES

       The child's exit value
              If utility started and exited normally.

       127    If utility could not be found.

       1-125  If there were any other problems.


EXAMPLES

       To manage sleep(1) using a created task object named "sleep" and with a
       period of a second.

              [nemo@anemone rbroker] proc_advocate -n sleep -P 1s -- sleep 20

       To  do the same as above, except with a existing task object referenced
       by "./task.ior".

              [nemo@anemone rbroker] proc_advocate -t file://task.ior -P 1s --
              sleep 20


SEE ALSO

       rktimes(1), broker_allup(1), cbhey(1), cpubroker(7)


AUTHOR

       The Alchemy project at the University of Utah.


NOTES

       The    Alchemy    project    can    be    found    on    the   web   at
       http://www.cs.utah.edu/flux/alchemy



CPU Broker 1.1.0              2004/03/08 16:51:54             PROC_ADVOCATE(1)

Man(1) output converted with man2html