| United States-English |
|
|
|
![]() |
Communicator e3000 MPE/iX Express 1 Based on Release 7.0: HP e3000 MPE/iX Computer Systems > Chapter 5 Technical ArticlesBIGPIN Feature: Support Up To 12000 Concurrent Processes. |
|
By Scott J. McClellan The maximum number of concurrent processes (sometimes referred to as MAXPIN) has been a key constraint limiting MPE/iX in high-growth, high-end customer environments. Removing this constraint is one of the key ingredients in Hewlett-Packard's continuing strategy to evolve MPE/iX -- providing growth for our high-end customers. The new MAXPIN limit in MPE/iX Release 7.0 Express 1 has been raised from 8190 to 12000. MPE/iX Release 7.0 Express 1 contains a new SYSGEN feature, which allows customers to enable support for greater than 8190 concurrent processes (referred to as BIGPIN).
The MPE/iX concurrent process limit has historically been limited by one of Process Management data structures called the Process Control Block (PCB). The PCB data structure predates MPE/iX as the key process management data structure on older MPE/V-based operating systems. The PCB was ported to MPE/iX and has existed as a Compatibility Mode data structure. The PCB is very heavily referenced by various components of the Compatibility Mode Operating System. Over the years, there have been many changes to the PCB data structure that have expanded its capacity. Starting with MPE/iX Release 7.0, the PCB has been rearchitected as Native Mode data structure. The PCB changes have been designed for maximal backward compatibility. As a result, existing CM or NM code which accesses the PCB should function correctly, (without modification) provided there are less than 8190 processes on the system. MPE/iX Release 7.0 introduced the concept of "BIGPIN." The term BIGPIN refers to a system's ability to support greater than 8190 concurrent processes. In MPE/iX Release 7.0 the CORE OS is BIGPIN capable; but the BIGPIN feature (which is Configurable) could not be enabled. In MPE/iX Release 7.0 Express 1 customers can enable the BIGPIN feature in sysgen. The "system" command, which is available in the "misc" area of sysgen, has been modified to enable/disable the BIGPIN feature. . To enable BIGPIN do the following:
MPE/iX has been enhanced to log, at runtime, certain events where programs execute operations that will not function correctly if the BIGPIN feature is enabled. Customers are encouraged to make sure that this event logging facility is enabled (which it should be by default) when they upgrade to Release 7.0. In particular, high-end customers who are potential candidates for turning on the BIGPIN feature (in a future release of MPE/iX) are encouraged to examine their system log files -- looking specifically for the new BIGPIN related events (described below). If any BIGPIN events are logged on a customer's system, the customer will need to contact the company responsible for the software in question. Hewlett-Packard will be making changes to some additional software products in future release of MPE/iX. There should be no BIGPIN related events logged by the MPE/iX operating system. If there are any events logged by MPE, please contact your HP support representative with all the details. For software supported by third-party software vendors, contact the vendor directly. Hewlett-Packard will be working with our software vendors to ensure they can make any necessary changes to support greater than 8190 concurrent processes.
The "SYSGEN>log/show slog" command can be used to display the current setting for various system logging events. The "status" corresponding to the "Program File Event" (event number 116) must be "ON." To display all "Program File Event" log records, use the "LOGTOOL>list" command. The list command allows the user to explicitly specify the logging event number in the "type=" parameter. To see only Program File Events, specify "type=116."
LOGTOOL will format Program File Events as shown in the example below. There are two important fields in this log record:
Example 5-2 LOGTOOL LOGTOOL>list log=587 type=116 SYSTEM ERROR LOG REPORT =======================Report Date/Time: THU, DEC 7, 2000 - 6:47 PM=======================================================================THU, DEC 7, 2000 6:45 PM LOG0587.PUB.SYS #S3 (PIN 74)PROGRAM FILE EVENTEVENT TYPE: BIGPIN:Get'My'PCB'Offset DELTA P: $0STATUS: $0 PROGRAM FILE NAME:PPINTEST.TESTPINS.SYS NM OFFSET: $0 USER: MANAGERGROUP: TESTPINS ACCOUNT: SYSJSNAME: USER: MANAGERGROUP: TESTPINS ACCOUNT: SYSJSNAME:=======================================================================THU, DEC 7, 2000 6:45 PM LOG0587.PUB.SYS #S3 (PIN 74)PROGRAM FILE EVENTEVENT TYPE: BIGPIN:SST 3 DELTA P: $0STATUS: $0 PROGRAM FILE NAME:PPINTEST.TESTPINS.SYS NM OFFSET: $0 USER: MANAGERGROUP: TESTPINS ACCOUNT: SYSJSNAME: USER: MANAGERGROUP: TESTPINS ACCOUNT: SYSJSNAME:=======================================================================THU, DEC 7, 2000 6:45 PM LOG0587.PUB.SYS #S3 (PIN 74)PROGRAM FILE EVENTEVENT TYPE: BIGPIN: LST 3 DELTA P: $0STATUS: $0 PROGRAM FILE NAME:PPINTEST.TESTPINS.SYS NM OFFSET: $0 USER: MANAGERGROUP: TESTPINS ACCOUNT: SYSJSNAME: USER: MANAGERGROUP: TESTPINS ACCOUNT: SYSJSNAME:=======================================================================TYPE DESCRIPTION COUNT====== ==================== ========== 116 PROGRAM FILE EVENT 3====== ==================== ==========Total records checked = 117. Records selected = 3.*********************************************************************** [Report Completed] At runtime, if a program executes an operation that is not BIGPIN compatible, MPE/iX will set a flag indicating that "event" occurred. When a process terminates, MPE/iX checks to see if any such flags are set; and, if so, it invokes the system logging facility to log the actual events (as Program File Event - type 116 - log records). Any given event will only be logged once for any given process (after that process terminates). It does not matter how many times a given process performs a given operation, the event will only be logged once. The table below lists all of the "Program File Events" that can potentially be logged. The "text" field refers to the "text" displayed (by LOGTOOL) in the "Event Type" field (see example above). The "Number" field is the actual numeric value associated with that Event Type.
For Event Types -101 through -211, the program will NOT function correctly with the BIGPIN feature enabled. You will need to resolve this issue with the appropriate "owner" before your system can have greater than 8190 processes executing concurrently.
You will need to determine the correct "owner" for each program that logs a BIGPIN event. You can find the name of the program that triggered the Event by looking at "Program File" field in the log record (using LOGTOOL - see above). Based on the name of the program, try to determine the correct "owner."
MPE/iX is a "one size fits all" operating system. The same version of MPE/iX runs on a broad range of systems - ranging from very low-end systems to very high-end (Enterprise Class) systems. MPE/iX has a feature known as "MAXPIN scaling." The purpose of MAXPIN scaling is to limit the MAXPIN value on low-end machines to a more appropriate number, and to scale the size of various OS data structures accordingly. The MAXPIN scaling algorithm improves resource utilization on low-end system (especially with respect to resident memory usage). The MAXPIN scaling algorithm has been around for several MPE/iX releases (originally introduced when MAXPIN was increased from 1559 to 3119 - Release 2.0 timeframe). When this algorithm was originally introduced, we supported several systems with VERY small minimum memory requirements. Many of these systems are now obsolete. The original algorithm was not updated to reflect changes in the HP e3000 product line. In Release 7.0, we have a new MAXPIN scaling algorithm that is much more appropriate, given today's low-end systems, and takes into account future enhancements to MPE/iX. These improvements will continue to increase the maximum MAXPIN value for future high-end systems. The original MAXPIN-scaling adjusted MAXPIN based on the amount of physical memory on a system. This will continue to be the case for Release 7.0. However, the algorithm uses a different physical memory values and different MAXPIN values. In the future, additional criteria may be added to the algorithm. In MPE/iX Release 7.0 Express 1, support for greater than 8190 processes will require > 2 GB of memory, the BIGPIN feature must be enabled, and the system must be an N-Class system. Below is a table that compares the MAXPIN scaling values for Release 6.5 (and before) and to MPE/iX Release 7.0 Express 1 scaling values. Physical Memory (m) <= MPE/iX Release 6.5 MPE/iX Release 7.0m < 32 MB 200 400 [2]32 MB <= m < 48 MB 400 400 [2]48 MB <= m < 64 MB 3000 400 [2]m = 64 MB 5460 400 [2]m > 64 MB 8190 400 [2]m <= 64 MB n/a [3] 40064 MB < m <= 256 MB 8190 [4] 1000256 MB < m <= 512 MB 8190 [4] 2000512 MB < m <= 1 GB 8190 [4] 40001 GB < m <= 2 GB 8190 [4] 8190m > 2 GB 8190 [4] 8190/12000 [1]
A new system variable, HPMAXPIN, has been defined in Release 7.0. HPMAXPIN will return the maximum number of concurrent processes supported on any given system. HPMAXPIN is a standard, pre-defined integer, read-only CI variable. Starting with MPE/iX Release 7.0, developers should ensure that their software is capable of handling PIN numbers greater than 8190. Once we support greater than 8190 processes, we will also be supporting > 9999. This means that PINs will require more than 4 ASCII digits to be represented in decimal. Third-party software developers and customers are encouraged to examine their software to ensure it is capable of handling 5-digit PIN numbers. There are a variety of ways that code can be affected by the change from 4- to 5-digit PINs. An obvious example is code that displays PIN number, but does not reserve enough room for 5-digits. A subtler example is code that uses the PIN to construct a unique temporary file name. If that code appends a 5-digit PIN to a "prefix" that is 4 digits, the size of the file name will overflow the 8 character limit (for MPE filenames). There are two MPE/iX CI commands that assume 4-digit PIN numbers in their command output. The two commands are :SHOWQ and :SHOWPROC. The MPE/iX development team worked with a set of key third-party software developers to determine the "best" way to change :SHOWQ and :SHOWPROC to accommodate 5-digit PIN numbers. In deciding the "best" approach, we had to evaluate two (somewhat) mutually exclusive objectives:
In the end we weighted the backward compatibility constraint higher, and selected the approach that minimized the risk of introducing compatibility issues. This resulted in slightly different approaches for the :SHOWQ command as opposed to the :SHOWPROC command. The :SHOWQ command is a much older MPE command - existing long before MPE/iX. The output of :SHOWQ is also much more "column oriented" (compared to :SHOWPROC). In general, users are discouraged from making assumptions regarding specific column numbers in command output. Various CI functions have been added in MPE/iX to assist users in parsing output without relying on column (e.g. the "word" function). However, given the fact that :SHOWQ has been around for a very long time, its columnar output, and given older scripts (etc.) tend to make more assumptions about column, we opted not to change the columns for :SHOWQ output. As a result, 5-digit PIN numbers will "run together" with the field that follows the PIN in :SHOWQ output. Fortunately, the field following PIN in :SHOWQ is a Job/Session number. Job/Session numbers are displayed as #Jxxxxx or #Sxxxxx. As a result, the output from :SHOWQ is still fairly "readable" even if a 5-digit PIN runs together with a Job/Session number. Example 5-4 :SHOWQ OUTPUT
Example 5-5 COLUMN NUMBERS FOR :SHOWQ
The :SHOWPROC command is a fairly new MPE/iX command. In addition, the output from :SHOWPROC is not columnar by nature. In particular, for the :SHOWPROC ;TREE command, it would be very difficult to parse the output using column numbers. Given all these reasons, we decided to change :SHOWPROC output to display PIN numbers in a field wide enough for 5-digits followed by a space (separating the PIN number from the next field on the output line). On Release 7.0, PIN numbers are left justified within the 5-digit field (they are left justified today in a 4-digit field). The :SHOWPROC command can be used in (essentially) three different ways:
Example 5-6 :SHOWPROC OUTPUT
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||