E.R.T.E. User Manual

1) introduction 2) script formats 3) parameter files 4) running E.R.T.E. 5) error messages 6) configuring E.R.T.E. 7) data analysis 8) script file utilities 9) other relevant documentation
Issue no. 6.0 (for ERTE MK.3 & ERTE MK.4) 16th March 1979

Section 1: introduction

The EDINBURGH REMOTE TERMINAL EMULATOR is a system designed to simulate terminal users on a Multi Access System. It operates by passing commands (held in SCRIPT FILES) to the receiving system (referred to as the TARGET in the rest of this document) as if from ordinary terminals. These script files and the corresponding parameter files may be generated using the MAVIS [Brebner 1977] suite or merely by editing appropriate text files using the standard system editor. The versions of ERTE described have been used extensively on EMAS 4/75, various EMAS 2900'S and DEC VAX VMS. This document describes particular implementations of ERTE specific to the needs of the original SRC funded research project ( SRC grants BRG 93968 and BRG 96084 ), a more general discussion of ERTE may be found in ADAMS et al 1977. The current supported versions of ERTE are as follows: ERTE mk.3.0 Simulates a TCP on the RCO net, talking NSI and ITP protocols down 1 concentrated synchronous line. Upto 48 simultaneous users on a 32k word PDP 11/40. ERTE mk.3.1 Simulates a TCP connected directly to the target FRONT END, talking NSI and ITP protocols down 1 concentrated asynchronous line ( usually a C.S. dept LINK ). Upto 48 users on a 32k word PDP 11/40. ERTE mk.3.2 Simulates a TCP on the RCO net, talking NSI and ITP protocols down 1 concentrated synchronous line. Upto 128 users have been handled on a 48k word PDP 11/40, and more may be possible. ERTE mk.4.0 Outputs characters onto a number of individual asynchronous lines, no protocol is usually placed on these and ERTE is connected to the target as though it were a number of local terminals. Currently up to only 7 users have been simulated by this method due to the non existence of any more multiplexor lines. Capacity of the PDP 11/40 under this regime is not known, but will not be as high as under ERTE mk.3 as extra processing is required to identify system prompt messages etc. The entire package is written in the high level language IMP-77 [Robertson 1977] and the listings are intended to be self documenting. This document is intended to suplement said listings and give a quick guide to running the package. ERTE consists of several co-operating tasks running under the DEIMOS Operating System on a PDP 11 with memory management and at least 32K Core Memory. The tasks are as follows:- INIT Initialise and Control Task ( given the DEIMOS name of ERTE ) TIME Stimulator Clock Task DQS1 DQS/11E synchronous line Communications Handler ( mk.3 ) DZAn DZ/11 Multiplexor Handlers ( mk.4 ) PROT Line Protocol Handler ( HDLC ) ( mk.3 ) CSLK C.S. Link Handler and HDLC Protocol Handler ( mk.3.1 ) NSI Network Protocol Handler ( to RCO NSI ) ( mk.3 ) TCP Terminal Protocol Handler ( to RCO ITP ) ( mk.3 ) TSIM Terminal Simulator ( mk.4 ) CPUT Optional CPU Utilisation Module TSKn n SCRIPT Tasks, each of which can handle up to a fixed number of scripts for the "virtual terminals" (currently 16 scripts). ( mk.3 ) TSCn n SCRIPT Tasks ( mk.4 version of TSK ) All the details of the number of scripts, etc. are passed to ERTE in PARAMETER FILES, one per Script Task. The limit to the number of script tasks and virtual consoles is determined by the available core. All monitoring data from ERTE is output to a fixed file , XOT, on a specified disc unit, and there is a set of utilities for processing this data. (See SECTION 7)

Section 2: script formats

A script file contains the simulated input from a terminal. It may be of any length and can include any number of user sessions i.e. loging on and off. Its format is as follows command line check line delay time COMMAND LINE:- This is passed on verbatim to the system (current max. 70 characters). Note that the script must start with the usual system startup requirements (&, EMAS, USERNAME, PASSWORD) CHECK LINE:- May be used to verify the script. In ERTE mk.3 this is currently not used ( line usually holds a "0") except that the last check digit in a user session MUST be negative. In ERTE mk.4 this line is used to hold the expected system prompt message, or a "0" if the prompt is the same as that of the previous interaction. All text output from the target will be checked against this message for a match. On a match being found, the TSIM task will inform the TSC task and the next user think time and command will start. The format of this line is "<prompt text>0". The "prompt text" should not contain a "0" and should be as short as possible to identify the prompt. N.B. the first occurence of the "prompt text" appearing in the output from the target is taken to be the prompt. If the prompt is unchanged then the CHECK LINE should contain a "0" ( spaces before the "0" are significant ). N.B. attempting to change the "prompt text" to the same value will usually cause the TSIM task (which actually does the checking for the prompts) to send an immediate reply to the TSC task indicating a prompt has been found. The CHECK LINE should only contain a change of "prompt text" when necessary. DELAY TIME:- The time in seconds between the system response to the command and the input of the next command in the script (i.e. the user think time). User think times are normally calculated from the end of typing of the target's prompt. However for ERTE mk.3.3 and ERTE mk.4 a "type ahead" option is included. If a minus sign precedes the user think time then the user think time is calculated from the last character being input from the current command and ERTE does not wait for the system's prompt to appear. There should be no redundant blank lines in the script file and no terminator is required. The utility ANALY can be used to tidy up script files, verify them and provide a summary of delay times etc. SCRIPT files may exist on any logical disc unit under any user file system number, but the name MUST be EXACTLY 6 characters in length.

