NEWWG



NEWWG

     Creates a new, user-defined workgroup, either directly,
     via command line input, or indirectly, through a file. (NM)
     NOTE: THIS COMMAND IS AVAILABLE ONLY TO CUSTOMERS WHO HAVE
     PURCHASED THE HP 3000 WORKLOAD MANAGER (PRODUCT # B3879AA).

SYNTAX


NEWWG ^filename [;VALIDATE]

or

NEWWG [WORKGROUP=] workgrp
 [;MEMB_LOGON=] logon
 [;MEMB_PROGRAM=] program_file
 [;MEMB_QUEUE=] queue_attribute
 [;BASE=] base
 [;LIMIT=] limit
 [ [;MINQUANT=] min]
 [ [;MAXQUANT=] max]
 [ [;BOOST= {DECAY | OSCILLATE } ]
[ [;TIMESLICE=] tslice]
 [ [;MINCPUPCT=] minpercent]
 [ [;MAXCPUPCT=] maxpercent]
 [ [;POSITION=] existingwg]

NOTE

Misuse of this command can significantly degrade system operating efficiency.


PARAMETERS


Use the first parameter and option described below (filename and
VALIDATE) when you invoke the NEWWG command to specify an indirect
file. Use the remaining parameters to enter new workgroup information
at the command line.

filename The name of the indirect file which contains
workgroup specifications. The file name must
be preceded with the "^" (caret) character.

When you specify an indirect file, the current
user-defined workgroup configuration is replaced
with the valid workgroup specification in the file.
This action is atomic: either all workgroups
are created or, if there were syntax errors,
none are created. A system-wide scan is done
after all workgroups are created to determine
workgroup membership for all processes on the system.

Note that this is an indirect file, and not
a command file. A command file would have
a NEWWG command for each workgroup and a
system-wide scan would be done after each
workgroup creation. Creation would not be atomic.

Refer to the File Format section for a description
of the parameters valid for use within the indirect
file. They include all of the parameters valid for
the command-line specification except POSITION
since POSITION is actually the workgroup's position
within the indirect file.

VALIDATE Specify the VALIDATE option to check the indirect
file for the correct syntax and see the errors.
No workgroup replacement occurs. This option lets
you ensure that when you subsequently issue the
NEWWG command specifying this indirect file, the
operation will not fail due to syntax errors.

NEWWG allows positional parameters until you
specify the first high-level keyword.

workgrp The name of the workgroup you are creating.
This is a required parameter.

The workgroup name follows the convention for CI
variables and Job Control Words (JCWs) and can
be a maximum of 255 alphanumeric characters or
underscores, where the first character cannot
be numeric or an underscore. The user-specified
name (including case) is preserved, though
comparisons are case-insensitive. All 255
characters are significant.

The following names, expressed in any case (all
upper, all lower, or mixed), are unavailable:
AS_Default, BS_Default, CS_Default, DS_Default,
ES_Default, and Natural_wg.

The following parameters for logon, program file and queue attribute
constitute the membership criteria for the workgroup. You must specify
at least one membership criterion. You may enter multiple
specifications, using commas as delimiters. A parameter that you
do not specify is assumed to be a match.

OR is used between values within each parameter and, AND is used across
specified parameters. That is, a process must match one of the
specifications for each of the specified parameters. Membership
conflicts are resolved by assigning the process to the first matching
workgroup defined. That is, a first-fit algorithm is used. Once a
match is found no further workgroups are considered.

logon Specifies the job/session, user, and account
name of potential workgroup members. The
job/session name is optional, but if specified,
it must be enclosed in double quotes (" "). The
user and account name are required. Wildcarding
is supported. The format is shown below:

MEMB_LOGON = (logonname [,logonname]...)

Where logonname is:

"job/session name, username.acctname"

or

username.acctname

program_file Specifies the program files of potential
workgroup members. The program_file must
be a fully qualified MPE/iX file name or absolute
Hierarchical File System (HFS) file name. However,
wildcarding is supported. The format is shown
below:

MEMB_PROGRAM = (program_file [,program_file]..)

Note that for HFS file names, comparison is
case-sensitive. Thus, if the file exists in the
MPE name space, you must specify it in upper
case, for example, /SYS/PUB/WMTEST instead of
/sys/pub/wmtest.

queue_attribute Specifies the traditional queue attribute.

This parameter is provided for compatibility.
It enables the system manager to collect processes
into workgroups without having to change their
existing logon priority or job card. Any current
specification or alteration of the queue
(via HELLO, JOB, LINK, ALTPROC, AIFPROCPUT,
GETPRIORITY) will continue to set the queue
attribute, but this attribute can be used to
determine the workgroup membership of the process.
As new job streams or tasks are created, avoid
specifying the scheduling queue and allow
workgroup membership to be determined by the
other categories such as MEMB_LOGON and
MEMB_PROGRAM.

You can enter the following values for
queue_attribute: AS, BS, CS, DS, and ES.

MEMB_QUEUE = (queue_attribute [,queue_attribute]..)

base An integer specifying the highest priority
at which processes executing in the specified
workgroup begin their Dispatcher transactions.
The base is a required scheduling characteristic.

limit An integer specifying the lowest priority which
processes executing in the specified workgroup
can attain. The limit must be greater than or
equal to the base. The limit is a required
scheduling characteristic.

Priority is inversely related to the integer
number (for base and limit). A higher priority
process has a lower numeric priority. The priority
values for base and limit may range from 150 to 255.
While the full range is provided for compatibility,
it is recommended that the base priority not exceed
152. User processes running at priorities greater
than 152 can adversely affect system performance.

min The minimum number of milliseconds that a process
may use the CPU before its priority is reduced.
The min is a lower bound for the quantum value.
The quantum value determines the rate of priority
decay for processes within the workgroup. Values
range between 1 and 32767. The minimum quantum is
an optional scheduling characteristics with a
default value of 1 millisecond.

max The maximum number of milliseconds that a
process may use the CPU before its priority
is reduced. The max is an upper bound for the
quantum value. The quantum value determines
the rate of priority decay for processes within
the workgroup. The value of max must be greater
than or equal to the value of min. Again, values
range between 1 and 32767. The maximum quantum is
an optional scheduling characteristics with a
default value of 2000 milliseconds.

DECAY Indicates if the workgroup is to demonstrate the
default decay behavior associated with circular
queues. If set, a process will decay normally
to the limit priority and will return to the
base priority when the Dispatcher transaction is
completed. The boost property is an optional
scheduling characteristic with a default value of DECAY.

OSCILLATE Indicates if the workgroup is to demonstrate
oscillation. If set, a process will be placed
back to the base priority once its priority has
decayed to the limit priority, even if it has
not completed a Dispatcher transaction.

tslice The maximum number of milliseconds a process in the
workgroup can hold a CPU before returning to the
Scheduler to have its priority recalculated. Values
must be multiples of 100, with a minimum value of
100 and a maximum value of 32700. The timeslice is
an optional scheduling characteristic with a
default value of 200 milliseconds.

minpercent Indicates the minimum percent of time which
the CPU will be made available to the workgroup's
member processes. Within the target workgroup,
this CPU time is allocated according to the
processes' priorities. The workgroup is guaranteed
this minimum percentage of time even if higher-
priority processes in other workgroups are ready to run.

If the processes in the workgroup do not require as
much CPU time as their guaranteed minimum, that time
will be available to processes in other workgroups.
The default value for this optional workgroup
characteristic is that the workgroup is not
guaranteed any minimum CPU percent and that CPU
allocation is based on process priority only.

maxpercent Indicates the maximum percent of time which the CPU
will be made available to the workgroup's member
processes. The workgroup will be limited to this
maximum percentage of time even no other process in
another workgroup is ready to run. In other words,
a workgroup will be limited to this maximum
percentage of time even if the system must
remain idle for the remainder of the time.

The default value for this optional workgroup
characteristic is that there is no maximum which
would prevent a workgroup's processes from getting
the CPU time their priorities warrant.

existingwg The POSITION parameter, existingwg, indicates where
the new workgroup should be positioned within the
set of existing, user-defined workgroups. (Recall
that workgroups are maintained in an ordered file.)
The existingwg value is the name of an existing,
user-defined workgroup. The new workgroup will be
inserted before the existing workgroup. The
POSITION specification is optional. If omitted,
the new workgroup is appended to the list of
existing user-defined workgroups.

NOTE


You may want to define workgroups with "dummy" membership criteria
that would never match process attributes. Such workgroups will not
have natural members, but can be used as the target of an ALTPROC;WG=
command. Such workgroups should be placed after all user-defined
workgroups to minimize the number of workgroups that must be scanned
to determine process workgroup membership.

FILE FORMAT

     The NEWWG command will accept an indirect file as input. This
     file should be an ASCII file (for example, the file may be
     temporary or permanent and have fixed or variable length records).
     The file will contain the specifications for creating user-defined
     workgroups. The current workgroup configuration will be replaced
     by the workgroup configuration given in the indirect file.
     Workgroup creation will not begin until all specifications
     within the file have passed a syntax check. Furthermore, the system
     will consider the creation an atomic operation (for example,
     either all workgroups within the file will be created or none).

     A system-wide scan will be performed once all workgroups are
     created to determine process workgroup membership.

     The specification for an individual workgroup is given below.
     The parameters shown match those described when using the
     command line. The POSITION parameter is not valid within the
     indirect file. A workgroup's position in the list of workgroups
     is determined by the position within the file.

     Workgroup     = workgrp
     ;Memb_Logon   = (logon)
     ;Memb_Program = (program_file)
     ;Memb_Queue   = (queue_attribute)
     ;Base         = base
     ;Limit        = limit
     ;MinQuant     = min
     ;MaxQuant     = max
     ;Boost        = {DECAY | OSCILLATE}
     ;Timeslice    = tslice
     ;Mincpupct    = minpercent
     ;Maxcpupct    = maxpercent

     Multiple specifications are permitted within a particular
     membership category (with commas as delimiters), and each
     category need not be specified (unspecified categories are
     assumed matches). A minimum of one category is required.
     For example, if the only specification given were QUEUE=(CS),
     the workgroup will capture all processes with the CS queue
     attribute (with any logon, running any program).  Since only
     the QUEUE category has been specified, the other categories
     are assumed matches.  An "&" or [Return] may be used to indicate
     the continuation of a specification onto a new line.

     Only BASE and LIMIT are required scheduling parameters.  The
     others are optional and will be set to default values unless
     explicitly changed.

     The example above shows each parameter on a new line. However,
     the entire workgroup specification may reside in one physical
     record. The only restriction is that you may not have two
     workgroup specifications in the same physical record.

     Specifications may be "commented out" by using the COMMENT
     keyword, as shown below. Characters appearing on the same line
     and after the COMMENT keyword will be ignored.

     COMMENT  Workgroup     = Old_Finance_WG
     COMMENT  ;Memb_Logon   = @.TEST
     COMMENT  ;Memb_Program = EDITOR.PUB.SYS
     COMMENT  ;Memb_Queue   = ES
     COMMENT  ;Base         = 200
     COMMENT  ;Limit        = 230
     COMMENT  ;MinQuant     = 200
     COMMENT  ;MaxQuant     = 1000
     COMMENT  ;Boost        = DECAY
     COMMENT  ;Timeslice    = 400
     COMMENT  ;Mincpupct    = 20
     COMMENT  ;Maxcpupct    = 30

NOTE

Before you invoke the NEWWG command and specify an indirect file to
replace workgroups, you may want to use the SHOWWG command and redirect
the output to create an ASCII file that describes the existing
configuration.  For example, to create an ASCII file named "currentwg"
enter:

     SHOWWG @; format=wgfile > currentwg
     SAVE currentwg

Substitute a file name of your own choosing, and make certain that it
is unique.


OPERATION

     The system manager creates workgroups to reflect a partitioning
     of the system workload and control the allocation of the CPU(s)
     to user processes on the system. There is no hard limit to
     the maximum number of workgroups that a system may have. The
     system will always be configured with five default workgroups.
     The default workgroups exist to support system processes, and to
     provide backward compatibility.

     Each workgroup consists of three components, a name, membership
     criteria, and scheduling characteristics. The membership criteria
     (the MEMB_LOGON, MEMB_PROGRAM and MEMB_QUEUE parameters), determine
     process assignment.  Workgroup assignment is made at each process
     create, whenever one of the process attributes on which membership
     can be based is changed, and when workgroups are purged or new
     workgroups are created. Membership conflicts are resolved by
     keeping the workgroups in an ordered list. A process will be
     assigned to the first workgroup whose membership criteria is
     matched. That is, a first-fit algorithm is used. Once a match
     is found, no other workgroups are considered.  Therefore, it is
     appropriate to order your workgroup specifications from those
     with the most precise membership criteria, to those with more
     general membership criteria.

     The scheduling characteristics define the scheduling policies which
     govern processes within the workgroup. The MPE/iX Dispatcher is
     priority-driven, giving a CPU to the highest priority process that
     is ready to run. Each workgroup has a base and a limit,
     defining the priority range for processes within that workgroup.
     Processes will begin their Dispatcher transactions at the base
     priority and decay towards the limit priority as they consume
     system resources. The process priority will never drop below the
     limit of the workgroup. If the boost property of the workgroup
     is set to oscillate, the process priority will be reset to the
     base priority when it decays to the limit priority.
     Processes completing Dispatcher transactions (typically via a
     terminal read) are reset to the base priority.

     Each of the five default workgroups represents one of the five
     scheduling queues, AS, BS, CS, DS, and ES. A default workgroup
     has a specific queue's scheduling policies and specifies that
     scheduling queue as its only membership criteria. By defining
     the default workgroups as the last five workgroups in the
     ordered list, the Scheduler can guarantee that all processes
     will be assigned to a workgroup.

     The user-defined workgroups can control all user processes.
     System processes, however, are placed in one of the five default
     workgroups and handled appropriately by the Scheduler. A user
     can customize the workgroup characteristics to reflect the CPU
     scheduling needs of the various components of the system workload.

     The SHOWWG command offers a format option, WGFILE, whose output
     has a format suitable as input to NEWWG.  You may use CI I/O
     redirection to place the output from SHOWWG into a file. For
     example, SHOWWG @;FORMAT=WGFILE > filename, and then issue the
     SAVE command to save it.

     Creation of a new workgroup can affect the workgroup assignment
     of existing processes. As a result, the Scheduler will need to scan
     all processes on the system and adjust their workgroup membership
     as necessary.  This is referred to as a system-wide scan. For
     first release, system-wide scans are performed after each NEWWG
     command.  Therefore, an indirect file provides a performance
     advantage by allowing the definition of multiple workgroups with
     a single system-wide scan (once all workgroups are created).

     The NEWWG command may be issued from a session, job, program or
     in BREAK.  Pressing [Break] has no effect on this command.
     NEWWG requires System Supervisor (OP) or System Manager (SM)
     capability.

     The following default settings are established when the system is
     booted from the system disk (a START RECOVERY or START NORECOVERY)
     unless the user has customized a workgroup configuration.

Setting    ||AS_Default||BS_Default ||CS_Default||DS_Default||ES_Default
=  base    ||   13     ||  100      ||   152    ||   202    ||   240
= limit    ||   99     ||  150      ||   200    ||   238    ||   253
=   min    ||  N/A     ||  N/A      ||     1    ||  2000    ||  2000
=   max    ||  N/A     ||  N/A      ||  2000    ||  2000    ||  2000
= boost    ||  N/A     ||  N/A      || DECAY    || DECAY    || DECAY
= tslice   || 1000     || 1000      ||   200    ||   200    ||   200
=mincpupct ||  N/A     ||  N/A      ||   N/A    ||   N/A    ||   N/A
=maxcpupct ||  N/A     ||  N/A      ||   N/A    ||   N/A    ||   N/A

NOTE

Processes within the workgroup are not constrained to have their
priorities fall within the specified base and limit values.  N/A refers
to the fact that the scheduling characteristic is Not Applicable for the
system-defined workgroup. For example, processes within the AS_Default
or BS_Default workgroup (usually system processes) do not experience
decay. Therefore, these workgroups do not support the concept of a
quantum or boost priority.  Also, CPU percentages are not available
for the default workgroups; they apply only to user-defined workgroups.



EXAMPLE(S)

     The following example creates a user-defined workgroup named
     Program_Development:

     NEWWG Program_Development; memb_program= (editor.pub.sys,&
     qedit.@.@, hpedit.@.@);memb_logon=("nm@,@.mytest")]; base= 160;&
     limit= 170; boost= oscillate

     or (using positional parameters),

NEWWG Program_Development,memb_program=(editor.pub.sys,&
qedit.@.@, hpedit.@.@);memb_logon=("nm@,@.mytest")],160,&
170,,,oscillate

