HP 3000 Manuals

AIF Enhancements [ COMMUNICATOR 3000 MPE/iX General Release 5.0 (Core Software Release C.50.00) ] MPE/iX Communicators


COMMUNICATOR 3000 MPE/iX General Release 5.0 (Core Software Release C.50.00)

AIF Enhancements 

by Pat Alvarez, Gail Duro, Donna Gracyk, Jean-Eric Nierat and 
Narinder Sandhu 
Commercial Systems Division 

AIF:Operating System 

The Architected Interface Facility:  Operating System product, HP36374A
(version A.07.00), contains several enhancements that are described
in this article.  One major enhancement is the addition of the
Magneto-Optical Disk Library System Architected Interfaces.  These AIFs
externalize the Magneto-Optical device/media management functionality.
They provide application support for manipulating and selecting media
within an optical disk library system.  The application developer can
then use the file system to create, access and manage files in the same
way user volumes are used.  The Magneto-Optical Utility (MOUTIL) also
includes changes to support the new AIFs.

Another major enhancement includes changes to support the Workload
Manager.  The Workload Manager enhancements are intended to allow
developers to write applications and tools to monitor and control
processes that comprise the workload.

Existing AIF:OS architected interfaces contain enhancements to the
accounting, system configuration, and device areas to provide
informational access to security features configured through the HP 3000
Security Monitor/iX product.

The remaining AIF:OS enhancements provide access to new POSIX and
operating system functionality.

New Magneto-Optical Disk Library System AIFs 

The Magneto-Optical Disk Library System is a read-write optical disk
``jukebox'' containing a number of disk drive mechanisms, and currently
holds up to thirty-two disk media (volumes).  Under the control of the
host system, the magneto-optical device mounts and dismounts media from
the specified drive mechanism for storage.  The following AIFs
externalize magneto-optical device/media management functionality.

AIFMOALLOCATE.   

AIFMOALLOCATE allocates a magneto-optical media drive.  Optional items
include the following:

   *   An item to return the pin of the process allocating the drive.

   *   An item to specify the LDEV of the optical drive to allocate.

   *   An item to specify the media label.  The first drive contained in
       a magneto-optical device that can access the media label is
       allocated.

AIFMODEALLOCATE.   

AIFMODEALLOCATE deallocates a previously allocated drive.  The optional
item passes the pin to verify ownership for the optical media drive.

AIFMOMOUNT.   

AIFMOMOUNT physically and logically mounts the magneto-optical media by
loading it into a magneto-optical drive and mounting it into the file
system.  The optional items include:

   *   An item to pass the pin to verify ownership for the optical media
       drive.

   *   An item to request media prompting.

   *   An item to return the volume set name of the mounted media.

   *   An item to specify a nowait option.

AIFMODISMOUNT.   

AIFMODISMOUNT logically and physically dismounts previously mounted
magneto-optical media from a magneto-optical drive.  The optional items
include:

   *   An item to pass the pin to verify ownership for the optical media
       drive.

   *   An item to specify a nowait option.

AIFMOGET/PUT.   

AIFMOGET/PUT routines return or modify magneto-optical disk library
system information.  These include:

   *   Items to access the media label and volume set name.

   *   Items to return number of storage slots, number of drives, list of
       drive LDEVs, number of mail slots, and storage slot information.

New Workload Manager AIFs 

The Workload Manager gives system managers greater control over CPU
scheduling at the process level than that provided by traditional
scheduling subqueues.  As a result, system managers can monitor and
effectively manage system performance.  For example, system managers can
use the Workload Manager to guarantee a minimum percentage of CPU to a
set of users, or restrict them to a maximum percentage of the CPU. For
detailed information about the Workload Manager, see Using the HP 3000 
Workload Manager (B3879-90001).  Also see the Communicator articles
"Introducing New Workgroups on the HP 3000", in Chapter 3 and "The
Workload Manager Technical Overview", in Chapter 10 for more details.