Section 3: parameter files

The parameter files inform the script tasks within ERTE which script files etc. to use. the parameter files MUST be on the same unit and file system number as ERTE when it is run and there is one such file per script task. Parameter file names must be of the form TKPARn where n = Script Task Number (1-9) and have the following format line 1: <number of scripts> <typing rate> <start up delay> The TYPING RATE is the percentage of line speed to be used as a typing speed for inputing the command lines of the script. The START UP DELAY is the time in seconds between sending the first logon attempt for each sucessive script. For each script the task has to handle there are four lines of data:- 1: script file name (exactly 6 characters) 2: file system number for file (0-63 decimal) 3: disc unit for file 4: line speed in characters per second. No terminator is required.

Section 4: running e.r.t.e

. To set up any TARGET to receive ERTE input the appropriate experimentors guide should first be consulted [see Section 9]. The following procedure should then be followed:- 1)ipl deimos 2)logon to the appropriate deimos file system The following tasks are loaded for ERTE mk.3.0 and mk.3.2: STIMULATOR USER COMMENTS ERTEnn Loads the current version nn of ERTE ( nn usually found in the current edition of the INSTANT ERTE GUIDE). ERTE VNN DD/MM/YY Reports the version number and date of issue. If wrong halt machine & start again. TCP UNIT: n Requests the logical output device for the file ( XOT ) produced by the TCP task. On the original configuration n=2 or 3 or 0 (if only one disc). TIME LOADED Timer Module Loaded. DQSY LOADED DQS/11E Handler. PROT LOADED Line Protocol Handler. TCPn LOADED Terminal Protocol Handler. n='X' - The non NSI version. n='Z' - The NSI version. NSIZ LOADED Network Protocol Handler (if using TCPZ). CPUT LOADED CPU Utilisation Monitoring task (see below) NSIZ: PROT UP Physical line up NSIZ: ATTACHED as nn Sucessfully attached to RCO network NSIZ: CONNECTED to nn Sucessfully connected to target TCPZ: BUFF REM nn Sometimes output by ERTE mk.3.2. Means that one of the ITP message buffer pool spans a PDP 11 segment boundary and has been removed from the free pool. This usually only happens in versions with large buffer pools E.G. mk.3.2. TCPZ: ITP READY All initialisation complete and now ready to start. It is now safe to reply to the " NUMBER OF TASKS" message (N.B. the NSIZ, TCPZ and " NUMBER OF TASKS" messages are output by 3 different tasks and so may come out in any interleaved order, DO NOT REPLY to the " NUMBER OF TASKS" message until the ITP READY message has appeared) NUMBER OF TASKSn Asks for the number of script tasks to be loaded. This number is currently 1,2, or 3 (for 1-16, 1-32 or 1-48 scripts) but will vary on core size. script task 1 started with x scripts Each script task is loaded and the corresponding parameter file is read. The first commands in the scripts are found and the scripts are started after the appropriate delay. It is at this point that many of the obvious errors will occur ( SECTION 5). The loading sequence of ERTE mk.3.1 differs in the following tasks: CSLK LOADED C.S. departmental link handler, replaces PROT and DQSY. The loading sequence of ERTE mk.4.0 differs in the following tasks: DZAn LOADED n MULTIPLEXOR tasks, replaces PROT and DQSY of mk.3.0. TSIM LOADED Terminal simulator and prompt checking task replaces TCP and NSI of ERTE mk.3.0. The SCRIPT TASKS loaded in mk.4.0 are also different and are called TSCn rather than TSKn. All the query mechanisms and state numberings within TSC remains the same as that in TSK however. From this point on ERTE runs automatically but the following controls are available by using the DEIMOS INT mechanism. int z tskn or int z tscn where z may be ?: Prints a status report for each script under that task. It is a table with script number, state, number of command lines sent and the number of times that the script has been held up due to the next command not being brought off the disc in time. This normally only happens with a zero think time, as on start up and this number should be relatively small compared to the number of commands. State may be one of:- 0 about to send a command(typing one in) 1 waiting for tcp buffer(1st try) 2 waiting for tcp buffer(subsequent try) 3 waiting for emas to respond 4 in think delay 5 waiting for disc transfer to complete 6 start up state 7 end of script file reached 8 requesting prompt buffer from tsim ( mk.4 only ) 9 typing ahead (mk.3.3 and mk.4 only ) Q: FULL STATUS - as for ? plus internal script buffer information (see program listing for details). L: ENTER LOOP MODE. If a script reaches state 7 it is restarted from the beginning. A: ABORT the task immediately N.B. The INT flag is only inspected every 5 seconds so there may be some delay. A new INT command will overwrite the old one (e.g. A will overwrite L but ? overwrites itself to 0 after typing the report). The INT mechanism may be used with task CPUT to measure the CPU Idle Time in the 11/40 while ERTE is running. INT X CPUT where X may be:- t: measure over 10 second interval h: measure over 30 second interval m: measure over 60 second interval a: stop closing down erte The INT mechanism may be used with the INIT task (known in DEIMOS as the task ERTE ) to close down ERTE. This is quicker than doing an INT A to each of the SCRIPT tasks. The shutdown command is: INT A ERTE Alternatively SCRIPTS tasks will terminate naturally when all the scripts in a task have reached state 7 and loop mode is not set. SCRIPT tasks can of course also be halted by an INT A. When all the scripts in a task have finished or INT A is sent, the task will produce a script status report and the message TASK nn TERMINATED will appear (twice). When all the SCRIPT tasks have terminated the TCP or TSIM task is stopped and will produce data on the utilisation of its internal queues, then the TIME task is stopped giving the run time in MINS, and SECS, 1/10TH secs. Finally after a pause the message ERTE STOPPED will appear. N.B. This still leaves three tasks in core, DQS1 and PROT which should be killed immediately, and CPUT which should be sent an INT A. (It may be removed at any time using this method). However ERTE often crashes at this point (but this should not be a cause for alarm) so re IPL ing the system may be the best course of action.