This workgroup has a base priority of 160, a limit of 170, the
default minimum and maximum quantum of 1 and 2000 milliseconds,
has an oscillating boost property, and the default timeslice of
200 milliseconds. The membership criteria requires a program of
editor.pub.sys or qedit.@.@ or hpedit.@.@, AND a logon equal
to nm@,@.mytest. This workgroup will be appended to the end of
the user-defined workgroups.

To create a second workgroup, ahead of the workgroup in the
previous example, enter:

NEWWG Program_Test; memb_logon= (@.test); base= 175;&
limit= 190; boost= oscillate; position= Program_Development

or (using positional parameters),

NEWWG Program_test,memb_logon=(@.test),175,190,,oscillate,,&
Program_Development

This workgroup has a base priority of 175, a limit of 190, the
default minimum and maximum quantum of 1 and 2000 milliseconds,
has an oscillating boost property, and the default of 300
milliseconds. The membership criteria requires a logon equal
to @.test.

To validate the indirect file named spec1.workgrp.system for
correctness, enter:

NEWWG ^spec1.workgrp.system; validate

To have NEWWG replace the current workgroup configuration with
the workgroups specified in spec1.workgrp.system, enter:

NEWWG ^spec1.workgrp.system

ADDITIONAL INFORMATION

Commands:   SHOWPROC, TUNE, SHOWQ, NEWWG, ALTWG, PURGEWG, SHOWWG

Manuals :   MPE/iX Intrinsics Reference Manual (32650-90028)
            Using the HP3000 Workload Manager (B3879-90001)