Google
 

Trailing-Edge - PDP-10 Archives - bb-k345a-sb - lodtst.rno
There is 1 other file named lodtst.rno in the archive. Click here to see a list.
.LM0;.RM70;.PS67,70;.SP1;.F;.J
.FG10;.C
^^SIMPKG\\
.B;.C
^SIMULATION ^PACKAGE FOR ^SYSTEM ^TESTING
.FG14
.TS23
	^DATE:##^FEBRUARY 1978
.BR
	^FILE:##^^SPST.RNO\\
.BR
	^VERSION:##1
.FG14
^THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ^DIGITAL ^EQUIPMENT ^CORPORATION.
^DIGITAL ^EQUIPMENT ^CORPORATION ASSUMES NO RESPONSIBILITY FOR ANY ERRORS
THAT MAY APPEAR IN THIS DOCUMENT.
.B
^THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED UNDER A LICENSE
AND MAY BE USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
.B
^DIGITAL ^EQUIPMENT ^CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE AND
RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY ^DIGITAL.
.FG5
^COPYRIGHT C 1978 ^DIGITAL ^EQUIPMENT ^CORPORATION, ^MAYNARD, ^MASS.
.PG.FG7.NF.NJ.LM0.RM70.PS67,70.C
^^CONTENTS\\
.B3.I65
^PAGE
.B1
.B1
.LITERAL 1
CHAPTER  1   INTRODUCTION                                        1-1  
.END LITERAL
.B1
.LITERAL 1
CHAPTER  2   DESCRIPTION OF PROGRAMS                             2-1  
.END LITERAL
.B1
.LITERAL 1
         2.1 LODTST                                              2-1  
.END LITERAL
.LITERAL 1
         2.2 SIMULATED USER JOBS                                 2-1  
.END LITERAL
.B1
.LITERAL 1
CHAPTER  3   HOW TO RUN THE SIMULATION PACKAGE                   3-1  
.END LITERAL
.B1
.LITERAL 1
         3.1 MODULO OPTION                                       3-1  
.END LITERAL
.LITERAL 1
         3.2 CATEGORY OPTION                                     3-2  
.END LITERAL
.LITERAL 1
         3.3 COMMANDS DURING TEST OPERATION                      3-3  
.END LITERAL
.BR;.LM9;.TS65
3.4 ^^END-OF-TEST PROCEDURE\\	3-3
.LM0
.B1
.LITERAL 1
CHAPTER  4   EXPLANATION OF ERROR MESSAGES                       4-1  
.END LITERAL
.B1
.LITERAL 1
         4.1 ERRORS FROM LODTST                                  4-1  
.END LITERAL
.LITERAL 1
         4.2 ERRORS FROM SIMULATED USER JOBS                     4-3  
.END LITERAL
.B1
.LITERAL 1
CHAPTER  5   INSTALLATION-DEPENDENT PARAMETERS                   5-1  
.END LITERAL
.B1
.LITERAL 1
         5.1 LODTST PARAMETERS                                   5-1  
.END LITERAL
.LITERAL 1
         5.2 SIMULATED USER JOB PARAMETERS                       5-2  
.END LITERAL
.B1
.LITERAL 1
CHAPTER  6   SAMPLE RUNS                                         6-1  
.END LITERAL
.B1
.LITERAL 1
         6.1 SAMPLE RUN 1                                        6-1  
.END LITERAL
.LITERAL 1
         6.2 SAMPLE RUN 2                                        6-2  