All customers who update to version C.50.00 of MPE/iX will have five
system-defined workgroups on their systems.  Each system-defined
workgroup corresponds to one of the five traditional scheduling
subqueues.  The AS subqueue, for example, becomes the AS_Default
workgroup.  Other than the difference in nomenclature, however, there is
nothing that distinguishes the system-defined workgroup from their
counterpart, the scheduling subqueue.  With the purchase of Workload
Manager, system managers can create an essentially unlimited number of
user-defined workgroups to partition their workload.

A brief overview of the changes for the Workload Manager and the other
user requests are described below.

AIFCHANGELOGON.   

The AIFCHANGELOGON interface allows you to programmatically change the
logon environment.  This interface has been updated to automatically
evaluate the workgroup membership of the process after the change to the
new logon.  If the process changing its logon environment was an
artificial member of a workgroup, it will continue being its member.
However, if the process was a natural member of any workgroup its
membership is evaluated based on its new logon.

AIFPROCGET/PUT.   

The AIFPROCGET/PUT interfaces retrieve/set information for a specific
process (e.g., program name, files opened by a process, list of child
PIDs, etc.).  The enhancements include new items which perform the
following:

   *   Return, verify or modify the workgroup name to which the process
       currently belongs.

   *   Return or verify whether the process is an artificial member of
       its workgroup.

   *   Return the specified process to its natural workgroup.

   *   Return or verify the execution state of the process.

AIFSCGET/PUT.   

The AIFSCGET/PUT interfaces retrieve/set system configuration
information.  The enhancements include new items which perform the
following:

   *   Return or verify the number of currently configured workgroups.

   *   Return or verify the value denoting that a scan of all processes
       that belong to purged workgroups is in progress or not.

   *   Return or verify value denoting that a scan of all processes for
       reassignment to workgroups is in progress or not.

   *   Return or verify the number of times any workgroup data has
       changed.

AIFSYSWIDEGET.   

The AIFSYSWIDEGET interface allows you to retrieve a set of files,
processes, jobs/sessions, accounts, groups, users, or spoolfiles based on
a set of criteria specified by the user (e.g., find all files in a
particular fileset with a particular filecode).  The enhancement allows
you to retrieve a set of workgroups based on the criteria passed.  Some
of the enhancements to this interface include:

Process Area.   

The process area of the AIFSYSWIDEGET interface is used to retrieve a
list of processes that meet a specified criteria.  The new criteria is:

   *   New item to allow workgroup name as a criterion for search.

Workgroup Area.   

The workgroup area of the AIFSYSWIDEGET interface allows you to retrieve
a set of workgroups based on a set of criteria specified by the user.
The criteria are:

   *   Workgroup name - gets a list of matched workgroups.

   *   Logon/User specification - gets a list of workgroups that have the
       specified logon/user as a membership criteria.

   *   Program/File specification - gets a list of workgroups that have
       the specified program/filename as a membership criteria.

   *   Queue attribute - gets a list of workgroups that have the
       specified queue as a membership criteria.

   *   Base Priority specification - gets a list of workgroups that have
       the specified base priority as a scheduling characteristic.

   *   Limit Priority specification - gets a list of workgroups that have
       the specified limit priority as a scheduling characteristic.

   *   Minimum Quantum specification - gets a list of workgroups that
       have the specified minimum quantum as a scheduling characteristic.

   *   Maximum Quantum specification - gets a list of workgroups that
       have the specified maximum quantum as a scheduling characteristic.

   *   Boost Property - gets a list of workgroups that have the specified
       boost property value as a scheduling characteristic.

   *   Timeslice specification - gets a list of workgroups that have the
       specified timeslice value as a scheduling characteristic.

   *   Minimum CPU Percentage - gets a list of workgroups that have the
       specified minimum CPU percentage value as a scheduling
       characteristic.

   *   Maximum CPU Percentage - gets a list of workgroups that have the
       specified maximum CPU percentage value as a scheduling
       characteristic.

AIFWGADD.   

The AIFWGADD interface allows you to add a new workgroup to the current
list of workgroups.  When creating a new workgroup, you must specify a
workgroup name, at least one of the membership criteria, and the base and
limit priorities.  The rest of the membership criteria or scheduling
characteristics can either be specified or allowed to take their default
values.  The membership criteria and the scheduling characteristics are
passed by specifying the associated item numbers and items.

