Jump Over Left Menu
L O Ford
Engineering Paper 43
An assumption has been made that engineers who use computers do so in patches of maybe a few weeks at a time and that each time that they start a new patch of computer work they need to relearn the operating system commands. Therefore it is important that the operating system interface presented to the user should be capable of being understood as quickly as possible by the new user. An attempt was made to evaluate the ease of use of the different operating systems. It is very difficult to perform such an evaluation objectively so most of the findings presented here are purely subjective.
An appropriate users manual was read before a session on a machine and then an attempt was made to input a FORTRAN program, compile it, edit it if necessary and then run it. Various other features of the system were tested as well, such as listing of directories, system status etc.
The following operating systems were tested:
- DEC SYSTEM 10 (KI 10)
- UNIVAC 1100 Operating System (UNIVAC 1108)
- KRONOS (CDC 6400)
- CANDE (BURROUGHS 6700)
The first two systems, DEC 10 and the UNIVAC 1108 were used at their respective sites, Nuclear Physics department, Oxford University and the Institute of Hydrology. Consequently, it was possible to input the test program by paper tape or cards. the second two systems were used from the Atlas building by telephone link and thus it was necessary to type the test program in at the terminal. The test program used was CPU1900.
The following pages illustrate the different operating systems and Table 1 summarises the commands.
|Entry key(s)||CTRL/C||Identity on keyboard eg UD108B||CR||CR||CTRL/A|
|LOGIN||LOGIN (prog no, user no)||@RUN runid, account, project-id eg
|Prompted by computer||Prompted by computer||LN jobname,username|
|Input of file||MAKE filename
|Editor (@ED) (or @DATA in BATCH)||Already in line editor (inputs to named workfile set in login)||Already in line editor (inputs to workfile)||INPUT filename|
|Listing of file on terminal||Type filename||@PRT filename||LIST (assumes workfile)||LIST (assumes workfile)
LIST 100 (lists specific line)
|To copy temporary file to permanent file||Type filename||@PRT filename||SAVE,tempfile=permfile||SAVE AS filename||LF filename|
|To copy permanent file to temporary file||Type filename||@PRT filename||FORT,OLD,TESTS subsystem filename||GET filename||LF filename|
|Rename file||REN newname=oldname||@CHG eltname,eltname||CHANGE,newfile=oldfile||TITLE filename||RENAME|
|Delete file||DELETE filename||@DELETE eltname||PURGE filename||REMOVE filename||ER filename|
|Directory listing||DIR (*.*) etc||@prt, TL filename||CATLIST||FILES||LD|
|To call the editor||EDIT filename for line editor. TECO for character editor||@ED,oldelt, newelt or
@ED Y eltname (update)
|Already in editor||Already in editor||ED oldfile,newfile|
|Free format FORTRAN||-||-||Continuation lines + in first column||Comments C* in columns 1 and 2. Continuation lines * in column 2||-|
|FORTRAN compilation||COMPILE filename (compile only) EX filename (compile and execute)||@FOR eltname||RUN (assume workfile) compiles and executes||C:F (assume workfile)||TASK F,*CR filename|
|Execution||EX (loads or compiles)||@XQT eltname||RUN (if binary saved need switch - will compile as well)||E (assumes workfile)||-|
|User/system status||SY. or SY||@STATUS||STATUS||?STATUS||WS|
Notes on each machine operating system
- There is no distinction between workfiles as with KRONOS and CANDE, all files being regarded as permanent. There is however, the concept of the retained filename. This means that if for example in the EXECUTE command the file name is omitted then the filename associated with the previous command will be used.
DEC's wild-card specification of filenames is useful, ie the ability to substitute an asterisk in the place of either the filename or the extension:
- TEST.* All files (BIN, REL, SAV, BAK etc) with a filename of test
- *. BIN All files with an extension of BIN
- *.* All files
- TEST.SRC;* All generations of TEST.SRC
This use of the * makes up for the lack of a shortform of directory listing, full information is given on every file with command DIRECT (filename, extension, blocksize. protection code. creation date).
- The HELP command is not too useful for the terminal as it implies the output message % FILE IS LONG - WOULD YOU PREFER LPT LISTING? that help is verbose. One supposes that this would be satisfactory on a line.
- The TECO editor is complex for the first time user mainly because it is a character orientated editor rather than a line-orientated one which most people are used to. However, LINED, a simple line editor can be used. Mention was also made of another editor called SOS but this was not tried. When one learns to use TECO the facilities offered are impressive.
- There is one command to compile, load and go (EXECUTE). If a REL file exists with a later creation date than the SRC file then that file is loaded. However, if the SRC file is more up-to-date a compilation is performed first. This use of one command makes the system simple to use.
- FORTRAN run-time file assignment is not flexible :
- Only one logical device can be assigned to a physical device ie one cannot perform terminal input and output on different FORTRAN streams. (One should apparently use non-standard FORTRAN statements TYPE and ACCEPT for terminal communications or READ (1 and WRITE (1, Both of these methods are not very convenient if one wishes to read from a card reader and output to the line printer subsequently, say in BATCH mode.)
- There is no file assignment command at run-time, files must be assigned to logical streams from within the program or the default filename must be used. eg FOR003, DAT1 for stream 3.
- There is no pointer to the line in the FORTRAN source for FORTRAN runtime errors, only the program counter plus the error type.
- The SYSTAT command (system status) lists on the terminal the current status of all jobs in the system. There is an obscure command not documented (SY.) to produce a subset of the total system status relevant to the terminal user (ie to list which assignments of logical devices to physical devices have been made).
- The different definition of a file in the UNIVAC operating system causes problems to the first-time user who is used to the standard convention. In 1900 terms a file is equivalent to a pseudo-directory and would contain all the information relevant to one program or suite of programs whereas an element is equivalent to a 1900 file.
- The FORTRAN compiler only accepts one routine per element.
This necessitates separate commands for compiling (@FOR) and consolidating (@MAP).
There are however two advantages to be gained by such a system :
- Users will be forced to compile only those routines that they have updated instead of the whole program as tends to happen when one keeps the whole source of the program in one file.
- Library facilities are provided by default as MAP searches for unresolved global references through the whole program file.
- The FORTRAN compiler by default does not print diagnostic messages only a count of the total number at the end of the compilation. One needs to obtain a full compilation listing to find out what they were.
- The UNIVAC editor is a straightforward to use line-orientated editor which allows movement in both directions in the file. It does however have annoying syntax in some of the commands eg C_/oldstring/newstring/ where the space denoted by the underline is significant.
- Logging in to the system is difficult to the first-time user, at IOH one needs to type the terminal identifier eg UDI08B to contact the system. Is this a security measure?
- The use of one command with different options is confusing
to the first-time user:
@ PRT element name - list the element @PRT,T filename - short directory listing @PRT,TL filename - long directory listing
- To communicate with the terminal from a FORTRAN program stream 5 must be used for input and stream 6 for output.
KRONOS - CDC 6400
- The logging-in sequence is prompted by the system which assists the first time user. Selection can be made at logging-in time of the FORTRAN sub-system so that all future commands such as RUN refer to compiling and running FORTRAN programs.
- The use of the FORTRAN subsystem means that one can input free-format FORTRAN, assuming one knows CDC's convention for free format ie statements may be typed starting in any column, continuation lines start with +. When one has typed in the program one only has to type the command RUN to compile, load and go.
- KRONOS uses the concept of workfiles and permanent files. This means that unnecessary temporary files do not accumulate in ones directory.
- The FORTRAN compiler only produces a list of error messages by default with a reference to the offending line number. One needs a complete listing of the source file to determine what the errors are.
- FORTRAN run-time error diagnostics are poor, a dump of registers plus locations around the instruction which caused the error. A TRACE system such as Manchester MANTRAP would be useful. )
- The global editor commands are obscure and difficult to use for the inexperienced user.
- KRONOS provides a very useful HELP feature which is not verbose and therefore applicable to the terminal user.
- Any FORTRAN stream can be used for terminal communication but a
statement of the following form must appear :
PROGRAM FORT (INPUT, OUTPUT', TAPE1=INPUT, TAPE2=OUTPUT)
CANDE - Burroughs 6700
- The logging-in sequence is prompted by the system which is useful to the first time user.
- CANDE uses the concept of one workfile and many permanent files. All operations are assumed to refer to the current workfile.
- Two commands are needed to compile and ,execute a program, C:F (compile a FORTRAN program) and E (execute). The F qualifier on the compile command could be omitted if the source file type at creation is specified as FORTRAN.
- Free-format FORTRAN may be input from the terminal if the following
convention is adopted :
- Comment lines start with C*
- Continuation lines start with *
- The FORTRAN compiler lists the offending line together with a pointer to the first character in error in the FORTRAN source when it detects an error. This means that one does not need to possess an up to date source listing of the program.
- FORTRAN run-time error diagnostics provide the line number of the statement in error 1n the original source file.
- FORTRAN streams 5 and 6 are used for terminal input and output.
Comparison of the different operating systems evaluated
One can divide the four operating systems into two distinct classes, the DEC-10 and UNIVAC operating systems being in one class and the CDC (KRONOS) and BURROUGHS (CANDE) operating systems being in the other. This second class is categorised by having the following features :
- The top level of the command structure is the editor, in the case of KRONOS a line editor and for CANDE a line and context editor. On login to both KRONOS and CANDE a selection of a workfile can be made and control is left in the editor.
- Both CANDE and KRONOS use the concept of a language sub-system. In KRONOS selection of the sub-system, such as FORTRAN, is made at login and all subsequent commands assume that one is compiling and running FORTRAN programs. Selection of the sub-system in CANDE can be made when a file is created.
- Both CANDE and KRONOS have both workfiles and permanent files, current activity always uses workfiles. KRONOS has named workfiles whereas CANDE only has one unnamed workfile.
- Both systems prompt the user at login and so do not require the user to remember the login sequence. It is also possible with both systems to recover a previous session at the terminal if for example noise on the line has caused the system to break the link. This means that although a workfi1e was being used at the time of the break information is not lost. On the CDC machine that was used workfiles are preserved for 10 minutes after a break or logging off the system.
The DEC-10 and UNIVAC operating systems use only permanent files and the top level of the command structure is a command processor. The editor is called from the top level. DEC simulates the workfile concept by remembering the filename in any previous command and consequently allowing the user to omit the filename if he is working with the same file. UNIVAC always requires the filename in any file orientated command.
(1) Compiling and executing programs
On all systems it is easy to input a program, (using the line editor) compile and run the program (EXECUTE on the DEC-10 and RUN on the CDC operating system). On the other two systems two commands are required, one to compile the program (@ FOR on UNIVAC and C on BURROUGHS) and one to link edit and load ((@XQT on UNIVAC and E on BURROUGHS). EXECUTE on the DEC-10 has the added advantage that it does not re-compi1e the program if a relocatable file of a suitable creation date already exists (one can override this by requesting a compilation).
Context editing can cause more problems using the different operating systems than the use of the straightforward line editors. The TECO editor of DEC being one of the hardest ones to understand because it is a character orientated editor rather than a line-orientated editor. However, the facilities offered by TECO for the advanced user may outweigh the initial learning difficulties.
(3) Errors encountered during compilation and execution
Most of the systems are similar in inputting, editing, compiling and running programs, however, they differ in the facilities they provide to the user in the event of FORTRAN compilation errors or execution errors. For example the CDC FORTRAN compiler by default produces a list of error messages which refer to specific lines in the source, but a source listing is required by the user to identify the errors and correct them. In CANOE the compiler not only produces the error messages but also lists the line in error with an asterisk denoting the first character in the line in error.
Diagnostic error messages are in the UNIVAC FORTRAN compiler only counted by default, it is necessary to produce a full compiler listing to determine what they refer to.
The amount of information produced by the system on finding a runtime error differs greatly. For example DEC just produce an error message informing one of the type of error, whereas BURROUGHS also list the line number in the original source listing. Both systems also list program counters and other machine specific numbers. CDC produce a verbose dump of accumulators and core around the instruction at fault. DEC has the most advanced fault finding aid in DDT (dynamic debugging technique) which allows one to control interactively the running of ones program. One can position break-points and print out the contents of specific variables.
On the whole there is not much to choose between the various operating systems. All have been written to make interaction with the system easy. Each of the systems has its good points and weak points, for example :
- DEC runtime diagnostics are not so good (ie no source listing pointer) but they provide DDT to compensate.
- BURROUGHS provide the best FORTRAN compilation diagnostics with a character pointer to the line in error.
- CDC provide the best HELP facilities suitable for a slow-speed terminal user but poor FORTRAN run-time diagnostics.
- UNIVAC provide the best default library management facilities.
The operating system which I would regard as less suitable than the other three for novice users is the UNIVAC firstly because of its file definitions being different from the other machines and secondly because of the cryptic system commands with their heavy reliance on switches for different options. I am informed, however, that for experienced users these two points are an advantage because in the first case one can create libraries simply and secondly because of only needing to type in small amounts of terminal input to perform a lot of operations.
The remaining three operating systems provide much the same facilities with DEC providing marginally more control over the interactive running of programs with DDT.