Section 5: error mesages

Most ERTE error messages are fatal in that they cause at least part of ERTE to stop. The messages below are divided into the tasks from which they originate. 5.1) init INIT reports all error messages coming from the script tasks (5.2) and its only other error condition is unexpected message a b c where A = TASK ID sending the message , B= P_A1, C= P_A3. This usually indicates a faulty start up: reload & try again. N.B. the INIT task usually takes the DEIMOS name of ERTE. 5.2) script tasks All the SCRIPT TASK errors are reported by INIT with the following format:- fatal error number x task number n where N=Script Task Number, X=Error Number as follows ( N.B. all these errors cause the script task to stop) -1 Internal script buffers exhausted -2 Bad disc read (script file) -3 Bad disc read at start of script file (file may not exist) -4 Script file corrupt-verify the file system before restarting -5 Run out of prompt buffers - increase the number held, PROMPTBMAX and PROMPTBTOTAL ( mk.4.0 ). Not used in mk.3. -6 Not Used -7 Disc queue full -8 Parameter file too short (end of file reached before all scripts found or file corrupt) -9 Parameter file disc read error -10 Symbol in parameter data -11 Parameter file does not exist -12 Disc read error on first block of parameter file 5.3) tcp All error messages cause the TCP task to stop and are in the format tcp <message> <time> <virtual console number>, where the message may be:- BREAK INT TO USER Bad control message from FEP TARGET DOWN TARGET JUST BACK UP BUFF NOT SENT Bad replies from a transmit to TARGET request ABORTED CONSL Message received from script task for a virtual console which has been aborted MQ DN FULL Queue of messages to TARGET full GAH Q FULL Queue of GO-AHEAD messages to TARGET node is full. 5.4) nsi All error messages cause the NSI task to stop and are in the format: nsiz: < message > < nsi state > where the messages may be: ITP Q FULL - Too many messages from TCP -> target. ( Cut down the number of outstanding writes TCP may send ). ITP READY Q FULL - Too many read from target messages sent by TCP. ( Cut down on the number of outstanding reads TCP can send. ) TOO MANY FREE SB'S - NSI SEND BLOCK buffering gone haywire. NO FREE SB'S - Have run out of NSI SEND BLOCKS. ( Increase the number of SB'S available to NSI. ) STATE NOT ATTACH - NSI ATTACH to network reply received at odd time. ( See B.G. or S.C. ) STATE NOT REMOVE - NSI REMOVE from network message received at odd time. ( Target FRONT END may have gone down. ) PROT NOT UP - PROT task does not wish to start. ( Check physical line exists. ) UGH FROM PROT - Lousy message from PROT. ( ?? ) LOUSY POFF - A DEIMOS taSks unknown to NSI sent it a mesage. ( Check other tasks. ) The NSI states are: 1 - initialising 2 - attaching to network 3 - connecting to target 4 - running 5 - disconnecting from target 6 - removing from network 5.5) prot The PROTOCOL HANDLER may produce mesages of the form PROT:MESSAGE where MESSAGE can be:- DM Data miss - can be ignored BAD ACK Bad ack from front end (fatal if many of them) NOISE Ignore this 5.6) cslk All error messages are in the format " CSLK:" <MESSAGE>, where message may be: BUFFER NOT IN SEG 6 OUT STATE ERROR IN STATE FAULT 5.7) dza All error messages are in the format " DZ11:*" <fault number><line number> 5.8) tsim All error messages cause TSIM to stop with a fault dump. The messages are in the format " TSIM" <FAULT message><time of day><cnsl number>. The fault messages are: 0 LENGTH Attempting to send an input line of length 0 to the target. MQDN FULL The array holding input to target messages is full. FT, MULTOUT The multiplexor number is out of range on input to target. MULT W REPLY The multiplexor task rejected an input to target message for some reason. 5.9) system messages DEIMOS may itself produce error mesages especially during shutdown when BAD SER will appear and can be ignored. See DEIMOS manual for other messages.[Gilmore 1978]

Section 6: configuring e.r.t.e

. The principle tasks comprising ERTE (see SECTION 1) each have several configuration parameters to enable the user to build a system for his requirements. These parameters are now described on a task by task basis( NB In all cases recompilation of the task source is required). For further details see the self documenting listings. The Initialise Task This task automatically loads any number of script tasks (see below) but must be altered if the log file name is to be modified. In this case change the array TCPZ. The INIT task also passes some network information to TCP (mk.3 ). This data includes the network address of TCP and the target as well as the target's name. This is all held in array NETWORK. For ERTE mk.4.0 the INIT task passes the initial target prompt, the character to be passed to the target at logon, the logon character held in the scripts ( will be translated to the target logon character by TSIM ), the number of multiplexors available and their DEIMOS service numbers. Again this is held in the array NETWORK. The Time Task The constant ARSIZE is the size of the request buffer and thus must be large enough to cope with a request from each script plus several other requests.The formula arsize = number of scripts * 1.5 is recommended as a minimum buffer allocation. The Script Tasks The number of SCRIPT tasks required for a particular configuration is a function of the number of scripts. It is not recommended to have more than 16 scripts per task as this may cause excessive internal queuing. To set up a script task edit the following NUMSCR The number of scripts this task is to handle. SYSLOT The system slot the task is to run in.These start at 26 for TSK1 and descend,25 for TSK2,ETC. PARMF This array holds the name of the parameter file to be used by this task,normally TKPARN. SCBUFFS This is the number of internal script buffers, which should be at least 2*NUMSCR and must be >NUMSCR. This is dependant on the number of characters sent in on command lines by the scripts. The buffers are each 20 characters long and there must be sufficient to cope with the peak load. PRMPTL This determines the maximum size of any piece of "prompt text" ( mk.4.0 only ). PRMPTBMAX This (along with PRMPTBTOTAL) determines the number of prompt buffers held, current recommended value of 8 ( mk.4.0 only ). PRMPTEND This is the character which defines the end of "prompt text" ina CHECK LINE or an empty CHECK LINE, currently is set to "0" ( mk.4.0 only ). TEXTEND This is the character which defines the end of a command line to be passed on to the target, currently set to be the newline symbol, however there is no logical reason stopping any character being used - though the format of the script files will of course then change. Compile the required script tasks with a stack of 200, no streams and ALL WITH THE SAME NAME, TSK1 ( or TSC in mk.4.0 ). The system will code share the tasks. The Tcp Task The sets of constants at the beginning of the TCP task define (among other things) the number of virtual consoles this TCP may multiplex, the number of SCRIPT tasks it may communicate with and the amount of internal buffering it holds. The main internal buffering has to do with text messages passing between the SCRIPT tasks and the PROTOCOL tasks nearer the TARGET. There is a separate queues for ITP protocol level GO-AHEAD messages. The major constants are:- TOTSCRIPTS The highest virtual console number expected(i. e. the total number of virtual consoles -1,numbering starts at 0). PERTASK The number of virtual consoles per SCRIPT task. MAXTASK The maximum number of SCRIPT tasks. MAXREAD The maximum number of reads ( from target ) which may be outstanding with the next PROTOCOL task towards the TARGET. MAXWRITE The maximum number of writes(to TARGET) which may be outstanding with the PROTOCOL task towards TARGET. MDQL The maximum number of messages to target which may be held in the TCP at a time BUFFARL The number of message buffers which exist ( MAXREAD + MAXWRITE + MDQL+1). GAHQL The size of the GO-AHEAD queue -1 (always a power of 2 -1). CHECKOUT ='Y' if contents of all messages are to be recorded in the XOT file. ='N' if not (the recommended mode for 'long distance' ERTEs). TIMESTAMP ='Y' if a time stamp (in 1/10 second ticks) is to be appended to all messages in the XOT file. ='N' if not. TOXOT ='Y' if an XOT file exists, rather than logging directly to the operator's console. ='N' will log to operator's console. TRACEGAH ='N' if GO-AHEADS are to be logged. ='N' if they are not. The Nsi Task As with TCP there are a number of constants in the NSI task defining how many mesages it will buffer etc. The most important are: MAX RD SB The maximum number of SEND BLOCK reads (from target) sent to the PROT task at any time (currently 3). SBMAX The maximm number of SB's in existence -1 (currently 7). SBLMAX The maximum length of a SB in bytes (currently 256). TO TARG MAX The maximum number of ITP messages queued towards the target -1 (currently 7). ITP READY MAX The maximum number of ITP read from target buffers held at a time -1 (currently 7). If the NSI task is to increase its SB throughput ( for larger numbers of users) then the SB buffering will have to be increased, the number of SB'S allowed outstanding each way over the network (negotiated at attach time) will have to be increased and probably a check will have to be made that none of the SB'S in the buffer pool span a PDP 11 segment boundary (as in ERTE mk.3.2). The Tsim Task Most of the constants involved in TSIM are the same as those of TCP. The task assumes 1 physical multiplexor per SCRIPT task ( TSC version of the SCRIPT task ).

Section 7: data analysis

This section describes some data analysis programs which operate on the XOT file produced by the TCP (or TSIM) task. XOT files are standard DEIMOS text files and can be inspected using the standard system editor. The XOT file records, appart from a header, *< TCP VERSION> ,and the terminator '+',have the format:- <time stamp><record type><virt consl><length><message>nl where record type may be one of:- 1 = message from script to emas 2 = from emas to script 3 = prompt message sent to script The length is in characters and there is no message text for a type 3 record. The time stamp is in 1/10th second ticks (this will wrap round approximately every 55 minutes ). For ERTE mk.3, type 1 records are produced whenever a user would have completed typing an input line and the packet corresponding to that line is fired off into the network. For ERTE mk.4 type 1 records are produced when the input line is passed to the multiplexor task for transmission to the target, there will still be some "typing delay" to come in this case corresponding to L character transmission times on that line (where L is the length of the input message). Type 2 and 3 messages are produced at similar points in both mk.3 and mk.4. ( however in mk.3 type 2 messages correspond to a packet being received at a TCP on the network with several characters per packet, in mk.4 type 2 messages are for individual characaters being printed on a particular line, hence XOT files in mk.4 tend to be larger). The analysis programs are set up to allow for the difference in the timing points of type 1 messages so that the final results are equivalent. All the analysis programs described have evolved to meet some of the needs of the original SRC project. Thus they have been set up to obtain measurements from experiments using the F1 and CS1BM workloads, run under the standard experiment format (once the first user has started to log on, an 8 minute settling period is allowed so that all users can log on and the system reach some kind of steady state, the target's performance is then monitored for a 30 minutes window, the end of this window marks the end of the experiment ). Monitoring utilities internal to the targets used during the project have also been produced which will follow this format, they are not described in this document. The common performance metrics quoted are: REACTION TIME The time from the user typing the last character of his input line until the time the target outputs the first character of its reply (not counting any echoed characters). Thus this represents the time the user waits with nothing happening on his console. RESPONSE TIME The time from the user typing the last character of his input line until all of the target's reply has been typed and the target's prompt message requesting further input has also been typed. Thus this represents the time (including typing delay) it takes the target to deal with a command and make itself ready for the next. THROUGHPUT The mean number of REACTIONS completed per minute SATISFACTION LEVEL The percentage of REACTIONS completing within 2 seconds. The cut off point of 2 seconds is chosen as REACTION time of greater than this level cease to be interactive. The distributions of REACTION and RESPONSE time are often heavily skewed and may be heavily influenced by a small number of very long times, this figure gives some indication of this skewing. As with ERTE proper these programs are written in IMP-77 and should be easily modified. However the IMP-77 compiler on the original configuration did not have real arithmetic and a double word arithmetic package was produced to get round the extreme limitations imposed by 16 bit integers. These programs tend to use this double word arithmetic package heavily [ Currie 1976 ]. alog ALOG is an analysis program devised to obtain means for response and reaction times. To run ALOG, type: alog <xotfile>/<data file>,<expanded log> .alog will print:- erte vrsn: Reply with 3 or 4 corresponding to ERTE mk.3 or mk.4. For replies of 4 (corresponding to ERTE mk.4 XOT files) , to enable a correction to be made for character transmission times towards the target in ERTE mk.4.0 , ALOG will then give two extra prompts: chars per unit: The reply to this (and the next request) is to give an indication of the line speed to which all the lines were set (must currently all be the same). ALOG will then prompt (again mk.4 only) units per 1/10 sec: Reply with the number of units (as given as reply to the previous prompt) per 1/10 second tick. E.G. 10 character per second terminals would have 1 character per unit and 1 unit per 1/10 second tick. ALOG will then prompt (in all versions) give mode: all data=1,expand log=2,summary only=3,fixed=4 Return the mode (meaning as follows) 1 Summary of activity of each virtual console; the the number of records procesed ; the time interval monitored and a summary of all console activity. 2 As for 1 to Stream 1 plus expanded XOT file to Stream 2 3 As for 1 to Stream 1 missing out individual console data 4 As for 1 but over fixed time period (skip first 8 mins then analyse for 30 mins) For all modes except 4 , the following parameters are requested by the program:- MAX RECORDS: The maximum number of records to be analysed. (-1 means all possible records). MAX TIME: The maximum time (in seconds ) to be analysed (-1 means the maximum possible time). GRAPHS: Reply 1 means print graphs of REACTION times, RESPONSE times, USER DELAY times (both for raw data and normalised). A reply not equal to 1 means do not. SKIP FIRST 8:Reply 1 means skip first 8 minutes in file. A reply not equal to 1 means do not. All modes (including mode=4) will request a TITLE: ALOG will read in the next line (until a 'newline' symbol) to be output on all analysis files. The virtual console data is of the form:- 1 number of interactions. 2 characters into and out of the target. 3 characters per line into and out of the target. 4 response time from a stimulus being given to the target and the target being ready to take the next command. 5 reaction time from a stimulus being given to the target until the first character being received from the target 6 think time. 7 tcp delay (time from first reply to prompt). 8 interaction rate per min. Information is also produced on the number of REACTIONS completing within certain time ranges (satisfaction levels). N.B. interaction rates will be incorrect if the time interval monitored is not an integeral number of 10 minute periods. The current version is 6.0 (14/3/79) and is set up for upto 128 terminals. blog BLOG is an analysis program to obtain REACTION and RESPONSE times, SATISFACTION LEVELS and a COUNT of OCCURRENCES for specific TARGET commands. To run the various versions of BLOG, type:- f1blog <xotfile>/<datafile>,<logfile> (f1 standard commands mk.3) csblog <xotfile>/<datafile>,<logfile> (cs1bm standard commands mk.3) cvblog <xotfile>/<datafile>,<logfile> (cs1bm standard commands mk.4) BLOG will prompt:- erte vrsn: Reply with a 3 (for ERTE mk.3) or a 4 (for ERTE mk.4). For replies of 4 BLOG prompts for 2 additional pieces of information: chars per unit: units per 1/10 sec: Reply to these as for ALOG to indicate line speed settings. BLOG then prompts: mode: Return the mode as follows:- 1 Measure response times for standard set of commands F1 - (IMP, FORTE, EDIT, RUN, LIST ), CS1BM - (IMP, COPY, E, RUN, FILES). 2 As for 1, but for a user-defined command set 3 As for 1, but over a fixed time period (skip 8 minutes, measure for 30) 4 As for 2, but over a fixed time period (skip 8 minutes, measure for 30) BLOG next prompts:- graphs: Reply '1' if graphs of response times (both raw data and normalised) for each command are required. Otherwise, reply '0'. For modes 1 and 2, the number of records to be summarised is asked for (MAX RECORDS), -1 means all; ditto the max time in seconds. BLOG will analyse the max records or the max time possible. For modes 2 and 4, in response to the prompt:- commands for analysis: a maximum of 5 TARGET command names should be input, separated by spaces on one line. If graphs are to be produced, the message:- scale for time to prompt: is output. For each command to be measured, the graph scale size should be input, bearing in mind that the maximum response time shown on the graph will be 50*(scale size) ticks. Similarly, the message:- scale for time to reply: is output, and answered. N.B. for versions before version 2.0 a 38 minute window was used for modes 3 and 4. In this the first 8 minutes were not skipped but included in the majority of the results, the satisfaction levels quoted were also wrong as the count of good reactions was reset at the end of the first 8 minutes but the total count of all REACTIONS was not. The LOG file produced on stream 2 contains records of the following format <response type><command type><time> where: RESPONSE TYPE =0 for RESPONSE times, =1 for REACTION times. COMMAND TYPE Lies between 0 and 5 (inclusive) for the type of command found TIME Is the actual RESPONSE or REACTION time in 1/10 second ticks. This file always starts with the title line of the BLOG results file and ends with a "-1". This file is normally shipped up to a larger mainframe (via T44) for further statistical analysis which is impractical on the original PDP 11. Current versions 2.0 (f1blog), 2.1 (cvblog), 2.2 (csblog) (14/3/79) are set up for upto 128 users. clog CLOG is an analysis program to obtain the frequency of use of specific TARGET commands by each virtual console. To run CLOG, type:- clog <xotfile>/<data file> The prompts and responses for CLOG are similar to those for BLOG. However only two are used (reply as for BLOG) MODE: COMMANDS FOR ANALYSIS: Output from CLOG consists of a single table of commands against virtual consoles, together with row and column sub-totals. There is no timing involved with this program and it will run on XOT files for both mk.3 and mk.4. CLOG is only set up for the F1 group of standard commands. Current version 2.2 (15/3/79) is set up for upto 128 termnals. dlog DLOG is an analysis program to check whether or not there have been any untoward happenings during the run. It currently searchs the XOT file for replies from the EMAS network which would indicate some trouble. These messages currently are: EMAS? ** 2970 DOWN SYSTEM DOWN NO USER SERVICE SYSTEM FULL INVALID USER INVALID PASSWORD INVALID NAME NOT AVAILABLE To run DLOG, type:- dlog <xotfile>/<data file> DLOG will prompt:- TITLE: It will then read in the next line as a title line to be out put at the head of the datafile. The output will tell the number of occurrences of the EVIL messages over the first 8 minutes, the monitored window (the next 30 minutes) and the whole file. It will also check that all the virtual consoles managed to log-on successfully. DLOG is currently only set up for use with ERTE mk.3 and the EMAS targets. Current version 7 (15/11/78) is currently set up for upto 128 terminals. plog PLOG is an analysis program to reproduce the 'console log' of any virtual console in the XOT file. To run PLOG, type:- plog <xotfile>/<datafile> PLOG will prompt:- MODE: MODE=1 means print log over whole file. MODE=4 means print log over monitored window only. VIRT CNSL: Reply with the number of the virtual console whose log is required. If logs are wished for a range of virtual consoles then reply -1. In the case of a -1 reply PLOG will then prompt FIRST CNSL: LAST CNSL: The number of the lowest and highest virtual consoles of the group of consoles whose logs are required should be the replies. MAX RECORDS: The maximum records in the XOT file which should be analysed in printing the logs should be the reply (-1 means all records). MAX TIME: The maximum amount of time in the XOT file to be considered while printing out the logs should be the reply (-1 means the whole file). All times are in seconds. TITLE: The program will read in the next line and will output it at the head of all the logs it prints. PLOG will then output all messages going to and from the virtual consoles in question.It will append the times at which there is any change in the direction of the message flow and will indicate in which direction the messages are flowing (i. e. to or from the TARGET). PLOG will run on either mk.3 or mk.4 XOT files but has not been adjusted to take into account the timing differences on input between the mk.3 and mk.4 as it was not envisaged that this utility would be used to guage those times to any great accuracy. Current version 1.2 (24/1/79) is set up for upto 128 terminals. overlord OVERLORD is utility to analyse several XOT files in one run. This program will search all the file systems on a logical disc unit for XOT files; once it finds one it will call a version of DLOG (named DLIG ) to check if the run was successfull. If the run was a success the a version of ALOG ( ALIG ) will be called to analyse the file as for mode 4 of ALOG, it will also print out corrected values for the major performance metrics taking into account any messages resulting from unsuccessfull log ons. Then a version of BLOG ( BLIG ) is called as though for mode 3 of BLOG. Once the entire logical unit has been scanned the program will ask if the files created should be printed (via the C.S. FILESTORE printer) and then destroyed. All replies to OVERLORD prompts are on a single line. To run OVERLORD, type: OVER OVER will request XOT UNIT: reply with the number of the logical disc unit to be scanned. OVER will then request TITLE: The line, typed in will be copied onto the top of all files produced during the run. OVERLORD will then, type out some information on the results it is about to produce and then start to analyse XOT files. When all the file systems have been checked it will then request PRINT: Reply with "y" to have all files produced printed on the FILESTORE printer, "n" if not. OVER will then prompt DELETE: Reply with "y" if all files generated during the run are to be destroyed, "n" if not. During the running of OVER, DLIG will produce files called CERT in the same file system as any XOT file it finds, ALIG ( if called ) will produce files called RESL and BLIG will produce files called BLOG. All thses files are created on logical disc unit 0. Each file produced will have a copy of the title line printed at its head and will have the number of the filesystem in which the corresponding XOT file was found appended to this title line. This program will require the C.S. department FILESTORE to spool all printing of the results files. No version of OVERLORD has been produced yet for ERTE mk.4.0 ( owing to the lack of DLOG for these XOT files ). When the change is made to run this on mk.4 XOT files both BLIG and ALIG will require minor changes, the changes in BLIG are essentially the same as those indicated in the BLOG listings. Current version 1.3 (15/11/78) uses " LIG " versions set up for upto 128 terminals. The current versions are: ALIG - auto 1.3 (18/12/78). BLIG - auto 2.0 (16/3/79), CS1BM standard commands. BLIG - auto 2.1 (16/3/79), F1 standard commands. DLIG - auto 1.4 (16/3/79).

Section 8: script file utilities

anal ANAL is a utility for checking out individual SCRIPT files made up to ERTE mk.3 standard. It will check that the file is in the correct format and give a compacted listing of the file, some information on the input character rate and think times contained in the file and if required a cleaned up version of the file. To run it, type: ANAL <scriptfile>/<listing file>,<new script file> ANAL will prompt GIVE SCRIPT FILE name: Reply with the name of the SCRIPT file involved (the whole line is read and reproduced on top of all listing files as with the TITLE line in the XOT analysis programs). ANAL will then prompt MODE: Where MODE=1 Print compacted listing file and produce summary of think time and character input produced by this script. MODE=2 Only print think time and character input summary. MODE=3 Create new SCRIPT file on stream 2, removing all redundant spaces in check lines and think time lines. This mode was also used to translate the original F1 scripts which had the pre-network logon sequences. Current version 1.4 (15/3/79). script analyser The SCRIPT ANALYSER is a specially modified version of ERTE which will run through a set of scripts (defined by a single TKPAR file) and will check that they are valid and produce some statistics on the expected typing and think time delays as well as information on the distribution of distinct input lines. To run it the TKPAR file, the SCRIPT ANALYSER and the specially modified SCRIPT task (which currently takes upto 48 consoles) must all be in the same file system on unit 0. It is not recommended that this utility be run in file systems used for normal ERTE work. This is currently only set up for mk.3. While running the modified SCRIPT task removes lines of input from the SCRIPT files, logs the think times and input line, and then pauses for a fixed response time ( 3 seconds) before going onto the next input line for that script. Currently upto 48 scripts can be handled at once in this single modified SCRIPT task, but there can only be 1 TKPAR file. To use this, type: SCRIPY The TIMER task will then be loaded and an appropriate message put out. It will prompt: Number of tasks: Reply with a 1. There is no reason why further special SCRIPT tasks should not be made up and run in parallel. However they would effectively each produce information on the particular benchmark defined in their own TKPAR file and this data would not be merged in any way. There may also be some confusion as to what information is coming from which special SCRIPT task as all output is currently to the console and not to a file ( it is a trivial operation to put the output to a file for each special script task). SCRIPY will next output a message saying how many scripts it is analysing (similar to that put out by a normal ERTE SCRIPT task on start up) and will proceed. The analysis can take some time. All the INT mechanisms for the normal SCRIPT task apply to this special SCRIPT task (which is also usually called TSK). When the SPECIAL SCRIPT task has finished (either all scripts reach state 7 or an INT A is given) then the following data is put out on the console (the printing can take some time). Buffer Usage Data on the usage of the internal script buffers held by the SCRIPT task. This can be very useful in tuning the buffer size held by these tasks for any particular benchmark. Input Text Data on the number of occurences of various lines of input text in the benchmark. These distinct input lines are currently defined as distinct sets of letters occuring before a "(" or any number. This can be useful in obtaining counts of various target commands etc in a benchmark for validation. Distributions Graphs of the distributions of INPUT LINE LENGTH, THINK TIME and TOTAL DELAY from the USER ( THINK TIME + TYPING DELAY ). Command Count A count of the total number of commands in each script in the benchmark. When the test run is complete the TIME task will still be running, this can be PURGED or the system may be re.ipl'd. The source file for the special SCRIPT file is usually called SCAN. As this is using a very non standard SCRIPT file it is advised that this be run in a completely separate file system from normal ERTE work. Current version 2 (22/2/78). script translator This utility is set up for ERTE mk.3 scripts. It takes a set of SCRIPT files all residing an the same unit and file system whose file names all share the same first 4 characters (known as a family) and creates a new family on a nominated unit and file system. This new family is a duplicate of the original (perhaps it should be called cloning). It also changes their target user number family names to a new family ( E.G. it can translate all ECSB to XXYY if required to make up a further set of scripts for a particular benchmark). It is currently based heavily on requirements to increase workload size on the EMAS targets and has been used to set up new F1 and CS1BM benchmark units by replicating current ones. To run this, type: SCTR It will prompt OLD FILE GROUP: Reply with something of the form <logical unit>.<family name>(<file system>) LOGICAL UNIT Is the logical disc unit holding the original SCRIPT file family FAMILY NAME Is the first 4 characters of the SCRIPT file name, common to all family members. FILE SYSTEM Is the file system holding the original SCRIPT files (in octal). E.G. 3.scrp(21) NEW FILE GROUP: Reply in the same format as above to define the new SCRIPT file family name. SCTR will next prompt OLD JOB NO: Reply with the 4 character family name of the target user number used by all the scripts in the original SCRIPT files. NEW JOB NO.: Reply with the 4 character family name of the target user name to be used by all the scripts in the new SCRIPT files. SCTR will call a program named TRIN for each file of the family it comes across. TRIN will copy the original file into a new one and at the same time will translate all occurences of text in the format < OLD JOB NO >< 2 digits > into < NEW JOB NO >< 2 digits > E.G it could change the job numbers from ECSB to GUWS. Current version 1.1 (22/11/78).

Section 9: Other relevant documentation

ADAMS J.C. "The Experimentor's Guide for EMAS 4/75" ESP Report 1978 ADAMS J.C. "The Experimentor's Guide for EMAS 2900" ESP Report 1978 ADAMS J.C. "The Instant ERTE Guide" ESP Report 1978 ADAMS J.C. CURRIE W.S. and GILMORE B.A.C. "The Structure and Uses of The Edinburgh Remote Terminal Emulator" CS DEPT Report CSR-12-77 1977 and Software Practice and Experience vol. 8 no. 4 1978 BREBNER G.J. "The MAVIS User's Guide" ESP Report 1977 BREBNER G.J. "MAVIS - A Script Generator for ERTE" ESP Report 1977 BREBNER G.R. "Noddy Explores The Network - T44, The Single User NSI Work Station" ESP Report NOV 1978 CURRIE W.S. "The Utility Routines" ESP Report MARCH 1977 GILMORE B.A.C. "User Manual for DEIMOS - An Operating System for the PDP 11" ERCC MAY 1978 ROBERTSON P.S.R. "The IMP-77 Language" CS DEPT Report CSR-19-77 1977 SHAW S. "Benchmark Utilities on the 2970" EMAS 2900 Documentation ERCC NOV 1978 SHAW S. "Setting Up Processes for the F1 Benchmark" EMAS 2900 Documentation ERCC NOV 1978