An addition of a new workgroup could effect the workgroup assignment of
existing processes.  When a new workgroup is added, a scan is performed
on all the processes on the system and their workgroup membership is
adjusted as necessary

AIFWGGET/PUT.   

The AIFWGGET/PUT interfaces allow you to return, verify or modify
information about a specified workgroup.  The scheduling characteristics
of a particular workgroup can be modified by AIFWGPUT. However, the
modification of the scheduling characteristics does not cause scanning of
the processes as they do not affect workgroup membership.  The
information returned/modified by this interface includes items that
perform the following:

   *   Return or verify whether a purge is pending for the indicated
       workgroup.

   *   Return or verify the logon category of the specified workgroup.

   *   Return or verify the program/file category of the specified
       workgroup.

   *   Return or verify the queue attribute of the specified workgroup.

   *   Return, verify or modify the base priority of the specified
       workgroup.

   *   Return, verify or modify the limit priority of the specified
       workgroup.

   *   Return, verify or modify the minimum quantum of the specified
       workgroup.

   *   Return, verify or modify the maximum quantum of the specified
       workgroup.

   *   Return, verify or modify the boost property of the specified
       workgroup.

   *   Return, verify or modify the timeslice of the specified workgroup.

   *   Return, verify or modify the minimum CPU percentage of the
       specified workgroup.

   *   Return, verify or modify the maximum CPU percentage of the
       specified workgroup.

   *   Return the quantum of the specified workgroup.

AIFWGPURGE.   

The AIFWGPURGE interface allows you to purge a workgroup from the current
list of workgroups.  A user can make multiple calls to AIFWGPURGE with
the default option (no purge-pending scan) and the last call to
AIFWGPURGE with the purge-pending scan option.  The multiple calls to
AIFWGPURGE with the default option result in purging of all the requested
workgroups.  The last call to AIFWGPURGE with the purge-pending scan
option results in scanning of the processes in all the purged workgroups
to determine new workgroup membership.  This sequence of calls prevents
scanning and reassignment of member processes at every workgroup purge.

A workgroup in the purge-pending
state no longer accepts any new members.  However, the workgroup exists
until a scan is performed or its last member process dies or is
reassigned.

AIFWGREPLACE.   

The AIFWGREPLACE interface accepts an opened file as an input parameter.
The ASCII file should contain the specifications for creating
user-defined workgroups.  The file establishes a new set of workgroups,
and deletes all existing workgroups.  The five default workgroups always
exist and cannot be deleted.  Creation of the new workgroups does not
occur until all specifications within the file have passed a syntax
check.  The creation of the workgroups in the file is an atomic operation
(i.e., either all workgroups within the file will be created or none).
If a semantic or syntax error occurs while processing the file,
AIFWGREPLACE returns a negative overall status.  The specific CI error
that occurred while processing the file is returned in the first three
items.

Existing AIF Enhancements 

Many of the existing AIF enhancements provide information access to new
POSIX features, HP 3000 Security Monitor/iX features, or general
operating system enhancements.

AIFACCTGET/PUT.   

AIFACCTGET/PUT interfaces now provide access to password management
features configured by the HP 3000 Security Monitor/iX product.  These
include:

   *   Existing item updates to support password encryption.

   *   New items to return security information for user password aging,
       required passwords, invalid users, and logon counts.

AIFDEVICEGET/PUT.   

AIFDEVICEGET/PUT interfaces return information for terminal logon access
features configured by the HP 3000 Security Monitor/iX product.  These
include:

   *   An item to return invalid terminal logon attempts.

   *   An item to return downed by security.

   *   An item to return the existence of a terminal password.

AIFFILEGGET/PUT.   

Existing items return information for the new Native Mode Message files.
The enhancement to AIFFILEGGET includes:

   *   New item to be used as an option to return information about the
       symbolic link itself or the object pointed to by the link, if the
       last component of the pathname is a symbolic link.

AIFFILELGET/PUT.   

AIFFILELGET/PUT contains enhancements for POSIX. These include:

   *   An item to return whether close on exec flag has been set.

   *   An item to return whether the append mode flag has been set.

   *   An item to return whether the non-block mode flag has been set for
       character special files, such as fifos, pipes, and so on.