.END LITERAL
.LM0
.NUMBER CHAPTER 1
.CH ^&INTRODUCTION\\\&##
\\^THIS DOCUMENT DESCRIBES A JOB SIMULATION PACKAGE DEVELOPED BY
THE ^ACADEMIC ^COMPUTER ^CENTER AT ^WESTERN ^MICHIGAN ^UNIVERSITY.
^THE PACKAGE CONSISTS OF A MASTER CONTROL PROGRAM AND A NUMBER
OF USER JOBS THAT SIMULATE VARIOUS TYPES OF USER ACTIVITY.
.B
^THE OBJECTIVES OF THE SIMULATION PACKAGE ARE:
.LS;.LE;^TO PROVIDE A KNOWN, REPRODUCIBLE SYSTEM LOAD THAT
CAN BE USED TO EVALUATE SYSTEM PERFORMANCE WHEN SOFTWARE OR HARDWARE CHANGES ARE MADE.
.LE;^TO PROVIDE A VERY HEAVY, COMPLEX JOB MIX THAT CAN BE USED TO VERIFY
SYSTEM SOFTWARE RELIABILITY WHEN A NEW MONITOR SYSTEM IS LOADED.
.LE;^TO PROVIDE A SIMULATED SYSTEM LOAD THAT CAN BE USED TO ISOLATE INTERMITTENT
HARDWARE FAILURES THAT OCCUR UNDER THE ^^TOPS\\-10 MONITOR
BUT DO NOT OCCUR UNDER FIELD SERVICE DIAGNOSTICS.
.ELS
^THE MASTER CONTROL PROGRAM (^^LODTST\\) READS USER-SPECIFIED TEST PARAMETERS
AND PERFORMS ALL NECESSARY DETAILS OF TEST EXECUTION.
^IT LOGS IN THE DESIRED NUMBER OF SIMULATED USER JOBS
OF EACH TYPE, STARTS THE JOBS EXECUTING, AND PRINTS
^^SYSTAT\\S AT THE SPECIFIED INTERVAL.
.B
^FOR MANY TESTS, THE ^^SYSTAT\\S PROVIDE SUFFICIENT INFORMATION TO EVALUATE
SYSTEM PERFORMANCE.
^IN OTHER CASES, ADDITIONAL INFORMATION MUST BE RECORDED AND PRINTED USING THE ^^DEC\\SYSTEM-10 ^SYSTEM
^PERFORMANCE ^EVALUATION ^PACKAGE (^^PERF\\).
.B
^A COMPLETE SIMULATION RUN NORMALLY INVOLVES RUNNING ^^SCDSET\\ TO DEFINE
SCHEDULING PARAMETERS, ^^LODTST\\ TO LOG IN THE SIMULATED JOBS, AND ^^LINES\\
TO RECORD PERFORMANCE DATA.
^TO SIMPLIFY OPERATOR INTERACTION, THE TEST CAN BE RUN UNDER AN
^^OPSER.ATO\\ FILE.
^THE COMMANDS TO RUN ^^SCDSET, LODTST\\, AND ^^LINES\\ ARE
STORED IN THE .^^ATO\\ FILE.
^PARAMETER DATA FOR ^^SCDSET\\ AND ^^LODTST\\ ARE READ FROM DISK FILES.
^CHAPTER 6 CONTAINS EXAMPLES OF THIS TECHNIQUE.
.NUMBER CHAPTER 2
.CH ^&^^DESCRIPTION OF PROGRAMS\&\\##
.HL1 ^&LODTST\&\\
\\^THE ^^LODTST\\ PROGRAM IS THE MASTER CONTROL PROGRAM FOR THE SIMULATION PACKAGE.
^IT READS THE USER-SPECIFIED TEST PARAMETERS, LOGS IN THE SPECIFIED
NUMBER OF JOBS OF EACH TYPE, AND TAKES ^^SYSTAT\\S AT THE USER-SPECIFIED INTERVAL.
.B
^^LODTST\\ LOGS IN AND ^^RUNS\\ ALL OF THE SIMULATED USER JOBS USING ONE
PSEUDO-^^TTY\\.
^THE USER JOBS HIBERNATE UNTIL ^^LODTST\\ HAS LOGGED IN ALL OF THEM.
^^LODTST\\ THEN WAKES ALL OF THE JOBS AT THE SAME TIME.
.B
^^LODTST\\ REQUESTS ^^SYSTAT\\S THROUGH A SEPARATE JOB THAT IS CONTROLLED WITH
A PSEUDO-^^TTY\\.
^BOTH ^^LODTST\\ AND ITS ^^SYSTAT\\ JOB RUN IN A HIGH-PRIORITY QUEUE TO PROVIDE PRECISE TIMING OF ^^SYSTAT\\S.
.B
^AT THE END OF THE SIMULATION RUN, ^^LODTST\\ PRINTS AN ENDING
^^SYSTAT\\ AND EXECUTES AN END-OF-TEST PROCEDURE THAT ALLOWS THE SIMULATED USER JOBS
TO EXIT GRACEFULLY AND DELETE ANY DISK FILES THEY MAY HAVE CREATED.
.B
^FOR ANY PROBLEMS ENCOUNTERED, ^^LODTST\\ LOGS AN ERROR MESSAGE ON ITS CONTROLLING ^^TTY\\.
^FOR SEVERE ERRORS, THE ENTIRE SIMULATION IS TERMINATED.
^FOR LESS SERIOUS ERRORS, THE SIMULATION CONTINUES.
^CHAPTER 4 CONTAINS A COMPLETE LIST OF ALL ERROR MESSAGES FROM THE SIMULATION
PACKAGE.
.B
^SECTION 2.2 DESCRIBES THE SIMULATED USER JOBS SUPPLIED WITH THE PACKAGE.
^ADDITIONAL JOB TYPES MAY BE ADDED AT YOUR INSTALLATION'S DISCRETION.
^CHAPTER 5 CONTAINS A DESCRIPTION OF THE PROCEDURES FOR DEFINING JOB NAMES AND THE
AREAS THEY ARE TO BE RUN FROM.
.HL1 ^&SIMULATED USER JOBS\&\\
\\^THE SIMULATED USER JOBS ARE MADE UP OF CALLS TO STANDARD ROUTINES DEFINED IN A UNIVERSAL FILE.
^THE STANDARD ROUTINES SELECT JOB SIZE, EXECUTE ^^CPU\\ LOOPS,
READ AND WRITE DISK RECORDS, OPEN DEVICE CHANNELS, AND SO FORTH.
^THE RANGES OF JOB SIZE, LENGTH OF ^^CPU\\ LOOP, NUMBER OF DISK RECORDS,
AND SO FORTH, ARE DETERMINED BY DRAWING RANDOM NUMBERS FROM UNIFORM OR EXPONENTIAL
DISTRIBUTIONS AND APPLYING A BASE AND RANGE FACTOR DEFINED BY ADAPTATION
PARAMETERS CONTAINED IN EACH USER PROGRAM.
^DEFAULT VALUES FOR EACH PARAMETER ARE PROVIDED WITH THE SIMULATION PACKAGE.
^CHAPTER 5 CONTAINS INSTRUCTIONS ON HOW TO MODIFY THESE PARAMETERS.
.B
^FOR ANY PROBLEMS ENCOUNTERED BY A SIMULATED USER JOB, AN ERROR MESSAGE IS
LOGGED ON THE TERMINAL ASSOCIATED WITH DEVICE ^^OPR\\.
^FOR SOME ERROR CONDITIONS, THE JOB WILL SLEEP FOR A DEFINED INTERVAL AND
TRY THE FUNCTION AGAIN LATER.
^FOR OTHER ERROR CONDITIONS, THE JOB WILL ABANDON THE FUNCTION FOR THIS CYCLE.
^IN EITHER CASE, THE SIMULATION RUN WILL BE ALLOWED TO CONTINUE.
^CHAPTER 4 CONTAINS A DESCRIPTION OF THE ERROR CODES PRINTED BY SIMULATED USER JOBS AND AN ANALYSIS
OF THEIR CAUSES AND IMPACT ON TEST INTEGRITY.
.B
^A DESCRIPTION OF THE PROGRAM LOOP EXECUTED BY EACH OF THE SIMULATED USER JOBS IS GIVEN BELOW.
^THE END OF THIS CHAPTER CONTAINS A DETAILED EXPLANATION
OF THE VARIOUS STANDARD ROUTINES.
.B;.LM16;.TS16;.I-10
^^LODIO\\#-	^I/^O BOUND JOB.
.LS;.LE;^DO CORE SIZE SELECTION (^^RANCOR\\)
.LE;^DO DISK ^I/^O (^^RANDSK\\)
.LE;^REPEAT FROM STEP 1
.ELS
.I-10
^^LODCPU\\#-	^^CPU\\ BOUND JOB.
.LS;.LE;^DO CORE SIZE SELECTION (^^RANCOR\\)
.LE;^DO UNIFORM ^^CPU\\ LOOP (^^RANCPU\\)
.LE;^REPEAT FROM STEP 1
.ELS
.I-10
^^LODAVE\\#-	^AVERAGE JOB.
.LS;.LE;^DO CORE SIZE SELECTION (^^RANCOR\\)
.LE;^DO UNIFORM SLEEP (^^RANSLP\\)
.LE;^DO UNIFORM ^^CPU\\ LOOP (^^RANCPU\\)
.LE;^DO DISK ^I/^O (^^RANDSK\\)
.LE;^REPEAT FROM STEP 1
.ELS
.I-10
^^LODPQ\\1#-	^CONVERSATIONAL JOB.
.LS;.LE;^DO CORE SIZE SELECTION (^^RANCOR\\)
.LE;^DO EXPONENTIAL SLEEP LOOP (^^EXPSLP\\)
.LE;^DO EXPONENTIAL ^^CPU\\ LOOP (^^EXPCPU\\)
.LE;^REPEAT FROM STEP 1
.ELS
.I-10
^^LODSLP\\#-	^SLEEP JOB.
.LS;.LE;^DO CORE SIZE SELECTION (^^RANCOR\\)
.LE;^DO UNIFORM SLEEP (^^RANSLP\\)
.LE;^REPEAT FROM STEP 1
.ELS
.I-10
^^LODCOR\\#-	^CHANGE HIGH- AND LOW-SEGMENT SIZE.
.LS;.LE;^DO HIGH- AND LOW-SEGMENT SIZE SELECTION (^^RANHGH\\)
.LE;^REPEAT FROM STEP 1
.ELS
.PG;.I-10
^^LODOPN\\#-	^OPEN DEVICE CHANNELS.
.LS;.LE;^OPEN A DEVICE (^^RANOPN\\)
.LE;^REPEAT FROM STEP 1
.ELS
.B;.LM0
^THE FOLLOWING IS A DESCRIPTION OF THE STANDARD ROUTINES IN THE ^^LODUNV\\ UNIVERSAL FILE.
^THEY ARE CALLED FROM THE SIMULATED USER JOBS SUPPLIED WITH
THE PACKAGE AND MAY BE USED TO CREATE ADDITIONAL JOBS AT
YOUR DISCRETION.
.B;.LM16;.TS16;.I-10
^^RANCOR\\#-	^DO CORE SIZE SELECTION.
.B
^COUNT THE NUMBER OF TIMES ENTERED AND CHANGE THE LOW-SEGMENT CORE SIZE
EVERY TENTH TIME IT IS ENTERED.
^THE FORMULA FOR SELECTING NEW CORE SIZE IS:
.B;.I5
CORE SIZE = (^^RAN0#*#CORRNG)#+#CORBAS#+#MINSIZ\\
.B
WHERE CORE SIZE IS IN PAGES.
^^RAN0\\ IS A RANDOM NUMBER IN THE RANGE 0 TO 1 FROM THE UNIFORM DISTRIBUTION.
^^CORRNG\\ IS THE CORE SIZE RANGE PARAMETER DEFINED IN THE CALLING PROGRAM.
^^CORBAS\\ IS THE BASE CORE SIZE.
^^MINSIZ\\ IS THE SIZE OF THE CALLING PROGRAM.
.B
^THE DEFAULT VALUES OF 0 FOR ^^CORBAS\\ AND 35.0 FOR ^^CORRNG\\
IMPLY A RANGE OF 0 TO 35 PAGES PLUS ^^MINSIZ\\.
.B;.I-10
^^RANDSK\\#-	^DO DISK ^I/^O.
.B
^THIS ROUTINE WRITES A RANDOM NUMBER OF RECORDS ON THE
PUBLIC DISK STRUCTURE, READS THE RECORDS BACK, AND
COMPARES THE DATA TO CHECK FOR HARDWARE FAILURES.
^THE DATA WRITTEN IS A ROTATING BIT PATTERN.
^THE UNITS SELECTED INCLUDE ALL STRUCTURES IN THE SEARCH LIST FOR THE
AREA FROM WHICH THE PROGRAM IS RUN.
.B
^THE NUMBER OF WORDS WRITTEN IS DETERMINED BY THE FORMULA:
.B;.I5
WORDS#=#(^^RAN1#*#BLKRNG)#+#BLKBAS\\
.B
WHERE ^^RAN\\1 IS A RANDOM NUMBER IN THE RANGE 0 TO 1 FROM A
UNIFORM DISTRIBUTION.
^^BLKRNG\\ IS THE INSTALLATION-DEPENDENT RANGE PARAMETER FOR DISK WRITES.
^^BLKBAS\\ IS THE BASE NUMBER OF WORDS.
.B
^THE DEFAULT VALUES OF 4096 FOR ^^BLKRNG\\ AND 0 FOR ^^BLKBAS\\
IMPLY THAT A RANGE OF 0 TO 4095 WORDS ARE WRITTEN (0 TO 32 BLOCKS).
.B
^THE NUMBER OF BUFFERS USED IS DETERMINED BY THE SAME RANDOM NUMBER AS THE NUMBER OF WORDS WRITTEN.
.B;.I5
BUFFER#=#(10#*#^^RAN\\1)#+#1
.B
WHICH IMPLIES A RANGE OF 1 TO 10 BUFFERS.
.PG;.PS68,70;.B;.I-10
^^RANSLP\\#-	^DO UNIFORM SLEEP.
.B
^THIS ROUTINE EXECUTES A SLEEP MONITOR CALL WITH THE LENGTH OF SLEEP DETERMINED BY THE FORMULA:
.B;.I5
SLEEP#=#(^^RAN2#*#^^SLPRNG)#+#SLPBAS\\
.B
WHERE ^^RAN\\2 IS A RANDOM NUMBER IN THE RANGE 0 TO 1 FROM A UNIFORM DISTRIBUTION.
^^SLPRNG\\ IS THE INSTALLATION-DEPENDENT SLEEP RANGE.
^^SLPBAS\\ IS THE BASE SLEEP TIME.
.B
^THE DEFAULT VALUES OF 60.0 FOR ^^SLPRNG\\ AND 0 FOR ^^SLPBAS\\
IMPLY A RANGE OF 0 TO 59 SECONDS.
.B;.I-10
^^RANCPU\\#-	^DO UNIFORM ^^CPU\\ LOOP.
.B
^THIS ROUTINE EXECUTES A ^^CPU\\ LOOP OF LENGTH:
.B;.I5
LENGTH#=#((^^RAN3#*#CPURNG)#+#CPUBAS\\)/^^FACTOR\\
.B
WHERE ^^RAN\\3 IS A RANDOM NUMBER IN THE RANGE 0 TO 1 FROM A UNIFORM DISTRIBUTION.
^^CPURNG\\ IS THE INSTALLATION-DEPENDENT RANGE FACTOR.
^^CPUBAS\\ IS THE INSTALLATION-DEPENDENT BASE ^^CPU\\ LENGTH AND ^^FACTOR\\ IS A SCALING PARAMETER TO DETERMINE
THE NUMBER OF ^^SOJG\\S THAT CAN BE EXECUTED PER SECOND ON A ^^KA, KI\\, OR ^^KL\\.
.B
^^FACTOR\\ IS DETERMINED AUTOMATICALLY BY THE PROGRAM, DEPENDING
ON THE PROCESSOR TYPE.
^WITH THE DEFAULT VALUES OF 1 SECOND FOR ^^CPURNG\\ AND 0.5 SECOND FOR ^^CPUBAS\\,
THIS IMPLIES A RANGE OF 0.5 TO 1.5 SECONDS.
.B;.I-10
^^EXPSLP\\#-	^DO EXPONENTIAL SLEEP.
.B
^THIS ROUTINE EXECUTES A SLEEP MONITOR CALL WITH THE LENGTH OF SLEEP:
.B;.I5
SLEEP#=#^^MIN\\#((^^EXRAN2#*#SLPRNX),#SLPMAX\\)
.B
WHERE ^^EXRAN\\2 IS A RANDOM NUMBER IN THE RANGE 0 TO INFINITY FROM AN EXPONENTIAL
PROBABILITY DENSITY FUNCTION WITH A MEAN OF 1.
^^SLPRNX\\ IS THE INSTALLATION-DEPENDENT DESIRED MEAN SLEEP TIME.
^^SLPMAX\\ IS THE MAXIMUM SLEEP TIME.
.B
^THE DEFAULT VALUES OF 6 SECONDS FOR ^^SLPRNX\\ AND 60 SECONDS FOR ^^SLPMAX\\ IMPLY A RANGE OF 0 TO 60 SECONDS
WITH A MEAN OF ABOUT 6 SECONDS.
.B;.I-10
^^EXPCPU\\#-	^DO EXPONENTIAL ^^CPU\\ LOOP.
.B
^THIS ROUTINE EXECUTES A ^^CPU\\ LOOP OF LENGTH:
.B;.I5
LENGTH#=#^^MIN\\#((^^EXRAN3#*#CPURNX),#CPUMAX\\)/^^FACTOR\\
.B
WHERE ^^EXRAN\\3 IS A RANDOM NUMBER IN THE RANGE 0 TO INFINITY FROM AN EXPONENTIAL
PROBABILITY DENSITY FUNCTION WITH A MEAN OF 1.
^^CPURNX\\ IS THE INSTALLATION-DEPENDENT DESIRED MEAN ^^CPU\\ TIME.
^^CPUMAX\\ IS THE MAXIMUM ^^CPU\\ TIME.
.B
^THE DEFAULT VALUES OF 0.1 SECOND FOR ^^CPURNX\\ AND 1.0 SECOND FOR ^^CPUMAX\\
IMPLY A RANGE OF 0 TO 1 SECOND WITH A MEAN OF ABOUT 6 TICKS.
.PG;.PS67,70;.B;.I-10
^^RANHGH\\#-	^DO HIGH- AND LOW-SEGMENT SIZE SELECTION.
.B
^THIS ROUTINE CHANGES THE HIGH- AND LOW-SEGMENT SIZE EVERY TIME IT IS ENTERED.
.B
^THE NEW SIZE FOR HIGH SEGMENT IS (IN PAGES):
.B;.I5
HIGH SEGMENT#=##(^^RAN0#*#HGHRNG)#+#HGHBAS\\
.B
^THE NEW SIZE FOR LOW SEGMENT IS (IN PAGES):
.B;.I5
LOW SEGMENT#=##(^^RAN1#*#LOWRNG)#+#LOWBAS#+#MINSIZ\\
.B
WHERE ^^RAN\\0 AND ^^RAN\\1 ARE RANDOM NUMBERS IN THE RANGE
0 TO 1 FROM A UNIFORM DISTRIBUTION.
^^HGHRNG\\ IS THE RANGE FACTOR FOR HIGH SEGMENT.
^^HGHBAS\\ IS THE BASE HIGH-SEGMENT SIZE.
^^LOWRNG\\ IS THE RANGE FACTOR FOR LOW SEGMENT.
^^LOWBAS\\ IS THE BASE LOW-SEGMENT SIZE.
^^MINSIZ\\ IS THE PROGRAM SIZE OF THE CALLING PROGRAM.
.B
^THE DEFAULT VALUES IMPLY A RANGE OF HIGH-SEGMENT SIZE FROM 0 TO 32 PAGES
AND A RANGE OF LOW-SEGMENT SIZE FROM 0 TO 32 PAGES PLUS PROGRAM SIZE.
.B;.I-10
^^RANOPN\\#-	^OPEN DEVICE CHANNELS.
.B
^THIS ROUTINE OPENS AND CLOSES A DEVICE SELECTED AT RANDOM FROM AN
INSTALLATION-DEPENDENT LIST OF DEVICES (^^DEVLST\\).
^THE DEVICE IS SELECTED BY THE FORMULA:
.B;.I5
INDEX#=#^^RAN1#*#DEVNUM\\
.B
WHERE ^^RAN\\1 IS A RANDOM NUMBER IN THE RANGE 0 TO 1 FROM A UNIFORM DISTRIBUTION.
^^DEVNUM\\ IS THE NUMBER OF DEVICES.
.B;.LM0
^NOTE THAT THE DESIGNATIONS OF ^^RAN0, RAN1, RAN2\\, AND ^^RAN\\3 IMPLY THE EXISTENCE
OF FOUR SEPARATE UNIFORM RANDOM NUMBER GENERATORS.
^THIS IS TO ALLOW INDEPENDENT SETS OF RANDOM NUMBERS FOR CORE SIZE, SLEEP LENGTH,
^^CPU\\ INTERVAL, NUMBER OF WORDS WRITTEN TO DISK, AND SO FORTH,
FOR THOSE PROGRAMS THAT DO SEVERAL FUNCTIONS.
^THE UNIFORM DISTRIBUTIONS ALL SELECT A RANDOM NUMBER THE FIRST TIME THEY ARE CALLED,
AND THE COMPLEMENT OF THAT NUMBER THE SECOND TIME THEY ARE CALLED.
^THAT IS, A RANDOM SELECTION OF N ON AN ODD-NUMBERED CALL IMPLIES
A SELECTION OF 1-N ON THE NEXT CALL.
.B
^THIS PROCEDURE MINIMIZES THE AMOUNT OF
DISTORTION IN ACCUMULATED RUNTIME AND OTHER RESOURCES DUE TO THE
RANDOM NUMBER SELECTION PROCESS.
^FOR ANY TWO JOBS OF THE SAME CLASS, THE AMOUNT OF ^^CPU\\ LOOP EXECUTED AND THE NUMBER
OF DISK READS AND WRITES PERFORMED WOULD BE IDENTICAL, IF THE
SCHEDULER TREATED THEM EQUALLY, EXCEPT FOR THE EFFECT OF THE LAST
RANDOM NUMBER SELECTED.
^DIFFERENCES DUE TO RANDOM NUMBER SELECTION ARE NOT CUMULATIVE.
^THIS PROCEDURE GIVES GOOD RANDOMNESS TO THE TEST WITH MOST DIFFERENCES 
BETWEEN JOBS OF THE SAME CLASS BEING ATTRIBUTABLE TO THE SCHEDULER.
.B
^THE EXPONENTIAL DISTRIBUTIONS ARE GENERATED BY THE FOLLOWING FORMULA:
.B;.I10
^^EXRAN\\#=#-^^LOG(1-RAN\\)
.B;.PS68,70
WHERE ^^RAN\\ IS ONE OF THE UNIFORM RANDOM NUMBER GENERATORS DESCRIBED ABOVE.
^THIS GENERATES A NEGATIVE EXPONENTIAL PROBABILITY DENSITY FUNCTION WITH A MEAN OF 1.
^THE EXPONENTIAL DISTRIBUTIONS YIELD A WIDE RANGE OF VALUES
WITH A LARGE NUMBER OF SMALL VALUES AND A FEW VERY LARGE VALUES.
.PG.LM0;.RM70;.PS67,70
.NUMBER CHAPTER 3
.CH ^&^^HOW TO RUN THE SIMULATION PACKAGE\&\\##
\\^THESE EXAMPLES DEMONSTRATE HOW TO RUN THE ^^LODTST\\ PROGRAM
FROM A ^^TTY\\.  ^EXAMPLES WITH INPUT FROM DISK AND
EXECUTION FROM AN ^^OPSER.ATO\\ FILE ARE GIVEN IN ^CHAPTER 6.
.HL1 ^&MODULO OPTION\&
\\^THE ^^MODULO\\ OPTION LOGS IN JOBS STARTING AT A BASE PROJECT-PROGRAMMER NUMBER (^^PPN\\),
AND INCREASING MODULO A SPECIFIED NUMBER.
^THIS ALLOWS THE TEST DESIGNER TO SPECIFY DIFFERENT
SCHEDULING CLASSES FOR DIFFERENT ^^PPN\\S
TO TEST THE CLASS SCHEDULER.
.B
^TO LOG IN ALL JOBS UNDER THE SAME ^^PPN\\, SPECIFY A
MODULO NUMBER OF 1 (0 DEFAULTS TO 1).
.B;.TS30
.LS;.LE;^LOGIN A 1,2 JOB.
.LE;^^RUN TST:LODTST\\	;^SPECIFY ^^PPN\\ WHERE ^^LODTST\\ IS STORED
.LE;^^ENTER INPUT FILE SPEC (DEFAULT IS TTY\\)
.BR
<^^CR\\>	;<^^CR\\> FOR ^^TTY\\ INPUT
.BR
	;^^FILE SPEC\\ FOR DISK INPUT
.LE;^^ENTER INTERVAL BETWEEN SYSTATS (MINS)\\
.BR
5	;^FOR ^^SYSTATS\\ EVERY 5 MINUTES
.BR
	;<^^CR\\> FOR NO ^^SYSTATS\\
.LE;^^ENTER LENGTH OF TEST (MINS)\\
.BR
30	;^FOR 30-MINUTE TEST
.BR
	;<^^CR\\> FOR NO TIME LIMIT
.LE;^^ENTER JOB DATA OPTION (CATEGORY OR MODULO)
.BR
M	;M\\ FOR ^^MODULO\\
.LE;^^ENTER BASE PPN (PROJ,PROG)\\
.BR
4,220	;^BASE AREA TO ^^LOGIN\\ USER JOBS
.LE;^^ENTER MODULO NUMBER (DECIMAL)\\
.BR
3	;^FOR ^^PPN\\S 4,220; 4,221; 4,222
.BR
	;0 OR 1 LOGS ALL JOBS UNDER 4,220
.PG;.BR;.TS17,22
.LE;^^LODIO\\:	3	;3 JOBS, 1 EACH UNDER 4,220;#4,221;#4,222
.B
^^LODCPU\\:	6	;6 JOBS, 2 EACH UNDER 4,220;#4,221;#4,222
.B
^^LODAVE\\:	9	;9 JOBS, 3 EACH UNDER 4,220;#4,221;#4,222
.B
^^LODPQ\\1:	3	;3 JOBS, 1 EACH UNDER 4,220;#4,221;#4,222
.B
^^LODSLP\\:	1	;ONE JOB UNDER 4,220
.B
^^LODCOR\\:	2	;2 JOBS, 1 EACH UNDER 4,221;#4,222
.B
^^LODOPN\\:	3	;3 JOBS, 1 EACH UNDER 4,220;#4,221;#4,222
.TS43
.LE;[^^HH:MM:SS] SIMULATION STARTED.\\	;^^LODTST\\ PRINTS SIMULATION
.BR
	#START TIME
.LE;^TEST IS NOW UP AND RUNNING.  ^FOR A LIST OF COMMANDS THAT
MAY BE TYPED, SEE ^SECTION 3.3.
.ELS
^NOTE THAT THE ^^MODULO\\ COUNTER IS NOT RESET BETWEEN JOB CATEGORIES.
^THEREFORE, ^^LODCOR\\ STARTED AT 4,221 BECAUSE ONE JOB WAS ALREADY COUNTED FOR ^^LODSLP\\.
.HL1 ^&CATEGORY OPTION\&\\
\\^THE CATEGORY OPTION ALLOWS THE TEST DESIGNER TO LOG
IN ANY NUMBER OF JOBS OF EACH CATEGORY UNDER ANY NUMBER OF SPECIFIC
^^PPN\\S.
.B;.LM0
^STEPS 1 THROUGH 5 ARE THE SAME AS STEPS 1 THROUGH 5 ABOVE.
.B;.LM9;.I-4
6.##^^ENTER JOB DATA OPTION (CATEGORY OR MODULO)
.LM9;.TS30
C\\	;^C FOR CATEGORY
.B;.I-4
7.##^^ENTER PPN AND NUMBER OF JOBS (PROJ,PROG:NUMBER) ONE PER LINE,
EXTRA CARR RET TO GO TO NEXT CATEGORY.\\
.B;.TS17,30;.NF;.NJ
^^LODIO\\:	4,220:1	;1 JOB UNDER 4,220
^^LODIO\\:	4,221:2	;2 JOBS UNDER 4,221
^^LODIO\\:	<^^CR\\>	;^GO TO NEXT CATEGORY
^^LODCPU\\:	4,221:3	;3 JOBS UNDER 4,221
^^LODCPU\\:	<^^CR\\>	;^GO TO NEXT CATEGORY
^^LODAVE\\:	4,223:4	;4 JOBS UNDER 4,223
^^LODAVE\\:	<^^CR\\>	;^GO TO NEXT CATEGORY
^^LODPQ\\1:	4,221:2	;2 JOBS UNDER 4,221
^^LODPQ\\1:	<^^CR\\>	;^GO TO NEXT CATEGORY
^^LODSLP\\:	4,220:1	;1 JOB UNDER 4,220
^^LODSLP\\:	<^^CR\\>	;^GO TO NEXT CATEGORY
^^LODCOR\\:	<^^CR\\>	;<^^CR\\> FOR NO ^^LODCOR\\ JOBS
^^LODOPN\\:	4,221:2	;2 JOBS UNDER 4,221
^^LODOPN\\:	<^^CR\\>	;^GO TO NEXT CATEGORY
.B;.F;.J;.TS41;.I-4
8.##[^^HH:MM:SS\\] ^^SIMULATION STARTED.\\	;^^LODTST\\ PRINTS THE SIMULATION
.BR
	#START TIME
.B;.I-4
9.##^TEST IS NOW UP AND RUNNING.  ^FOR A LIST OF COMMANDS THAT MAY BE TYPED, SEE ^SECTION 3.3.
.LM0
.HL1 ^&COMMANDS DURING TEST OPERATION\&\\
\\^WHILE ^^LODTST\\ IS RUNNING THE SIMULATION, IT WAKES AT THE SPECIFIED INTERVAL
TO REQUEST ^^SYSTAT\\S.
^WHEN A ^^SYSTAT\\ IS PRINTED, ^^LODTST\\ TYPES AN ASTERISK ON ITS
CONTROLLING TERMINAL AND RINGS THE BELL.
^^LODTST\\ ALSO MONITORS ITS CONTROLLING TERMINAL FOR OPERATOR COMMANDS.
^THE COMMANDS ACCEPTED ARE:
.B;.LM5;.TS15;.NF;.NJ
^^SYSTAT\\	;^PRINT A ^^SYSTAT\\
.B
^^EXIT\\	;^TERMINATE THE SIMULATION AND STOP ALL JOBS
.B
^^KILL\\	;^TERMINATE THE SIMULATION AND LOG OUT ALL JOBS
.B
^^/EXIT\\	;^CHANGE END-OF-TEST FLAG TO ^^EXIT\\ OPTION
.B
^^/KILL\\	;^CHANGE END-OF-TEST FLAG TO ^^KILL\\ OPTION
.B;.LM0;.F;.J
^^SYSTAT\\S REQUESTED BY THE OPERATOR ARE IN ADDITION TO ANY BEING
GENERATED AT THE REQUESTED ^^SYSTAT\\ INTERVAL.
.B
^THE ^^EXIT\\ COMMAND IS USED WHEN THE OPERATOR WANTS TO STOP THE TEST
AND DOES NOT CARE IF THE JOBS ARE LOGGED OUT. ^THE EXIT PROCEDURE STOPS
THE JOBS AT A POINT WHERE THEY HAVE NO DISK FILES OPEN. ^THIS LEAVES
A CLEAN DISK SYSTEM.
.B
^THE ^^KILL\\ COMMAND PERFORMS ALL THE FUNCTIONS OF THE ^^EXIT\\ COMMAND.
^IN ADDITION, IT LOGS OUT ALL SIMULATED JOBS. ^THIS WILL CAUSE THE
RESOURCES USED BY THE SIMULATED USER JOBS TO BE RECORDED BY THE
ACCOUNTING SYSTEM. ^ANOTHER SIMULATION CAN BE STARTED WITHOUT RELOADING
THE MONITOR.
.HL1 ^&END-OF-TEST PROCEDURE\&
\\^AT THE TIME SPECIFIED BY THE LENGTH-OF-TEST PARAMETER, ^^LODTST\\
WILL EXECUTE AN END-OF-TEST PROCEDURE. ^THE PROCEDURE IS EITHER THE
^^KILL\\ OR ^^EXIT\\ COMMAND DESCRIBED ABOVE, DEPENDING ON THE SETTING
OF END-OF-TEST FLAG AS DEFINED IN THE INSTALLATION-DEPENDENT PARAMETER
(^^KILL\\).
.B
^THE OPERATOR CAN DYNAMICALLY CHANGE THE SETTING OF THE
END-OF-TEST FLAG WITH THE /^^KILL\\ OR /^^EXIT\\ COMMANDS.
.B
^THE NORMAL EXIT MESSAGE IS:
.B;.LM5
[^^HH:MM:SS\\] ^^END OF EXIT PROCEDURE.
ALL JOBS STOPPED. LODTST EXITING\\.
.NUMBER CHAPTER 4
.CHAPTER ^&EXPLANATION OF ERROR MESSAGES\&##
.LM0
.HL1 ^&ERRORS FROM LODTST\&
\\^ALL ERRORS FROM ^^LODTST\\ ARE LOGGED ON ITS CONTROLLING ^^TTY\\.
^STANDARD FORMAT RECOVERY IMPLIES REENTERING THE PARAMETER IF
THE INPUT IS FROM A ^^TTY\\, AND TERMINATION OF THE SIMULATION IF THE INPUT IS FROM DISK.
^THE STANDARD LINE TERMINATORS ARE ^^CRLF\\ OR ALTMODE (^^ESC\\).
.B;.LM15;.TS15;.I-10
^^OPNERR -	?#FAILURE OPENING INPUT DEVICE.\\
.B
^THE SPECIFIED INPUT DEVICE DOES NOT EXIST. ^THE SIMULATION RUN IS TERMINATED.
.B;.I-10
^^LOKERR -	?#FAILURE ON LOOKUP FOR INPUT FILE\\.
.B
^THE SPECIFIED INPUT FILE DOES NOT EXIST. ^THE SIMULATION RUN IS TERMINATED.
.B;.I-10
^^OPTERR -	?#ILLEGAL FORMAT, TYPE CAT OR MOD.\\
.B
^THE SPECIFIED JOB DATA OPTION MUST BE CATEGORY OR MODULO. ^DO STANDARD
FORMAT RECOVERY.
.B;.I-10
^^CATERR -	?#ILLEGAL CATEGORY SPECIFICATION\\.
.B
^^TYPE PROJ,PROG:NUMBER (PROJ,PROG IN OCTAL, NUMBER IN DECIMAL).
PROJ\\ IS A PROJECT NUMBER, ^^PROG\\ IS A PROGRAMMER NUMBER. ^^PROJ\\
AND ^^PROG\\ MUST CONTAIN ONLY THE DIGITS 0 THROUGH 7 AND BE
SEPARATED BY A COMMA. ^AFTER ^^PROJ,PROG\\ THERE MUST BE A COLON
FOLLOWED BY THE NUMBER OF JOBS TO BE LOGGED IN UNDER THE SPECIFIED
^^PPN\\. ^DO STANDARD FORMAT RECOVERY.
.B;.I-10
^^PPNERR -	?#ILLEGAL PROJ,PROG NUMBER FORMAT\\.
.B
^IN THE MODULO OPTION, THE BASE ^^PPN\\ MUST CONTAIN
ONLY THE DIGITS 0 THROUGH 7, AND THE TWO OCTAL NUMBERS
MUST BE SEPARATED BY A COMMA. ^DO STANDARD FORMAT RECOVERY.
.B;.I-10
^^MODERR -	?#ILLEGAL MODULO NUMBER\\.
.B
 ^THE MODULO NUMBER MUST CONTAIN ONLY THE DIGITS 0 THROUGH 9. ^DO STANDARD
FORMAT RECOVERY.
.PG;.B;.I-10
^^CHKERR -	?#ILLEGAL COMMAND. COMMANDS ARE:\\
.B
^^SYSTAT, EXIT, KILL, /EXIT, /KILL\\.
.B
^AN UNRECOGNIZABLE COMMAND WAS TYPED. ^RETYPE THE COMMAND. ^TYPE
^^SYSTAT\\ TO GET A ^^SYSTAT\\ ON THE LINE PRINTER.
^TYPE ^^EXIT\\ TO STOP ALL JOBS, DELETE ALL FILES, AND EXIT.
^TYPE ^^KILL\\ TO LOG OUT ALL JOBS, DELETE ALL FILES, AND EXIT.
^TYPE /^^EXIT\\ TO SET THE END-OF-TEST FLAG TO ^^EXIT.\\
^TYPE /^^KILL\\ TO SET THE END-OF-TEST FLAG TO ^^KILL\\.
.B;.I-10
^^LOGERR -	?#TIME LIMIT EXCEEDED LOGGING IN JOB UNDER PPN NNNNN,NNNNN\\.
.B
^^LODTST\\ HAS ISSUED A ^^LOGIN\\ REQUEST OVER THE CONTROLLING PSEUDO-^^TTY\\,
BUT THE SUBJOB HAS NOT RETURNED STATUS BITS OF JOB-NUMBER-ASSIGNED
JOB-LOGGED-IN, ^^TTY\\-AT-MONITOR LEVEL, AND READY-FOR-A-COMMAND
WITHIN THE SPECIFIED TIME LIMIT (APPROXIMATELY 60 SECONDS).
.B
^POSSIBLE PROBLEMS ARE THAT THIS ^^PPN\\ IS NOT ALLOWED
TO LOG IN (NOT DEFINED IN ^^ACCT.SYS\\),
IS IN A CLASS WITH NO QUOTA, AND SO FORTH.
.B
^^LODTST\\ ASSUMES THE JOB WILL COMPLETE ^^LOGIN\\ AND PROCEEDS TO ISSUE
THE ^^RUN\\ COMMAND. ^SHOULD THIS ASSUMPTION PROVE TO BE FALSE,
THE TEST WILL RUN WITHOUT THIS JOB.
.B;.I-10
^^RUNERR -	?#TIME LIMIT EXCEEDED TRYING TO RUN JOB LODXXX UNDER PPN NNNNN,NNNNN\\.
.B
^^LODTST\\ HAS ISSUED A ^^RUN\\ COMMAND OVER THE PSEUDO-^^TTY\\,
BUT THE SUBJOB HAS NOT RETURNED THE STATUS BITS OF JOB-NUMBER-ASSIGNED,
JOB-LOGGED-IN, AT-USER-LEVEL, NOT-DOING-^^TTY\\-OUTPUT WITHIN THE REQUIRED
INTERVAL (60 SECONDS).
.B
^POSSIBLE PROBLEMS ARE THAT THE JOB DID NOT GET LOGGED IN PROPERLY
(PER ^^LOGERR)\\, OR JOB TYPE ^^LODXXX\\ DOES NOT EXIST. ^^LODTST\\
ASSUMES THAT THE JOB STARTED PROPERLY AND RELEASES THE PSEUDO-^^TTY\\.
^SHOULD THIS ASSUMPTION PROVE TO BE FALSE, THE TEST WILL RUN WITHOUT
THIS JOB.
.B;.I-10
^^STSERR -	?#JOBSTS UUO FAILED\\.
.B
^THE ^^JOBSTS\\ MONITOR CALL USED TO DETERMINE IF JOBS ARE LOGGED IN AND RUNNING
HAS FAILED. ^THIS SHOULD NEVER HAPPEN.
.B
^THE SIMULATION RUN IS TERMINATED.
.B;.I-10
^^GETSPR -	?#ILLEGAL FILE SPEC\\.
.B
^THE REQUIRED FORMAT IS:
.B
^^DEVICE:FILENAME.EXTENSION[PROJ,PROG]\\
.B
^THE SIMULATION RUN IS TERMINATED.
.PG;.B;.I-10
^^PTYERR -	?#OPEN FAILURE ON PTY\\.
.B
^THE ^^OPEN\\ MONITOR CALL FAILED FOR THE PSEUDO-^^TTY\\ CHANNEL.
.B
^POSSIBLE PROBLEMS ARE THAT THE MONITOR IS NOT ASSEMBLED
WITH PSEUDO-^^TTY\\S OR NONE ARE AVAILABLE.
.B
^THE SIMULATION RUN IS TERMINATED.
.B;.I-10
^^FINERR -	?#[HH:MM:SS] EXIT TIME LIMIT REACHED.
.B
SOME LODTST JOBS MAY STILL BE RUNNING.\\
.B
^THE END-OF-TEST PROCEDURE FAILED TO STOP ALL JOBS (^^EXIT\\ OPTION)
OR SOME JOBS DID NOT ^^LOGOUT\\ WITHIN THE TIME LIMIT (^^KILL\\ OPTION).
^THE LAST JOB TO ^^KJOB\\ SOMETIMES GETS HUNG UP IN ^^CONFIRM\\ DIALOGUE
DUE TO A RACE CONDITION IN ^^KJOB\\.
.B
^^LODTST\\ EXITS TO MONITOR.
.LM0
.HL1 ^&ERRORS FROM SIMULATED USER JOBS\&
\\^THE ERROR MESSAGES FROM THE SIMULATED USER JOBS ARE SENT TO THE
TERMINAL ASSOCIATED WITH DEVICE ^^OPR\\. ^THE MESSAGES ARE OF THE FORMAT:
.B;.I5
? [^^HH:MM:SS] JOB NNN "ERROR MESSAGE"\\
.B
WHERE ^^NNN\\ IS THE JOB NUMBER OF THE JOB HAVING THE ERROR AND "^^ERROR MESSAGE"\\
IS ONE OF THE MESSAGES DESCRIBED BELOW. ^THE CURRENT TIME IS PRINTED IN SQUARE
BRACKETS.
.B
^WHEN AN ERROR OCCURS, THE JOB NAME IS ALSO CHANGED TO CONTAIN THE ERROR
NUMBER. ^FOR EXAMPLE, IF A ^^LODAVE\\ JOB GOT THE ERROR INDICATED BY ^^EO4\\,
ITS NAME WOULD BE CHANGED TO ^^EO4AVE\\.
.B
^SOME ERRORS CAUSE THE JOB TO BE DELAYED FOR A SPECIFIED
INTERVAL BEFORE REPEATING THE FUNCTION THAT FAILED. ^THE LENGTH OF THE
DELAY IS AN INSTALLATION-DEPENDENT PARAMETER (^^ERRSLP\\).
.B
^NOTE THAT ANY DELAYED JOBS DISTORT THE DISTRIBUTION OF ^^CPU\\ TIME, DISK READS AND
WRITES, AND SO FORTH, IN THE TEST RESULTS.
.B;.LM21;.TS21;.I-16
^^EO1\\ -	^^CORE UUO FAILED.\\
.B;.I-14
^EXPLANATION -	^THE AMOUNT OF CORE REQUESTED EXCEEDED ^^CORMAX\\. ^EITHER
THE INSTALLATION-DEPENDENT CORE RANGE PARAMETERS ARE TOO LARGE
OR THE MONITOR VALUE IS TOO LOW.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION -	^DELAY AND TRY AGAIN WITH DIFFERENT RANDOM NUMBER.
.B;.I-16
^^EO2 -	^^DISK INIT FAILURE\\.
.B;.I-14
^EXPLANATION -	^CANNOT OPEN DISK FILE TO DO DISK ^I/^O. ^POSSIBLE PROBLEM GETTING
CORE BLOCKS FROM MONITOR CORE BLOCK POOL.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION	^DELAY AND TRY AGAIN.
.PG;.B;.I-16
^^EO3\\ -	^^DISK ENTER FAILURE\\.
.B;.I-14
^EXPLANATION -	^CANNOT WRITE USING THIS FILENAME. ^POSSIBLY FILE ALREADY EXISTS
AND IS BEING WRITTEN BY SOME OTHER PROGRAM UNDER THE SAME
^^PPN\\, OR CANNOT GET CORE BLOCKS FROM MONITOR CORE BLOCK POOL.
(^NOTE ^^LODTST\\ SYSTEM ENSURES UNIQUE FILENAMES BY MAKING JOB
NUMBER PART OF FILENAME.)
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION	^DELAY AND TRY AGAIN.
.B;.I-16
^^EO4\\ -	^^DISK OUTPUT FAILURE\\.
.B;.I-14
^EXPLANATION -	^PUBLIC STRUCTURE FULL, CANNOT GET MONITOR CORE BLOCKS, OR
POSSIBLY DEVICE HARDWARE FAILURE.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION -	^DELETE FILE AND EXIT FROM DISK ^I/^O SUBROUTINE. ^PROGRAM WILL CYCLE TO NEXT
FUNCTION AND CONTINUE OPERATION.
.B;.I-16
^^EO5\\ -	^^DISK CLOSE FAILURE.\\
.B;.I-14
^EXPLANATION -	^PUBLIC STRUCTURE FULL, CANNOT GET MONITOR CORE BLOCKS, OR
POSSIBLY HARDWARE FAILURE.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION -	^DELETE FILE AND EXIT FROM ^I/^O SUBROUTINE.
^PROGRAM WILL CONTINUE OPERATION.
.B;.I-16
^^EO6\\ -	^^DISK LOOKUP FAILURE\\.
.B;.I-14
^EXPLANATION -	^CANNOT LOOK UP FILE JUST WRITTEN. ^POSSIBLY CANNOT GET CORE BLOCKS,
OR THERE ARE HARDWARE PROBLEMS.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION -	^PROGRAM WILL CYCLE TO THE NEXT FUNCTION AND CONTINUE OPERATION.
.B;.I-16
^^EO7\\ -	^^DISK WRITE AND READ COMPARE FAILURE\\.
.B;.I-14
^EXPLANATION -	^DATA READ FROM DISK IS DIFFERENT FROM WHAT WAS WRITTEN.
^PROBABLY HARDWARE FAILURE.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION -	^DELETE FILE AND EXIT FROM DISK ^I/^O SUBROUTINE. ^PROGRAM CONTINUES
TO OPERATE.
.B;.I-16
^^EO8 -	DISK INPUT FAILURE\\.
.BR;.I-14
^EXPLANATION -	^POSSIBLE HARDWARE ERROR ON DEVICE.
.BR;.I-14
^RECOVERY
.BR;.I-14
^ACTION -	^DELETE FILE AND EXIT FROM DISK ^I/^O SUBROUTINE. ^PROGRAM
CONTINUES TO OPERATE.
.B;.I-16
^^EO9\\ -	^^DISK RENAME FAILURE\\.
.B;.I-14
^EXPLANATION -	^COULD NOT DELETE DISK FILE. ^POSSIBLE HARDWARE FAILURE.
.BR;.I-14

^RECOVERY
.BR;.I-14
^ACTION -	^EXIT FROM DISK ^I/^O SUBROUTINE. ^PROGRAM CONTINUES TO OPERATE.
.LM0
.NUMBER CHAPTER 5
.CHAPTER ^&INSTALLATION-DEPENDENT PARAMETERS\&##
.HL1 ^&LODTST PARAMETERS\&
.LM15;.TS15;.I-10
^^AREA -	C\\ONTAINS THE ^^PPN\\ WHERE THE
SIMULATED USER JOBS ARE STORED. ^DEFAULT VALUE IS [5,23] (^^TST:\\).
.B;.I-10
^^PRGNAM\\ -	^A TABLE CONTAINING THE NAMES OF THE SIMULATED USER
JOBS. ^TO ADD A NEW JOB TYPE TO THE SYSTEM, STORE AN ^^EXE\\ VERSION OF THE PROGRAM
UNDER THE ^^PPN\\ DEFINED IN ^^AREA\\ AND ENTER THE
JOB'S NAME AS A NEW ENTRY IN THIS TABLE. ^THE PARAMETER ^^NUMCLS\\
DEFINES THE NEW LENGTH OF THE TABLE AUTOMATICALLY.
.B;.I-10
^^KILL\\ -	^THIS IS AN ASSEMBLY PARAMETER THAT IS STORED AS
THE INITIAL VALUE OF THE END-OF-TEST FLAG. ^THE DEFAULT VALUE IS
ZERO, WHICH GIVES THE ^^EXIT\\ OPTION. ^A NONZERO VALUE GIVES THE ^^KILL\\
OPTION.
.B;.I-10
^^DEBUG\\ -	^THIS IS AN ASSEMBLY PARAMETER THAT DEFAULTS
TO ZERO. ^A NONZERO VALUE WILL INCLUDE CODE TO PRINT ANY ERROR MESSAGES
RECEIVED FROM THE SUBJOB ON THE PSEUDO-^^TTY\\ FOR DEBUGGING PURPOSES.
.B;.I-10
^^SPOOL\\ -	^THIS IS AN ASSEMBLY PARAMETER THAT DEFAULTS
TO ZERO. ^A NONZERO VALUE CAUSES THE ^^SYSTAT\\S TO BE SPOOLED TO
DISK BY ISSUING A ^^SET SPOOL LPT\\ COMMAND TO THE JOB DOING THE ^^SYSTAT\\S.
^A ZERO VALUE CAUSES THE ^^SYSTAT\\S TO BE PRINTED IMMEDIATELY
ON THE LINE PRINTER.
.B;.I-10
^^SYSPRJ\\ -	^THIS IS AN ASSEMBLY PARAMETER THAT DEFINES THE PROJECT
NUMBER OF THE ^^SYSTAT\\ JOB LOGGED IN BY ^^LODTST\\. ^THE DEFAULT VALUE IS 1.
.B;.I-10
^^SYSPRG\\ -	^THIS IS AN ASSEMBLY PARAMETER THAT DEFINES
THE PROGRAMMER NUMBER OF THE ^^SYSTAT\\ JOB. ^THE DEFAULT VALUE IS 2.
^NOTE THAT BOTH THIS ^^PPN\\ AND THE ^^PPN\\
OF ^^LODTST\\ MUST HAVE HIGH-PRIORITY QUEUE PRIVILEGES TO ENSURE THAT
^^SYSTAT\\S WILL BE PRINTED AT ACCURATE INTERVALS.
.PG;.LM0
.HL1 ^&SIMULATED USER JOB PARAMETERS\&
\\^THERE ARE A NUMBER OF PARAMETERS ASSOCIATED WITH EACH OF THE SIMULATED
USER JOBS. ^ALTHOUGH THE SAME PARAMETERS EXIST IN SEVERAL JOBS
(FOR EXAMPLE, IN ^^LODAVE, LODIO, LODCPU\\), THEY ARE DEFINED
SEPARATELY IN EACH JOB. ^THIS IS DONE SO THAT AN INSTALLATION CAN
GENERATE ANY NUMBER OF JOB TYPES BY CHANGING THE PARAMETER RANGES
AND DEFINING NEW JOB NAMES IN ^^PRGNAM\\.
^THE MEANING OF THE PARAMETERS IS EXPLAINED BELOW.
.B;.LM15;.TS15;.I-10
^^ERRSLP\\ -	^CONTAINS A DECIMAL NUMBER DEFINING THE NUMBER OF
SECONDS TO SLEEP AFTER AN ERROR HAS OCCURRED BEFORE TRYING THE
FUNCTION AGAIN. ^THIS IS THE DELAY TIME INDICATED IN THE DESCRIPTION
OF ERROR MESSAGES IN ^CHAPTER 4. ^THE DEFAULT VALUE IS 10 SECONDS.
.B
^USED IN ^^LODAVE, LODIO, LODCPU, LODSLP, LODPQ1\\, AND ^^LODCOR\\.
.B;.I-10
^^CORBAS\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE BASE CORE
SIZE IN PAGES FOR THE ROUTINE ^^RANCOR\\. ^THE DEFAULT VALUE IS 0.
.B
^USED IN ^^LODAVE, LODCPU, LODIO, LODSLP\\ AND ^^LODPQ1\\.
.B;.I-10
^^CORRNG\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING
THE CORE RANGE FOR THE ROUTINE ^^RANCOR\\. ^THE DEFAULT
VALUE IS 35.0 PAGES.
.B
^USED IN ^^LODAVE, LODCPU, LODIO, LODSLP,\\ AND ^^LODPQ1\\.
.B;.I-10
^^CORCNT\\ -	^CONTAINS A DECIMAL NUMBER DEFINING
HOW OFTEN THE ROUTINE ^^RANCOR\\ ACTUALLY CHANGES CORE SIZE. ^WITH THE
DEFAULT VALUE OF 10, ^^RANCOR\\ SELECTS A NEW RANDOM
CORE SIZE EVERY TENTH TIME.
.B
^USED IN ^^LODAVE, LODCPU, LODIO, LODSLP\\ AND ^^LODPQ1\\.
.B;.I-10
^^HGHBAS\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE BASE
HIGH-SEGMENT SIZE FOR THE ^^RANHGH\\ ROUTINE. ^THE DEFAULT VALUE
IS 0.0.
.B
^USED IN ^^LODCOR\\ ONLY.
.B;.I-10
^^HGHRNG\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING
THE RANGE OF HIGH-SEGMENT CORE SIZES FOR THE ROUTINE ^^RANHGH\\. ^THE DEFAULT
VALUE IS 32.0.
.B
^USED IN ^^LODCOR\\ ONLY.
.B;.I-10
^^LOWBAS\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE
BASE LOW-SEGMENT SIZE FOR ROUTINE ^^RANHGH\\. ^THE DEFAULT VALUE
IS 0.0.
.B
^USED IN ^^LODCOR\\ ONLY.
.B;.I-10
^^LOWRNG\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING
THE RANGE OF LOW-SEGMENT CORE SIZES FOR THE ROUTINE ^^RANHGH\\.
^THE DEFAULT VALUE IS 32.0.
.B
^USED IN ^^LODCOR\\ ONLY.
.PG;.B;.I-10
^^MINSIZ\\ -	^THIS PARAMETER IS SET AUTOMATICALLY BY EACH PROGRAM IN
THE INITIALIZATION ROUTINE. ^IT CONTAINS THE INITIAL PROGRAM SIZE USED
BY THE ^^RANCOR\\ AND ^^RANHGH\\ ROUTINES.
.B
^CURRENT PROGRAM SIZES ARE SHOWN BELOW.
.B2;.LM20;.TS36
^PROGRAM	^^MINSIZ\\
.B2;.TS38
^^LODIO	2
.B
LODCPU	2
.B
LODAVE	2
.B
LODPQ1	2
.B
LODSLP	2
.B
LODCOR	2
.B
LODOPN	2\\
.B2;.LM15;.TS15;.I-10
^^BLKBAS\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE BASE
NUMBER OF DISK WORDS TO BE WRITTEN IN ROUTINE ^^RANDSK\\. ^THE DEFAULT
VALUE IS 0.0 WORD.
.B
^USED IN ^^LODIO\\ AND ^^LODAVE\\.
.B;.I-10
^^BLKRNG\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING
THE RANGE OF WORDS WRITTEN IN DISK ^I/^O ROUTINE ^^RANDSK\\. ^THE DEFAULT
VALUE IS 4096.0 WORDS.
.B
^USED IN ^^LODIO\\ AND ^^LODAVE\\.
.B;.I-10
^^SLPBAS\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE BASE
SLEEP TIME FOR THE ROUTINE ^^RANSLP\\. ^THE DEFAULT VALUE IS 0.0 SECOND.
.B
^USED IN ^^LODAVE\\ AND ^^LODSLP\\.
.B;.I-10
^^SLPRNG\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING
THE RANGE OF SLEEP TIMES FOR THE ROUTINE ^^RANSLP\\.
^THE DEFAULT VALUE IS 60.0 SECONDS.
.B
^USED IN ^^LODAVE\\ AND ^^LODSLP\\.
.B;.I-10
^^CPUBAS\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE BASE
^^CPU\\ TIME LOOP. ^THE DEFAULT VALUE IS 0.5 SECOND.
.B
^USED IN ^^LODAVE\\ AND ^^LODCPU\\.
.B;.I-10
^^CPURNG\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE RANGE
OF THE ^^CPU\\ TIME LOOP. ^THE DEFAULT VALUE IS 1.0 SECOND.
.B
^USED IN ^^LODAVE\\ AND ^^LODCPU\\.
.B;.I-10
^^SLPRNX\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE DESIRED
MEAN SLEEP TIME FOR THE EXPONENTIAL SLEEP ROUTINE ^^EXPSLP\\. ^THE DEFAULT
VALUE IS 6.0 SECONDS.
.B
^USED IN ^^LODPQ1\\ ONLY.
.B;.I-10
^^SLPMAX\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING
THE MAXIMUM SLEEP TIME FOR THE EXPONENTIAL SLEEP ROUTINE ^^EXPSLP\\.
^THE DEFAULT VALUE IS 60.0 SECONDS.
.B
^USED IN ^^LODPQ1\\ ONLY.
.B;.I-10
^^CPURNX\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE
DESIRED MEAN ^^CPU\\ TIME FOR THE EXPONENTIAL ^^CPU\\ ROUTINE ^^EXPCPU\\.
^THE DEFAULT VALUE IS 0.1 SECOND.
.B
^USED IN ^^LODPQ1\\ ONLY.
.B;.I-10
^^CPUMAX\\ -	^CONTAINS A FLOATING-POINT NUMBER DEFINING THE MAXIMUM
^^CPU\\ TIME LOOP FOR THE EXPONENTIAL ^^CPU\\ ROUTINE ^^EXPCPU\\. ^THE DEFAULT
VALUE IS 1.0 SECOND.
.B
^USED IN ^^LODPQ1\\ ONLY.
.B;.I-10
^^DEVLST\\ -	^CONTAINS THE LIST OF LOGICAL DEVICE NAMES USED BY
THE ^^RANOPN\\ ROUTINE. ^NEW ENTRIES MAY BE ADDED BY INSERTING THE 6-BIT
DEVICE NAMES INTO THE TABLE. ^THE PARAMETER ^^DEVNUM\\ DEFINES
THE NEW LENGTH OF THE TABLE AUTOMATICALLY.
.B;.I-10
^^XITMES\\ -	^CONTAINS THE ^^KJOB\\ COMMAND USED IN THE ^^KILL\\ OPTION
OF THE EXIT PROCEDURE. ^IT IS DEFINED IN ^^LODUNV\\. ^IT MUST BE OF THE FORM:
.B;.I5
^^KJOB DSK:DUMMYX.LOG=/\\SWITCHES
.B
^THE DEFAULT SWITCHES ARE /^K/^Z:0/^^VD:D\\
.LM0
.NUMBER CHAPTER 6
.CHAPTER ^&SAMPLE RUNS\&##
.HL1 ^&SAMPLE RUN 1\&
\\^THIS SAMPLE SHOWS HOW TO RUN ^^LODTST\\ WITH INPUT FROM A DISK
FILE. ^THE FILE CONTAINS THE RESPONSES TO ALL ^^LODTST\\ DIALOGUE
QUESTIONS. ^AS THE RESPONSES ARE READ FROM THE FILE, THEY ARE ECHOED
ON THE CONTROLLING TERMINAL ALONG WITH THE NORMAL PROMPTING MESSAGES.
.B
^THE DISK FILE USED IN THE SAMPLE IS NAMED ^^WILD.INP\\. ^IT CONTAINS
A SET OF ^^LODTST\\ PARAMETERS THAT GENERATE A VERY COMPLEX JOB MIX THAT
CAN BE USED TO VERIFY SYSTEM SOFTWARE RELIABILITY WHENEVER A NEW MONITOR
IS LOADED. ^THE FILE CONTENTS ARE AS FOLLOWS:
.B;.LM10;.TS35
10	;^INTERVAL BETWEEN ^^SYSTAT\\S
.B
60	;^LENGTH OF TEST
.B
^M	;^JOB DATA OPTION
.B
4,220	;^BASE ^^PPN\\
.B
2	;^^MODULO\\ NUMBER
.B
20	;20 ^^LODIO\\ JOBS
.B
10	;10 ^^LODCPU\\ JOBS
.B
10	;10 ^^LODAVE\\ JOBS
.B
10	;10 ^^LODPQ1\\ JOBS
.B
4	;4 ^^LODSLP\\ JOBS
.B
8	;8 ^^LODCOR\\ JOBS
.B
2	;2 ^^LODOPN\\ JOBS
.B;.LM0
^THE DIALOGUE TO START THIS TEST IS AS FOLLOWS:
.LS;.LE;^LOGIN A [1,2] JOB.
.LE;^^RUN TST:LODTST\\
.LE;^^ENTER INPUT FILE SPEC (DEFAULT IS TTY:)
.BR
WILD.INP####################;\\^ENTER THE NAME OF THE INPUT FILE
.ELS
^ALL FURTHER RESPONSES ARE READ FROM THE DISK FILE ^^WILD.INP\\. ^THE
TEST PROCEEDS AUTOMATICALLY FROM THIS POINT.
.HL1 ^&SAMPLE RUN 2\&
\\^THIS SAMPLE SHOWS HOW TO RUN A SIMULATION TEST USING AN ^^OPSER.ATO\\ FILE
WITH ^^SCDSET\\ AND ^^LODTST\\ READING THEIR PARAMETERS FROM DISK FILES.
^IN THE SAMPLE, THE OPERATOR COPIES THE ^^SCDSET\\ INPUT FILE ^^TEST.SCD\\
TO THE STANDARD INPUT FILE ^^SCDSET.INP\\. ^THIS TECHNIQUE
MAKES IT POSSIBLE TO DO MULTIPLE RUNS WITH THE SAME JOB MIX USING 
DIFFERENT SCHEDULING PARAMETERS. ^FOR EACH RUN, THE OPERATOR COPIES THE
DESIRED ^^SCDSET\\ FILE TO THE STANDARD INPUT FILE.
.B
^THE TEST PROCEDURE IS:
.LS;.LE;^^LOGIN\\ A [1,2] JOB.
.LE;^^_.COPY SCDSET.INP=TEST.SCD
.LE;_.R OPSER
.BR
:AUTO TEST.ATO\\
.ELS
^THE SIMULATION TEST PROCEEDS AUTOMATICALLY.
.B
^THE ^^OPSER.ATO\\ FILE ^^TEST.ATO\\ CONTAINS THE
FOLLOWING COMMANDS:
.B;.LM5;.NF;.NJ
:^^SLOGIN
:DEFINE LI=
LI-SET HPQ 1
LI-R SCDSET
LI-INPUT
LI-GET SYS: LINES
LI-CST
LI-DET
:SLOGIN
:DEFINE M-
M-RUN TST:LODTST
M-TEST.INP\\
.B;.LM0;.F;.J
^THE ^^LODTST\\ INPUT FILE ^^TEST.INP\\
CONTAINS THE FOLLOWING:
.B;.LM10;.TS35;.NF;.NJ
10	;^INTERVAL BETWEEN ^^SYSTAT\\S
.B
30	;^LENGTH OF TEST
.B
^M	;^^MODULO\\ OPTION
.B
4,204	;^BASE ^^PPN\\
.B
1	;^ALL JOBS UNDER 4,204
.B
12	;12 ^^LODIO\\ JOBS
.B
12	;12 ^^LODCPU\\ JOBS
.B
28	;28 ^^LODAVE\\ JOBS
.B
8	;8 ^^LODPQ1\\ JOBS
.B
0	;^NO ^^LODSLP\\ JOBS
.B
0	;^NO ^^LODCOR\\ JOBS
.B
0	;^NO ^^LODOPN\\ JOBS
.B;.LM0;.F;.J