AIFKSMCREATE.   

AIFKSAMCREATE has been enhanced to allow the ability to return a raw
KSAM/iX file structure with a new filename.  A new parameter file_name of
pathname_type has been added to the list of parameters.  If this new name
is specified, along with "group_name" and "acct_name", then the file is
created in MPE domain.  If directory is specified then a POSIX file is
created.  A directory option overrides the group_name and acct_name.

If file_name is specified and neither directory, nor group_name or
acct_name are specified then the file is created in the same domain as
the original file with a new name.

AIFPROCGET/PUT.   

AIFPROCGET/PUT have been enhanced for POSIX to include an item to return
whether a process has a nil environment.

AIFSCGET/PUT.   

AIFSCGET/PUT contains enhancements for POSIX, the SETCOUNTER command and
the HP 3000 Security Monitor/iX product.  These include:

   *   New items to return machine type and network node name.

   *   New items to return the global options set through the HP Security
       Monitor.

   *   Return or verify the number of times any workgroup data has
       changed.

   *   Return, verify or modify the lower limit of the range of job
       numbers to be assigned.

   *   Return, verify or modify the upper limit of the range of job
       numbers to be assigned.

   *   Return, verify or modify the lower limit of the range of session
       numbers to be assigned.

   *   Return, verify or modify the upper limit of the range of session
       numbers to be assigned.

   *   Return, verify or modify the lower limit of the range of input
       spoolids to be assigned.

   *   Return, verify or modify the number assigned to the next input
       spoolid, a value in the range 1..9999999.

   *   Return, verify or modify the upper limit of the range of input
       spoolids to be assigned.

   *   Return, verify or modify the lower limit of the range of output
       spoolids to be assigned.

   *   Return, verify or modify the number assigned to the next output
       spoolid, a value in the range 1..9999999.

   *   Return, verify or modify the upper limit of the range of output
       spoolids to be assigned.

AIFSYSWIDEGET.   

The AIFSYSWIDEGET interface has been enhanced to provide more flexibility
in error handling during HFS directory traversal.  (Not valid with MPE
file item 5001.)

   *   A new item has been added to allow you to specify whether the
       directory traversal should continue if a non-fatal error is
       detected (for example, bad ufid).

   *   When you want to catch directory errors, the file in error is
       returned in the search key where it can be processed, and then
       AIFSYSWIDEGET can be called again to resume the directory
       traversal.

   *   If AIFSYSWIDEGET encounters a symbolic link as a last component of
       a pathname, then it will not resolve the link.  The pathname of
       the resolved link can be retrieved by calling AIFFILEGGET.

The HFS directory traversal routines have also been updated to improve
AIFSYSWIDEGET performance when chaining is used (that is, passing in a
search key).

AIF:Measurement Interface 

The Architected Interface Facility:  Measurement Interface product,
HP36392A (version A.04.00), contains changes for HFS pathnames.

MIPROCGET/PUT.   

MIPROCGET/PUT routines have a new item to return HFS pathnames.

AIF:Procedure Exits 

The AIF:Procedure Exits (PE) product has been enhanced to support and
handle programs and executable libraries using Shared Globals.  The
enhancements to support Shared Globals are transparent to users of PE.

However, it's not recommended that developers use the new share option
when linking PE handlers since there is a risk of Name Collision.  A PE
handler may maintain information across invocations in global variables.
It most likely wants to hide them from the process being intercepted.  If
the process happens to use global variables with the same name as those
used by the handler, those variables will become shared between the
process and the handler.  The handler will no longer have a private copy
of those variables.

To illustrate this point, let's assume that a PE handler declaring a
global variable "foo" has been linked with the SHARE option.  This
handler will eventually intercept its target procedure.  The target
procedure could be called by a program/library sharing a global variable
called "foo".  The effect will be that when PE dynamically loads the
handler library, the variable "foo" in the handler will be bound to the
"foo" declared in the program or library.  Only one physical copy of
"foo" will exist, meaning that any modification to "foo" will affect both
the handler and the program/library, with potentially undesirable
results.



MPE/iX Communicators