|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 147584 (0x24080) Types: TextFile Names: »D26«
└─⟦4233bed4d⟧ Bits:30005867/disk04.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D26«
RC 8000 BASIC SOFTWARE First Edition A/S REGNECENTRALEN February 1979 Information Department RCSL 42 - i 0848\f AUTHOR: Kjeld Christensen KEY WORDS: Textbook, educational, operating systems, BOSS, S, file processor, utility programs, monitor, RC 8000, resource administration. ABSTRACT: This is one of a series of educational textbooks to be used as a first-step learning gradient to understand topics of edp. This textbook deals with operating systems and a knowledge of programming in general is preassumed. The textbooks are used in Regnecentralen>s Education Program, but they are as well qualified for private self-study. Users of this manual .... Copyright A/S REGNECENTRALEN, 1979 Printed by A/S REGNECENTRALEN, Copenhagen \f 1 PREFACE For a long time it has been Regnecentralen>s wish to have educa- tional textbooks which we could make available as a first step to learning basic software systems. This would give us the possibi- lity of introducing systems with an easier learning gradient than one could get from reading manuals as a first step. As the number of RC>s business customers has increased, so has this need grown more urgent. Therefore it is a great pleasure for RC to start the publication of an educational textbook series with this book. The book has been written by programmer Kjeld Christensen from The Commercial College in Århus. We are greatful to Kjeld Chris- tensen for his good and constructive cooperation in connection with his work on this book as well as to The Commercial College>s Datacenter for a positive attitude to the project, The book is meant for use in connection with Regnecentralen>s Education Program, but at the same time it has been written so that it is possible to read it as a private study. For this rea- son solutions to the exercises are included in the contents of this book. We must point out that this book is a textbook and not a manual, which means that the book does not describe all possibilities of the basic software, but on the contrary only a limited number of items. Therefore it is highly advisable that as soon as possible after studying this book, you make it your duty to use the rele- vant manuals in your daily work so that you may graduate beyond the limits of this textbook. Nevertheless you can always refer to this textbook if you should have difficulty when working with the manuals. We hope to have covered the actual need concerning the operating systems with this publication and with future publications we will cover the remaining parts. I_m_p_o_r_t_a_n_t_ _n_o_t_e_: While studying this book make sure you do not go past a word you do not fully understand. Look the word up in a dictionary or get it defined somehow. For technical terms we refer you to RC>s terminology lists. November 1978 A/S Regnecentralen\f TABLE OF CONTENTS 1 PREFACE page 9 2 INTRODUCTION10 3 BOSS12 3.1 Operating System12 3.1.1 Administration of Resources13 3.1.2 Job Execution13 3.1.3 Priviledged Function14 3.2 A Job15 3.3 User Catalog20 3.4 Job File20 3.4.1 Cancel Characters21 3.4.2 Correction Commands21 3.4.2.1 Insertion21 3.4.2.2 Deletion22 3.4.2.3 Modify22 3.4.3 Printing23 3.4.3.1 VERIFY23 3.4.3.2 LIST24 3.4.3.3 Notation24 3.4.4 Job File Handling25 3.4.4.1 GET25 3.4.4.2 CLEAR25 3.4.4.3 SAVE26 3.4.5 Examples26 3.4.5.1 Line Numbering26 3.4.5.2 Last Line27 3.4.5.3 NO ROOM27 3.4.5.4 Transferring to the BASIS FILE28 3.4.6 Execises28 3.5 Resources29 3.5.1 Requesting Resources30 3.5.2 Primary Store31 3.5.3 Computation Time31 3.5.4 Peripheral Devices32 3.5.5 Reader32\f 3.5.5.1 Mode page35 3.5.6 Printer35 3.5.7 Punch36 3.5.8 Magnetic Tape Station37 3.6 BOSS Commands38 3.6.1 Job File Manipulation38 3.6.2 Job Enrollment39 3.6.3 Requesting Resources40 3.6.4 Printing40 3.6.5 Information40 3.6.6 Backing Store42 3.6.7 Operator Intervention42 3.6.8 Restrictions43 3.6.9 Exercises43 3.7 Messages from BOSS43 4 THE BACKING STORE46 4.1 Area46 4.2 Catalog48 4.2.1 Catalog Entry48 4.2.2 Catalog Handling50 4.3 Scope50 4.4 The Catalog and BOSS54 4.4.1 Create55 4.4.2 Change55 4.4.2.1 SCOPE55 4.4.2.2 RENAME56 4.4.3 Delete56 4.4.4 Print57 4.5 The Catalog and Utility Programs57 4.5.1 Creation58 4.5.2 Change58 4.5.2.1 SCOPE58 4.5.2.2 RENAME59 4.5.3 Clearing59 4.5.4 Print60 4.5.5 Exercises60 4.6 Catalog Entry61 4.6.1 The First Slice61 4.6.2 Name Key63\f 4.6.3 Catalog Key page 63 4.6.4 Base63 4.6.5 Name64 4.6.6 Size64 4.6.7 Document Name64 4.6.8 Date65 4.6.9 Miscellaneous65 4.7 Additional Disc Units65 4.8 Resources68 4.8.1 TEMP68 4.8.2 PERM68 4.9 Examples69 5 MONITOR71 5.1 Process72 5.1.1 Internal Process72 5.1.1.1 Process Hierarchy72 5.1.1.2 Process State74 5.1.2 Peripheral Process74 5.1.3 Area Process75 5.1.4 Process Handling75 5.2 Internal Communication76 5.3 Resources78 5.3.1 Internal Process78 5.3.2 Peripheral Process78 5.3.3 Area Process78 5.3.4 Message Buffer79 5.4 The Catalog79 5.5 Division of Work80 5.5.1 CPU - time80 5.5.2 Supervision80 5.5.3 Resources80 5.5.4 Data Transfer81 5.5.5 Policy81 6 FILE PROCESSOR82 6.1 Execution of a Program82 6.2 FP Command84 6.2.1 Simple FP Command84 6.2.2 Compound FP Command87\f 6.3 Files page 88 6.3.1 CURRENT INPUT FILE 89 6.3.2 CURRENT OUTPUT FILE 90 6.3.3 Zones IN and OUT91 6.3.4 Exercises91 6.3.5 PRIMOUT92 6.4 Job Programming92 6.4.1 State Variables93 6.4.2 Programming94 6.4.3 Exercises95 6.5 Auxiliary Functions97 6.6 Error Messages97 7 UTILITY PROGRAMS 99 7.1 Job Control 99 7.2 Catalog Handling100 7.3 Data Handling100 7.4 Conventions101 7.5 Modekind102 7.6 File Descriptors102 8 JOB CONTROL104 8.1 Control of Current Input/Output104 8.1.1 I104 8.1.2 END105 8.1.3 O106 8.1.4 Exercise106 8.1.5 ONLINE107 8.2 Job Programming108 8.2.1 MODE108 8.2.2 IF109 8.2.3 REPEAT110 8.2.4 Exercises111 8.3 Dialogue with BOSS111 8.3.1 Job111 8.3.1.1 Job Enrollment112 8.3.1.2 REPLACE112 8.3.1.3 NEWJOB113 8.3.1.4 Job termination114 8.3.2 Printer114\f 8.3.3 Discpage 115 8.3.4 Magnetic tape116 8.3.4.1 MOUNT118 8.3.4.2 RELEASE119 8.3.5 Operator120 8.3.5.1 OPCOMM120 8.3.5.2 OPMESS121 9 THE CATALOG HANDLING122 9.1 SET122 9.2 RENAME123 9.3 SCOPE124 9.4 CLEAR 126 9.5 Printing127 9.5.1 LOOKUP127 9.5.2 SEARCH 129 9.6 Exercises130 10 DATA HANDLING131 10.1 Data Transfer131 10.1.1 COPY131 10.1.2 MOVE133 10.1.3 Exercises134 10.1.4 SAVE135 10.1.5 LOAD 137 10.1.6 Exercises139 10.2 Print Out139 10.2.1 HEAD140 10.2.2 HEADPUNCH140 11 THE TERMINATION142 11.1 The Virtual Store142 11.2 More Operating Systems144 11.3 More Computers145 12 ANSWER LIST146 INDEX157\f F_2 INTRODUCTION The basic software of the RC 8000 is divided into the following groups: Operating System File Processor Utility Programs The division of the basic software into these groups is note- worthy for more reasons. First, the division clearly marks the border lines in the basic software, whereby maintenance and execu- tion is simplified. Second, when using the computer it must be made clear which parts of the basic software one wishes to add- ress. Third, a number of functions can be executed by different parts of the basic software. Fourth, there is an interchange of information between the different programs. T_BOSS RC 8000 is usually equipped with the operating system BOSS. BOSS" mission is to make the computer attractive and easy to use plus to ensure a reasonable utilization of the computer resources. &_ BOSS thus maintains the traditional tasks of an operating system such as resource administration, job execution, and supervising. This means that a number of functions only can be executed by the T_PRIVI- operating system. These functions are called priviledged and can LEDGED only be executed by the central part of the operating system. FUNCTIONS This part formes an independent unit, called MONITOR. As an in- stance of priviledged functions, in/output operations can bemen- MONITOR tioned. When an operation of this kind is to be executed, it can &_ only be done by asking MONITOR to execute the function. The separation of the kernel of the operating system into an independent unit makes it relatively easy to implement new ope- rating systems as a replacement or a supplement to BOSS, as MONI- TOR is able to support any operating system. \f T_FILE PROCESSOR FILE PROCESSOR is used during the job execution to read and inter- pret the control commands (Job Control Language) and to start the wanted programs. FP, which FILE PROCESSOR normally is called, furthermore contains a sequence of subroutines, which can be used &_ by assembler- programming. T_UTILITY PROGRAM The utility programs are divided into the following three groups &_ corresponding to their functions: - Job control Programs which influence the execution of the job. - Catalog handling Programs which modify or print the catalog. - Data handling Programs which modify or print data. To this group compilers are also reckoned. Only the most frequently used utility programs and their ordinary usage are mentioned in this book. A treatment of the different programming languages (ALGOL, FORTRAN and SLANG) and the diffe- rent file handling systems (INDEXSEQUENTIAL FILES and CONNECTED FILES SYSTEM) is also outside the scope of this book. T_APPLICA- Programs, which are worked out by the users, are placed in the TIONsoftware structure at the same level as the utility programs. Thus it is easy to supplement this group of programs with new &_ ones.\f F_ 3 BOSS This chapter begins with a short account of which jobs an opera- ting system normally is expected to attend to. As this is a ge- neral account, the operating system is regarded as a whole and the specific division of the jobs in RC 8000 between MONITOR and BOSS is not touched on, but is saved for chapter 5. In the remai- ning part of chapter 3 BOSS is discussed. This discussion inclu- des the use of the most important BOSS commands and the execution of jobs The use of the terminal occupies a central position. T_3.1 OPERATING SYSTEM By an operating system is understood a control and supervisor program, which has the function of facilitating and making the use of the computer effective. These functions require that the operating system is permanently active in the primary store, and this naturally causes less available room for the user programs. T_ Figure 3.1 PRIMARY STORE O . S &_ Among the most important functions of the operating system could be mentioned: \f - Administration of the resources of the computer - Supervising and execution of jobs. -Execution of priviledged functions. Including execution and supervising of data transports. T_3.1.1 A_d_m_i_n_i_s_t_r_a_t_i_o_n_ _o_f_ _R_e_s_o_u_r_c_e_s_ This administration includes all the resources of the computer of &_ which the following could be mentioned: - Calculation Time - Primary Store - Backing Store - Peripheral Devices T_ All the resources of the computer are owned by the operating sys- tem, but they can be lend out separately. A job always need dif- ferent resources. Thus calculation time is always necessary. The job has to request the operating system for the necessary resour- JOB SPE- ces. This is normally done in a socalled JOB SPECIFICATION. Is CIFICA- this omitted the job is assigned resources anyway, but then on TIONthe basis of information found in a USER CATALOG. The USER CATALOG contains information about everybody who is allowed to USERuse the computer. Furthermore information about which resources CATALOGthat are to be assigned is found, if it is not explicity stated in the JOB SPECIFICATION. This default value is called standard STANDARDvalue in the manuals. In the USER CATALOG is also described VALUE maximum values for the amount of resources which each user can request. T_ 3.1.2 J_o_b_ _E_x_e_c_u_t_i_o_n_ On basis of a priority algorithm the operating system decides in which sequence the different, enrolled jobs are to be executed. &_During the execution the operating system supervises the job and prevents any illegal attempts such as using resources which are\f not allocated or disturbing other jobs. The operating system furthermore enters the resource consumption of any job on an T_ACCOUNTaccount file. If the information in the account file is related FILEto the information in the user catalog, the necessary basis for payment calculation for the use of the computer is available. It &_ also gives material for elaboration of run statistics. T_3.1.3 P_r_i_v_i_l_e_d_g_e_d_ _F_u_n_c_t_i_o_n_ To make it possible for the operating system to carry out full control of the computer, it is necessary that certain functions can only be executed by the operating system. Input/output execu- tion is as mentioned a priviledged function. This is explained &_ further in chapter 5. T_ EXERCISE 3.1 In a computer where the operating system is able to execute two jobs simultaneously an order to execute five jobs is given. The five jobs require the following resources: Job Run time in Tape station minutes 1 15 0 2 180 1 3 3 2 4 3 0 5 1 1 &_ Determine a reasonable priority algorithm. Determine the sequence of the job execution when the computer has two tape stations. During the execution of a single job with an estimated run time of one hour, the operating system receives a request to execute the following jobs: T_ Job Run time inTape stations minutes 650 &_ 7100 \f Determine the sequence of execution for the jobs in the following positions: T_ 1. The running job has used 179 min. of the estimated run time. 2. The running job has used 30 min. of the estimated &_ run time. If necessary modify the proposed priority algorithm. Several jobs may happen to request exactly the same resources. Which jobs should first be executed in this situation. Modify if necessary the priority algorithm. T_3.2 A JOB By a job is meant a defined task, which the computer must execu- JOB te. This has the effect that one or more programs have to be used. Before it can be effectuated the job must be entered in the &_ computer. It could for instance be done by use of a terminal. Example 3.1 shows how a very simple job can be entered and execu- ted by the operating system BOSS. The jobis only to compile and T_ run a small Algol program. To make the necessary terminal conver- sation explicit the lines keyed in are marked with an arrow. -' &_ T_ The first contact with the operating system is obtained by sen- ding an ATTENTION - signal, marked by the following symbol: X &_ \f T_ Ex. 3.1 X att -' boss type user name and project number -' kc 1234 in: 1977.09.15 13.10 boos 2 operating system &_ T_ This first conversation is called the LOGIN-routine. By stating a LOGIN user identification permission to use the terminal is obtained. Hereby a socalled JOB FILE is made available for the user of the terminal. The actual job may now be typed to the JOB FILE and this is done by typing the different information line by line. Each line must be opened with a line number, which is kept separate from the actual contents with a space. T_ -' 10 p = algol -' 20 begin integer a,b; -' 30 read(in,a,b); -' 40 write(out,a,b); -' 50 end -' 60 p -' 70 3 4 -' 80 finis &_ The job consists of a control command (line 10), which activates the ALGOL compiler. The program which is to be compiled is found in the following four lines. It is a limited program which can only read in 2 figures and print the same two figures. Line 60 contains a control command which activates the compiled program. Input for this is found on the following line. Line 80 consists of a control command which tells that the job should be terminated. After typing the lines 10-80 the actual job is available and it should now be executed. \f -' go finis kc0 at 13.12 &_ T_GO The GO command tells BOSS that the job should be transferred to the JOB QUEUE. BOSS now makes a priority calculation (analog to exercise 3.1) for all jobs in the JOB QUEUE and selects the jobs which should be executed first. An estimated time of termination is also calculated and printed on the terminal. T_JOB NAME In the printout it furthermore appears under which name the job is being executed, i.e. KC0. This name is formed by the user name &_ and an index, which can be stated between the user name and the project number in the LOGIN routine. When this index is omitted 0 is allocated automatically. It only remains to wait for the printout produced by the job, as new jobs cannot be entered before the enrolled job is terminated. \f T_ When the index is also stated the total terminal conversation appears as follows: X att -' boss LOGIN routine type user name and project number -' kc 0 1234 in: 1977.09.15 13.10 boss2 operating system -' 10 p = algol JOBFILE -' 20 begin integer a,b; -' 30 read(in,a,b); -' 40 write(out,a,b); -' 50 end -' 60 p -' 70 3 4 -' 80 finis job enrollment -'go finis kc0 at 13.12 1: begin run messages 2: end from ALGOL algol end 17 3 4 printout from end 9 the program end 2 sec job kc0 log op date 1977.09.15 13.11.10 '' message from BOSS -' logout terminating BOSS logged in 3 min. operations 3 command and message &_ As shown above the use of the terminal is terminated with the\f LOGOUT command. BOSS answers this command by printing, in minutes, the duration of the terminal use and the amount of operations which have been executed. This information is furthermore stored in the account file. T_FP COM- In example 3.1 different commands were used. The control commands MANDS which were part of the job, are called FP commands, as they are &_ interpreted by FP. This is why the treatment of the conventions for program calls and data statements in the JOB FILE are saved for chapter 6, where FP and FP commands are discussed. T_BOSS Several BOSS commands are discussed in this chapter. By a BOSS COMMANDS command is meant an instruction to BOSS to execute a given action. &_ This action is executed instantly. BOSS commands are used for several purposes. As shown in example 3.1 GO enrolls a job, and LOGOUT terminates the use of the terminal. T_KILL The KILL command terminates an enrolled job. Ex. 3.2 X '' -' kill &_ Permission to type the command is achieved by sending an ATTENTI- ON signal. The enrolled job is instantly terminated. A number of BOSS commands will be discussed in this and the follow- ing chapters. \f T_3.3 User Catalog All the users of the computer are registered in the user catalog. PROJECT The users are divided into groups called projects, which are iden- USER tified by a project number. Each user is equipped with a user na- NAME me, which must be stated together with the project number in the &_ LOGIN routine. A user>s affiliation to a project determines the user>s access to magnetic tapes and the backing store. Thus mem- T_PROTEC- bers of the same project can use each other>s magnetic tapes, TION while others are prevented from doing this. In the backing store the resources of the project are even better protected, as only &_ members of the project have access to the resources. T_ For each project the user catalog contains information about the RESOURCES resources available to the members of the project. Additional &_ information concerning restrictions in the resource consumption or standard allocation of resources, may be specified both for the project as a whole, and for the individual user. In this way the USER CATALOG contributes to prevent abuse and to faciliteting the use of the computer. T_3.4 Job File USE As it appears from the name, the JOB FILE is primarily used to contain a job. During typing (cf ex. 3.1) mistakes are easily made. The harm done is limited, however, as correction commands are at the user>s disposal, making a modification of the contents of the JOB FILE possible. This facility can be used for several purposes, as it is possible to transfer the contents of an area to the JOB FILE, as well as a transfer in the opposite direction is possible. \f T_3.4.1 C_a_n_c_e_l_ _C_h_a_r_a_c_t_e_r_s_ Errors, detected while typing, can be changed by means of cancel characters. % deletes a line & deletes the last character typed Ex. 3.3 10 this line is deleted % 20 p = ag&lgol 30 bigin&&&&egin &_ In the last line in example 3.3 the cancel character has been used several times. The cancel character deletes the original characters on the line successively, from right to left. T_3.4.2 C_o_r_r_e_c_t_i_o_n_ _C_o_m_m_a_n_d_s_ It is possible to insert to delete to modify &_ lines in the JOB FILE. All the lines in the JOB FILE are equipped with a line number. During typing, the terminal user can choose the line numbering himself. The lines are stored in increasing numerical order, regardless of the order in which they are typed. T_ 3.4.2.1 I_n_s_e_r_t_i_o_n_. The typing of the job in example 3.1 consisted of inser- ting a number of lines in an empty JOB FILE. New lines are inser- ted by typing the line number and the contents of the line sepa- rated by a space. &_ Ex. 3.435 a:=a+b; If a line with the line number specified already exists, the line\f last typed will replace the original line. T_ Exercise 3.2 Determine the contents of the JOB FILE, when the following has been entered: 10 p=algol 20 integer sum,a,b; 30 write(out,sum); 15 begin 40 end 10 u=algol list.yes 25 read(in,a,b); 26 sum:=a+b &_ Insert an empty line immediately after line 10. T_ 3.4.2.2 D_e_l_e_t_i_o_n_. Typing a line number alone causes the line specified to be deleted from the JOB FILE. Ex. 3.540 &_ T_3.4.2.3 M_o_d_i_f_y_. A line can be modified, and the following has to be sta- ted then: the line number the graphical picture to be replaced the new graphical picture which is to replace the old &_ one The information must be separated with the same delimiter. The delimiter must not, of course, be part of the graphical pictures T_ Ex. 3.6 50 sum:=a+b; 50/sum/amount The graphical picture "sum" is replaced by "amount" in &_ line 50. / has been used as delimiter. \f DELIMITER A delimeter may freely be choosen under consideration of the following restrictions: 1. As a space immediately after the line number causes an insertion of the whole line, this symbol cannot be used. 2. The delimiter must not be part of the graphical pic- tures. / > " can be selected as delimiters, for instance. T_ FUNCTION The graphical picture first stated is searched for from left to right on the line. The first time it is met, the correction is &_ made, and the modification is completed. T_ Exercise 3.3 The JOB FILE from exercise 3.2 is to be changed, so the variable name "a" is replaced by "sale" everywhere it is found. T_3.4.3 P_r_i_n_t_i_n_g_ The whole JOB FILE or parts of it can be printed by means of va- &_ rious commands. T_3.4.3.1 V_e_r_i_f_y_. The line last typed or modified can be printed with the VERIFY command. Ex. 3.7verify A specific number can be printed by stating the line number. &_ Ex. 3.8verify 10 \f T_ A limited group of lines can furthermore be printed by adding the number of lines to be printed. Ex. 3.9verify 10 4 &_ Line 10 and the 3 following lines are printed. T_3.4.3.2 L_i_s_t_. The whole JOB FILE can be printed with the LIST command. &_ Ex. 3.10 list T_ Stating a line number furthermore, the line specified and all the lines with a higher number will be printed. &_ Ex. 3.11list 30 T_ A line interval can be printed by stating the upper and lower limits of the interval. &_ Ex. 3.12 list 30 97 T_ 3.4.3.3 N_o_t_a_t_i_o_n_._ The different ways of using the LIST command is describ- ed in ref. 1 as follows: 1 1 &_ list first line' last line' 0 0 T_ The different symbols have the following significance: ' The contents of the brackets contains an explanatory text. Thus first line' states that the line number of the first line in the &_ interval must be stated. 1 T_ The contents of the braces may appear the specified 0number of times. 0 signifies that the contents can be omitted 1 signifies that the contents must not appear more &_ than once. \f SPACE Delimiters between the different parameters are not stated, as space always are used in connection with BOSS commands. Exercise 3.4 Describe the VERIFY command by means of the &_ abovementioned notation. T_3.4.4 J_o_b_ _F_i_l_e_ _H_a_n_d_l_i_n_g_ A backing store area can be transferred to the JOB FILE by means BASIS of the GET command. The area is then called a BASIS FILE. The FILE CLEAR command releases a BASIS FILE, returning the area to normal &_ status. With the SAVE command the contents of the JOB FILE is copied to an area. Areas are identified by names. The rules governing these are described in chapter 4. T_3.4.4.1 G_e_t_ Ex. 3.13 get text &_ The area TEXT is transferred to the JOB FILE. T_ SYNTAX &_ get area name' FUNCTION T_ A possible BASIS FILE is released, and the area specified is made into a BASIS FILE, transferring the contents to the JOB FILE. The &_ lines are numbered 10,20,30... etc. This sequence is interrupted when a FORM FEED character is met. The next line number becomes the immediately higher multiple of 1000 plus 10. T_3.4.4.2 C_l_e_a_r_ Ex. 3.14 clear The contents of the JOB FILE is deleted and a BASIS FILE, if any, &_ is released. \f SYNTAX &_ clear FUNCTION T_ The contents of the JOB FILE is deleted and a BASIS FILE, if any, is released. The command can be employed in several ways as de- &_ scribed in chapter 4. T_3.4.4.3 S_a_v_e_ Ex. 3.15 save rctext &_ The JOB FILE is transferred to the area RCTEXT. T_ SYNTAX &_ save area name' FUNCTION T_ The contents of the JOB FILE is transferred to the backing store to an area with the specified name. If a LOGIN area exists (cf. &_ chapter 4) with the specified name, the contents is transferred to this area. If a LOGIN area does not exist, a new one will be created with the specified name, and the contents will be trans- ferred to this area. A LOGIN area is characterized by being pre- served, until the terminal user deletes it, by for instance using the LOGOUT command. T_ 3.4.5 E_x_a_m_p_l_e_s_ 3.4.5.1 L_i_n_e_ _N_u_m_b_e_r_i_n_g_. A job is entered as follows: 1 p=algol 2 begin 3 write(out,:example:'); 4 end &_ 5 finis \f T_ Using the commands: save rcarea get rcarea &_ list T_ The following printout will appear: 10 p=algol 20 begin 30 write(out,:example:'); 40 end 50 finis &_ The new line numbers are from now on valid. T_3.4.5.2 L_a_s_t_ _L_i_n_e_. If the VERIFY command is used immediately after a BASIS FILE has been connected, the number of the last line in the &_ JOB FILE is printed. T_ The commands: save rcarea get rcarea &_ verify T_ used after the typing in section 3.4.5.1, will thus produce the printout below: &_50 T_ 3.4.5.3 N_O_ _R_O_O_M_. The message NO ROOM appears, when it is impossible to perform more changes in a JOB FILE because the capacity cannot &_ cope any more. In order to proceed the JOB FILE must be trans- ferred to the backing store, and the area used made into a BASIS FILE. Thus the use of GET and SAVE solves the capacity problem, and more changes can now be performed. The command, which caused the message, was not executed and will have to be repeated. If the message appears during the typing, the VERIFYcommand ensures,\f in a easy way, continued typing, as shown in the following se- quence: T_ .... -' 136 begin -' 137 integer NO ROOM -' save rcjob -' get rcjob -' verify 510 -' 510 integer &_ .... T_3.4.5.4 T_r_a_n_s_f_e_r_r_i_n_g_ _t_o_ _t_h_e_ _B_A_S_I_S_ _F_I_L_E_. When a LOGIN area is a BASIS FILE the contents of the JOB FILE will be deleted after it has been re- &_ turned to the BASIS FILE with the SAVE command. T_ The last command in the series: get rctext save rctext save rctext thus transfers an empty JOB FILE back to RCTEXT and the original &_ contents has disappeard. T_3.4.6 E_x_e_r_c_i_s_e_s_ Exercise 3.5In the area PROGRAMTEXT the following ALGOL text is found: begin write (out,:another example:'); &_ end Modify the area, so that it finally contains a job that can com- pile and run the small program. \f T_ Exercise 3.6 An area TEXT is to be printed on a terminal. &_ Write the necessary BOSS commands. T_ Exercise 3.7 The ALGOL compiler reads the source text from the area TEXT, by means of the following call: u=algol text Store a small algol program in the area PROGRAMTEXT and create a JOB FILE which can &_ compile and execute the program. T_ 3.5 Resources In the previous job examples no resources were requested and the jobs were allocated a standard assignment of resources (cf. 3.3). Among other things a job requires the following: Primary store Computation time &_ Backing store T_ A job might also want access to peripheral devices: A reader (tape/cards) A printer A magnetic tape station &_ A punch The following sections describe how the abovementioned resources can be requested, except for the backing store which is described in chapter 4. The abovementioned resources are only a selection, and in chapter 5,6 and 7 further examples will be found. \f T_ 3.5.1 R_e_q_u_e_s_t_i_n_g_ _R_e_s_o_u_r_c_e_s_. JOB SPE- The requestion of resources is stated in the beginning of the CIFICA- JOB FILE. This part is called the JOB SPECIFICATION and consists &_TION of the following: A job identification A list of options A list of load specifications T_ The JOB SPECIFICATION begins with the job identification and con- sists of the word JOB and the USER IDENTIFICATION known from the LOGIN routine. &_ 10 job kc 1234 .... The list of options describes the various resources which are re- quested. For each resource there exists a corresponding OPTION, which must be stated, when the resource is requested. T_ Ex. 3.17 10 job kc 1234 size 20000 The load specification specifies the use of the paper tape reader &_ (cf. 3.5.5). T_ Ex. 3.18 10 job kc 1234 size 20000 load trf data The three parts of which the JOB SPECIFICATION consists must be stated in the order described above, and the individual elements &_ must be separated by a space. T_ Ex. 3.19 10 job kc 1234, 20 size 20000, &_ 30 load trf data The comma signifies that the JOB SPECIFICATION is continued on the next line. \f Resources, which are not stated in the JOB SPECIFICATION, are al- located a standard assignment. The JOB SPECIFICATION will only be effective, if the job is enrolled with the RUN command. T_ Ex. 3.20 10 job kc 1234 load trf data 20 scope login data 30 finis &_ run T_3.5.2 P_r_i_m_a_r_y_ _s_t_o_r_e_. The primary store consists of a number of 24 bit words. A 12 bit halfword is the smallest addressable unit. This unit is called a &_ BYTE in older manuals. SIZE The primary store is ordered with the SIZE option. T_ SYNTAX size number of halfwords' &_ Ex. 3.21 size 50000 T_ 3.5.3 C_o_m_p_u_t_a_t_i_o_n_ _T_i_m_e_. By computation time is meant the total run time and not just the &_ CPU-time. The TIME option specifies the demand on time. T_ SYNTAX11 &_ time hours' 0minutes' 0 seconds' T_ Ex. 3.22 time 3600 time 60 0 &_ time 1 0 0 T_ The same demand on time specified in: seconds minutes and seconds &_ hours, minutes, and seconds \f When the time specified is exceeded, BOSS willl normally (depen- dent on the installation) terminate the job, so it is important to specify a time span which is large enough. Regarding the influence of the time request on the job priority, see exercise 3.1. T_3.5.4 P_e_r_i_p_h_e_r_a_l_ _D_e_v_i_c_e_s_. A peripheral device is identified either by a device number or by &_ a name. T_ In order to ensure an efficient utilization of the computer, BOSS SPOOLING may simulate different devices, so that transfer to these devices takes place via an intermediary store handled by BOSS. This tech- &_ nique is called SPOOLING. When a printer and a reader is being used, it can be stated, whe- ther the job itself wants to control the devices, or BOSS is to control them. Thus there is a distinction between the two types of usage, i.e.: BOSS controlled JOB controlled When the device is JOB controlled it is reserved for the job throughout the run time, regardless of whether the device is used or not. When the device is BOSS controlled it is only engaged during the period of activity. T_3.5.5 R_e_a_d_e_r_. A BOSS controlled reading is stated with the LOAD specifications. Ex. 3.23 load tro data1 &_ load crc data2 \f T_LOAD A paper tape and a card deck are read to the areas DATA1 and DATA2 respectively. T_ SYNTAX &_ load mode specification' area name' A LOAD specification is stated for each paper tape or card deck to be read in. The MODE specification states the tape or card ty- pe. Input is stored in a temporary area with the name stated. As temporary areas are deleted by the termination of the job, it is necessary to make the areas used permanent in order to preserve the input for longer time. Example 3.24 illustrates this. T_ Ex. 3.24 10 job kc 1234 load tro data1 load trf data2 20 scope user data1 data2 &_ 30 finis The FP command in line 20 makes the ares DATA1 and DATA2 permanent, thus preserving them. All the LOAD specifications are executed before the job proper is begun. In this way the number of resources being reserved, during the read in, is minimized. T_TAPES A JOB controlled reading requires reservation of the reader. Ex. 3.25 tapes 3 &_ device cardreader The TAPES option reserves the paper tape reader throughout the execution of the job and should therefore only be used when it is absolutely necessary. T_ SYNTAX &_ tapes number of tapes' \f The paper tape reader is reserved and the specified number of tapes can be read. The job must handle the processing of the tape itself. T_ Ex. 3.26 job kc 1234 tapes 1 data = copy tro scope user data finis job kc 1234 load tro data scope user data finis &_ The 2 jobs perform the same task, but the latter is recommended. DEVICE The card reader can be requested with the DEVICE option. T_ SYNTAX &_ device cardreader The job will have to handle the processing of the cards itself. T_ Ex. 3.27 job kc 1234 device cardreader data = copy crc scope user data finis job kc 1234 load crc data scope user data &_ finis The 2 jobs perform the same task. Note that the card reader can only be used by jobs which themselves have been read in on the card reader. For a more detailled description of the card reader e.g. on separating cards, see the BOSS User>s Manual. \f T_3.5.5.1 M_o_d_e_. The list below contains the most commonly occuring MODE specifications. trf Tape in f_lexowriter code. tre Tape in iso code. E_ven parity. tro Tape in iso code. O_dd entry. trn Tape in n_o parity. crb B_inary cards. &_ crc EBCDIC_ cards. T_3.5.6 P_r_i_n_t_e_r_. The use of the PRINTER can either be BOSS controlled or JOB con- &_ trolled. By BOSS controlled printouts the job will have to inform BOSS when an area is to be printed. The transmitted information is sto- red in a CONVERT buffer, and when the printer becomes vacant, the area is printed. T_CBUF For each area to be printed the job must have a CONVERT buffer at its disposal. Ex. 3.28 cbuf 3 &_ CONVERT buffers are requested with the CBUF option. T_ SYNTAX &_ cbuf number' The specified number of CONVERT buffers are requested. For each area to be printed, a CONVERT buffer is used for storing the area name and paper type. The CBUF is seldomly used as the standard assignment usually allocates a sufficient number of CONVERT buffers \f T_ Ex. 3.29 job kc 1234 cbuf 1 load tro data convert data finis &_ A paper tape is read and listed on the printer. T_DEVICE The printer is reserved for JOB controlled printing with the DEVICE option. Ex. 3.30 device printer SYNTAX &_ device printer name' By JOB controlled printing the specified printer is at the dispo- sal of the job and cannot be used by others. T_ Ex. 3.31 job kc 1234 tapes 1 device printer lp = copy tro &_ finis A paper tape is read and printed. Instead of using this approach, the one shown in example 3.29 should be used. T_3.5.7 P_u_n_c_h_. The PUNCH can only be used JOB controlled and is reserved with DEVICE the DEVICE option. &_ Ex. 3.32 device punch T_ SYNTAX &_ device punch name' \f T_ Ex. 3.33 job kc 1234 device punch load tro data tpo = copy data finis &_ A paper tape is copied T_ 3.5.8 M_a_g_n_e_t_i_c_ _T_a_p_e_ _S_t_a_t_i_o_n_ Different types of tape stations can be connected to the RC 8000, and there is a distinction betweenstandard tape stations and &_ special tape stations. DEVICE Special stations are ordered separately with the DEVICE option. T_ Ex. 3.34 device 8 SYNTAX device device number' &_ Ex. 3.35 job kc 1234 device 8 T_STATIONS Standard tape stations are ordered from the pool with the STATI- ONS option. The vacant tape stations are selected to the assign- &_ ment. Ex. 3.36 stations 4 T_ SYNTAX &_ stations number' The conventions concerning the tape label etc. does not affect the reservation and is therefore not discussed till chapter 8. \f T_3.6 BOSS Commands In ref. 1 and ref. 2 BOSS commands are found described under the name ONLINE commands. Terminal users can type instructions to &_ BOSS by means of BOSS commands, and BOSS will instantly execute the specified actions. The BOSS commands can be divided into groups according to their function, for handling: . The JOB FILE . The job enrollment . The resource ordering . Printing . Information . Backing store . Operator intervention The following sections only describe a selection: T_3.6.1 J_O_B_ _F_I_L_E_ _M_a_n_i_p_u_l_a_t_i_o_n_. SAVE, GET, LIST, VERIFY and edit commands are wellknown. For ge- neration of automatic line numbering the AUTOLINE command is &_ used. Ex. 3.37 autoline autoline 10 &_ autoline 10 10 T_ SYNTAX &_ first line' 1 1 autoline last interval span'0 0 It is not necessary to type line numbers, when the AUTOLINE command has been used, as each line then automatically is equip- ped with a line number. When AUTOLINE alone is used the lines are numbered 10, 20, 30, etc. As an alternative it is possible to specify the starting number and the interval. LAST indicates that the line numbers are to be generated in continuation of the \f already existing ones. The generation of numbers ceases, when an ATTENTION signal is transmitted. T_ Ex. 3.38 autoline 30 7 &_ the lines are numbered 30, 37, 44 .... etc. T_ Ex. 3.39 get data &_ autoline last T_3.6.2 J_o_b_ _E_n_r_o_l_l_m_e_n_t_. The GO and RUN commands are wellknown. NEWJOB A job, which must be described in a permanent area, is enrolled &_ with the NEWJOB command. Ex. 3.40 newjob rcjob T_ SYNTAX &_ newjob area name' A job is enrolled with the NEWJOB command and the specified area is made a JOB FILE. The job will not be connected to the terminal and the output of the job is delivered on the printer. The termi- nal is released immediately. The user index, which was used by the LOGIN routine, cannot be u- sed by the new job. Job enrollment is described further in section 8.3.1.1. \f T_ 3.6.3 R_e_q_u_e_s_t_i_n_g_ _R_e_s_o_u_r_c_e_s_. Resources can also be requested by means of BOSS commands. These BOSS commands have the same names as the corresponding options &_ known from the JOB SPECIFICATION. T_ 3.6.4 P_r_i_n_t_i_n_g_. CONVERT An area can be printed on the printer with the CONVERT command. Ex. 3.41 convert area37 1 SYNTAX1 &_ convert area name' paper type'0 The area specified is printed on the printer on the paper type stated. Type 0 is used when nothing is stated. The CONVERT com- mand is not to be confused with the FP command CONVERT! (cf. 3.43). Ex. 3.42 convert rcdata RCDATA is printed on the printer by means of the BOSS command CON- VERT. Paper type 0 is used. T_ Ex. 3.43 10 job kc 1234 cbuf 1 20 convert rcdata 30 finis run &_ In this small job the CONVERT program is used to print RCDATA. T_ 3.6.5 I_n_f_o_r_m_a_t_i_o_n_ Terminal users can inform themselves about the activities of the computer by using the DISPLAY command. EX. 3.44 display display login &_ display kc0 \f Syntax &_ login1 display job name' 0 T_DISPLAY If the command is used alone a list of all the jobs in the JOB &_ QUEUE is printed. With DISPLAY LOGIN a list of all active terminal users are prin- ted. By stating the JOB NAME it is possible to obtain information about a specific job. To be able to understand the printout which is produced, it is necessary to know the following characteristics about the job: JOB NAME User name and index determine the JOB NAME T_ Ex. 3.45 type user name and project number kc 5 1234 This LOGIN routine effects that the jobs are executed under the &_ name KC5. T_JOB CLASS To prevent time consuming jobs from using all the resources, the jobs are divided into 4 classes. Short jobs are placed in class &_ 0, somewhat more time consuming jobs are placed in class 1 etc. The time limits, which determine the placement, are installation specific. T_ CONTROL A job can be connected to control point A or to control point B. POINT At each control point one job can be executed at the time. T_ &_ STATE The following states are possible: \f loading The job>s LOAD specifications are being executed. reserving The job is waiting for resources. swopped out The job has been "swopped" (cf. exercise 3.1) in core The job is running waiting The job is waiting for e.g. tape mounting This means that for each control point only one job can have the condition "in core", while several others can have the rest of the conditions. The DISPLAY printout has the following format: T_ job name' class' control point' priority' condition' time of termination' T_3.6.6 B_a_c_k_i_n_g_ _S_t_o_r_e_. BOSS commands concerning the backing store are described in chap- &_ ter 4. T_ 3.6.7 O_p_e_r_a_t_o_r_ _I_n_t_e_r_v_e_n_t_i_o_n_. BOSS only requires intervention from the operator in the following &_ situations: By enrollment of an OFF-LINE job. By change of paper, mounting of tapes etc. The operator cankill a job and prevent new jobs from being enrolled. Furthermore the operator can broadcast informative messages to the terminal users, as well as the jobs can communicate with the operator. There exists a number of BOSS commands for these purpo- ses (cf. ref. 2) \f T_3.6.8 R_e_s_t_r_i_c_t_i_o_n_s_. To prevent abuse a number of restrictions can be laid down for each terminal user, so that the user only can use a subset of the existing BOSS commands. It is perfectly normal that a number &_ of commands are reserved for the operator. T_ 3.6.9 E_x_e_r_c_i_s_e_s_. &_ Exercise 3.8 Print the JOB FILE on the printer. T_ Exercise 3.9 The area TEXT contains the following: u=algol begin integer a; read(in,a);write(out,a); end 12' u 7 &_ finis 12' marks the presence of a form feed character. Determine the line numbers when the area is made into a BASIS FILE. T_ 3.7 Messages from BOSS It appeared from section 3.2 that BOSS delivers certain informati- &_ ve printouts to the terminal user. Erroneous typing may likewise cause different messages. The list below only contains a selec- tion of the possible messages. T_ END JOB NAME'... This message terminates a job. &_ FILE IN USE The area is connected as a BASIS FILE. FILE NOT PERMANENT The NEWJOB command has not been accepted. FILE PROTECTED It is illegal to change the area. \f FINIS... The message shows the expected time of ter- mination. FORBIDDEN A BOSS command has been typed illegally. &_ A running job has to be terminated first. T_ ILLEGAL IDENTIFICATION &_ Wrong project number or user name. IN:... Shows the hour of the LOGIN routine. KILLED BY OPERATOR The job has been terminated by the operator. KILLED BY USER The job has been killed with the KILL command. T_ LAST INPUT LINE SKIPPED The last line typed was not received, and &_ will have to be repeated. T_ LOGGED IN... The message shows what is being posted by LOGOUT. LOGIN CLAIMS EXCEEDED &_ No LOGIN resources are available. T_ NO RESOURCES There are not resources enough available in the backing store. &_ Some more must be ordered. T_ NO ROOM The capacity of the JOB FILE is exhausted. By using SAVE and GET the capacity can be renewed. NOT FOUND The graphical picture stated is not found in &_ the line. T_ OPTION UNKNOWN OPTION' The OPTION shown does not exist, and the job &_ is not enrolled. \f OUTPUT EXCEEDED The job has exceeded the limit for output and T_ is terminated. &_ PARAM A command is accompanied by wrong parameters. T_ PARAM AT OPTION' The job is not enrolled, as an OPTION is accom- panied by wrong parameters. SYNTAX An attempt has been made to type an unknown &_ BOSS command T_ SYNTAX AT OPTION' An unknown OPTION has been specified in the JOB SPECIFICATION. The job is not enrolled. TEMP EXCEEDED... The job has been terminated due to a lack of &_ resources in the backing store. T_ TEMPLATE TOO LONG The graphical picture stated is too long. TIME EXCEEDED The job has been terminated, because the run- &_ time ordered has been exceeded. T_ TYPE USER NAME AND PROJECT NUMBER &_ Appears in the LOGIN routine. T_ USER INDEX CONFLICT Most commonly appears when a job is enrolled with the NEWJOB command, and the new job uses the same index, used in the LOGIN routine. &_ WHAT? An unknown command has been typed.\f F_ 4 THE BACKING STORE DISC The backing store in RC 8000 is a shared store, where the diffe- rent users can store data. It may consist of one or more discs, in this first approach we will confine our attention to the most simple instance, a backing store consisting only of one disc. 4.1 Area Data stored on the backing store is located in socalled areas on the disckit (discpack). KIT Figure 4.1 shows a kit containing 5 different areas. T_ Figure 4.1 &_ \f T_AREA NAME One can see from figure 4.1 that each area is equipped with a name. The name is applied, when the area is to be used (read/ PROGRAM write). When an area contains a program, the area name is iden- NAME tical with the program name. It was shown in chapter 3 that the program name is used in the program call. Ex. 4.1 p = algol text The ALGOL compiler is activated by stating the program name ALGOL accompanied by different parameters. T_ The names must comply with certain rules: A name consists of up to 11 characters (letter/digits). They must begin with a letter. &_ Only small letters are allowed. T_ Ex. 4.2 The left column consists of correct names, while the right one &_ contains wrong names: T_ algol 9data fortran da ta rcjob debtorlogicalfile &_ data910 Data T_ Exercise 4.1 &_ Find the errors in the wrong names in example 4.2 T_ There is a distinction between two area types: A text area &_ A binary area \f T_TEXT AREA A text area is readable and can be printed directly, as it con- tains a character string. It is terminated by an END OF MEDIUM &_ character. T_BINARY The data in binary area consists of a number of double words, AREA which cannot be printed directly. A compiled program is stored in &_ a binary area, for instance. T_ 4.2 Catalog The areas are located different places in the backing store, and they may also differ in size. This information, together with &_ other pieces of information, is collected in a special catalog, (Directory). T_4.2.1 C_a_t_a_l_o_g_ _E_n_t_r_y_. Figure 4.2 &_ \f T_CATALOG Figure 4.2 is an expansion of figure 4.1, as the catalog is now ENTRY included. For each area a record describing it exists in the ca- talog. A record in the catalog is called a catalog entry, and &_ consists of two parts, the head and the tail. Among other things the following information will be found: T_ HEAD TAIL Location Size Class &_ Name The location indicates where, in the backing store the area begins. T_CLASS/ The catalog entries are split up into 5 classes (SCOPE) with the &_SCOPE names. SYSTEM PROJECT USER LOGIN TEMP The SCOPE concept will be dealt with more thoroughly in section 3.4. NAME The area name is identical with the name of the catalog entry. T_SIZE The area size is stated in segments. One segment can contain: 768 characters (text area) &_ 128 double words (binary area) \f T_4.2.2 C_a_t_a_l_o_g_ _H_a_n_d_l_i_n_g_. The creation and deletion of catalog entries is synonymous with &_ the creation and deletion of the described areas; this can be done according to requirement. It is a priviledged function to update the catalog. (cf. 5.4) T_4.3 Scope The SCOPE concept is closely connected with the division of the users into projects in the USER CATALOG, as a catalog entry is &_ attached to a project, or a user in a project. T_SCOPE Each project has a pool of catalog entries attached to it. The PROJECT catalog entries in these pools are characterized with the SCOPE &_ denomination PROJECT. T_ SCOPE Likewise, each user has a pool of catalog entries attached to him USER These catalog entries are characterized with the SCOPE denomina- tion USER. T_ SCOPE Each terminal user also has a pool of catalog entries attached to LOGIN him with the SCOPE denomination LOGIN. This pool is deleted, when &_ the user leaves the terminal (LOGOUT). SCOPE A pool of catalog entries is attached to the job during execution- TEMP its. The SCOPE denomination is TEMP, and the pool is deleted when the job is terminated. T_PROTEC- In the attachment of the pools there is a buildt in security me- TION chanism to prevent unwanted access to an area. Catalog entries, which are attached to another project or another user, are invisib- &_ le, implying that both reading and writing is impossible. \f T_SCOPE The pool division for 2 different users attached to the same pro- &_DIAGRAM ject is shown in the SCOPE DIAGRAM in figure 4.3. T_Figure 4.3 SCOPE DIAGRAM SYSTEM POOL PROJECT POOL USERUSER POOL POOL LOGIN TEMP TEMP LOGIN POOL POOL POOL POOL JOB JOB USER XUSER Y &_ PROJECT Z PROJECT Z Starting from a job, and following the path in the direction of the arrows, all the pools, to which the job has access, are passed. The pools not passed are completely hidden from the job. As one can see the SYSTEM- and the PROJECT pools are shared. The LOGIN pools are framed to indicate that these pools only exist in connection with jobs which are enrolled with GO or RUN. Figure 4.4 is a further illustration of the division into pools, as more jobs and projects have been incorporated. The LOGIN pools have been omitted though. \f T_ Figure 4.4 SCOPE DIAGRAM SYSTEM POOL PROJECT PROJECT POOL POOL USER USER USER POOL POOL POOL TEMP TEMP TEMP TEMP POOL POOL POOL POOL JOB 1 JOB 2 JOB JOB USER X USER X USER Y USER W &_ PROJECT Z PROJECT Z PROJECT Z PROJECT Q T_ Exercise 4.2 Determine by means of figure 4.4 the shared pools. 1. For users attached to the different projects. 2. For users attached to the same project. &_ 3. For jobs attached to the same user. T_WRITTING Areas in a pool, which are accessible, are also readable. The ac- PERMIS- cess is not an unconditional writting permission, though, the &_SION SYSTEM pool, among others, is protected. TEMPORARY Catalog entries with SCOPE TEMP are called temporary. \f T_PERMANENT Catalog entries with SCOPE USER, SCOPE PROJECT, or SCOPE SYSTEM &_ are called permanent. T_ Exercise 4.3 Imagine a user who is a member of 2 different projects. Which &_ SCOPE pools are accessible from both projects? If the paths in a SCOPE DIAGRAM are followed, the pools will al- ways be passed in the following order: TEMP, LOGIN, USER, PROJECT, and SYSTEM. T_SCOPE The SCOPE classes hereby appear in increasing order according to WIDTH the SCOPE WIDTH. The concept of SCOPE WIDTH is illustrated in &_ exercise 4.9. The names in each pool in the SCOPE DIAGRAM are unambigous, i.e. a name can only appear once in each pool. Likewise the same name cannot appear both in the TEMP- and the LOGIN pool associated to one job (see fig. 4.5). T_ Figure 4.5 SYSTEM SYSTEM DATA DATA PROJECT PROJECT DATA DATA USER USER DATA DATA LOGIN TEMP TEMP LOGIN DATA DATA &_ ALTERNATIVE 1 ALTERNATIVE 2 \f T_ 4.4 The Catalog and BOSS The handling of files consists of 4 basic operations: Create Change Delete &_ Print As the CATALOG is a file recording the use of the backing store, it is obvious that the basic operations must be able to work on the CATALOG. The sections below describe how BOSS supports those operations and section 5.4 describes the relations to MONITOR. T_BOSS The operation and the catalog entry, which are to be dealt with, COMMAND are specified by means of different BOSS commands. The handling is of course limited to the catalog entries to which the user has access and the SYSTEM pool can o_n_l_y_ be printed. It is possible to have more catalog entries with identical names. Using a BOSS command, the catalog entry located in the first pool passed in the SCOPE diagram is affected. This means that the catalog entry with the narrowest SCOPE is affected. T_ Figure 4.6 SYSTEM PROJECT USER LOGIN\f T_4.4.1 C_r_e_a_t_e_ It is not explicitly possible to create catalog entries through BOSS. It does happen implicity though, by using the SAVE command &_ and by BOSS controlled read in (LOAD). T_4.4.2 C_h_a_n_g_e_. &_ Changes are made with the SCOPE andRENAME commands. T_4.4.2.1 S_c_o_p_e_. A catalog entry can be transferred to another pool in the &_ SCOPE DIAGRAM with the SCOPE command. T_ Ex. 4.1 scope user data &_ The catalog entry DATA is placed in the USER pool. T_ SYNTAX login scopeusername' &_ project FUNCTION T_ The catalog entry with the narrowest SCOPE and the specified name is placed in the SCOPE pool stated. To secure the transfer to the new pool, a possible catalog entry with the specified name in the &_ new pool will be deleted at the outset. T_ Exercise 4.4 In each of the SCOPE pools LOGIN, USER, and PROJECT, there is a catalog entry with the name DATA. Describe what happens when the &_ following is entered: scope project data scope login data \f T_ 4.4.2.2 R_e_n_a_m_e_. A catalog entry is renamed with the RENAME command. Ex. 4.2 rename old new &_ The catalog entry OLD is renamed to NEW. T_ SYNTAX &_ rename name' new name' FUNCTION T_ The specified catalog entry is equipped with the new name with &_ the RENAME command. The command operates on the catalog entry with the narrowest SCO- PE, and if a catalog entry with the new name already exists in this pool, the renaming is not carried out. T_ Exercise 4.5 In each of the SCOPE pools LOGIN, USER and PROJECT, there is a catalog entry with the name DATA. &_ Transfer the catalog entry in the USER pool to the PROJECT pool. T_ 4.4.3 D_e_l_e_t_e_ Catalog entries are deleted with the CLEAR command. Ex. 4.3 clear login data &_ The catalog entry DATA is deleted from the LOGIN pool. T_ SYNTAX login1 clear username' &_ project0 FUNCTION T_ The specified catalog entry in the SCOPE pool stated is deleted. If the parameters are omitted the contents of the JOB FILE is &_ deleted and a BASIS FILE, if any, is released (cf. 3.4.4.2). \f T_4.4.4 P_r_i_n_t_ LOOKUP Printing of a catalog entry can be accomplished with the LOOKUP &_ command. T_ Ex. 4.4 lookup data &_ The catalog entry DATA is printed. T_ SYNTAX login1 lookup username' &_ project0 FUNCTION When the SCOPE has been specified, the catalog entry, with the specified name in the SCOPE pool stated, is printed. Otherwise the catalog entry with the specified name and the narrowest SCOPE, is printed. T_ The printout has the following appearance: name' = set tail' ; scope specification' &_ ;head' T_ Ex. 4.5 data=set 18 disc d.770415.1623 0 0 0 0 ; user &_ ; 100 17 3 100 109 Section 4.6 contains a more detailed description of the catalog entries. T_4.5 The Catalog and Utility Programs There are a number of utility programs to handle the catalog, in &_ order that the different jobs can create, change, delete and\f print catalog entries. These UTILITY programs often have the name of a corresponding BOSS command. The execution of a program re- quires that a JOB FILE is written/typed, and that the job is exe- cuted. The program descriptions below are not exhaustive, and only show alternatives to the BOSS commands discussed above. T_4.5.1 C_r_e_a_t_i_o_n_. &_SET Temporary catalog entries are created with the SET program. T_ Ex. 4.6 10 data=set 18 20 finis A temporary area DATA is created with a size of 18 &_ segments. T_ SYNTAX &_ name' = set size' FUNCTION T_ A temporary catalog entry is created with the specified name, and &_ the size stated determines the area size in segments. T_4.5.2 C_h_a_n_g_e_. The contents of a catalog entry can be changed with the SCOPE and &_ RENAME programs. T_4.5.2.1 S_c_o_p_e_. A catalog entry can be transferred to another pool in the &_ SCOPE DIAGRAM with the SCOPE program. T_ Ex. 4.7 10 scope user data &_ 20 finis The catalog entry DATA is tranferred to the USER pool. \f T_ SYNTAX temp scope loginname' user &_ project FUNCTION T_ The catalog entry, with the narrowest SCOPE and the specified name, is placed in the SCOPE pool stated. To secure the transfer to the new pool, a possible catalog entry with the specified name &_ in the new pool will be deleted from the outset. T_4.5.2.2R_e_n_a_m_e_. A catalog entry is renamed with the RENAME program. Ex. 4.8 10 rename old.new &_ 20 finis The catalog entry OLD is renamed NEW (cf. 6.3) T_ SYNTAX &_ rename name'.new name' FUNCTION T_ The specified catalog entry is renamed with the new name specified. The RENAME program operates on the catalog entry with the narrow- est SCOPE, but if a catalog entry with the new name already exists &_ in this pool the renaming is not carried out. T_4.5.3 D_e_l_e_t_e_. &_ Catalog entries are deleted with the CLEAR program. T_ Ex. 4.9 10 clear user data &_ 20 finis The catalog entry in the USER pool is deleted. \f SYNTAX temp clear login name' user &_ project FUNCTION The specified catalog entry in the pool stated is deleted. T_4.5.4 P_r_i_n_t_ LOOKUP Catalog entries can be printed with the LOOKUP program. &_ Ex. 4.10 lookup data All accessible catalog entries with the name DATA is printed. T_ SYNTAX &_ lookup name' FUNCTION All accessible catalog entries with the specified name is printed. T_ The printing is performed as previously discussed (cf. section 4.4.4 and section 4.6) &_ name'=set tail' ; scope specification' ; head' T_ 4.5.5 E_x_e_r_c_i_s_e_s_. Exercise 4.6 Examine how many catalog entries with the name RCDATA there exist. 1. With the LOOKUP command &_ 2. With the LOOKUP program T_ Exercise 4.7 &_ Create a catalog entry and place it in the LOGIN pool. \f T_ Exercise 4.8 A member of a project wishes to make a temporary area, DATA, ac- cessible for another member of the project. How can this be done, &_ and who will afterwards have access to the area? T_4.6 Catalog Entry All the information in the catalog entry appears, when the entry &_ is printed with LOOKUP. T_ Ex. 4.11 lookup data data = set 72 disc d.770415.1673 0 0 0 0 ; user &_ ; 100 17 3 100 109 T_ The information is divided into two groups the head and the tail. HEAD TAIL First slice Size Name key Document name Catalog key Date Base Miscellaneous &_ Name In the printout in example 4.11 the information is stated in the following order: T_ name' = set size'document name'date'miscellaneous' ;scope' ; first slice'name key'catalog key'base' &_ The items are described in the section below. T_4.6.1 T_h_e_ _F_i_r_s_t_ _S_l_i_c_e_. The backing store is divided into a number of units of equal si- ze. These units are called SLICES, and always consist of an even &_ number of segments. The number is installation dependent. \f T_ Figure 4.7 &_ Figure 4.7 shows the backing store divided into SLICES. In addi- tion to the catalog two more areas have been drawn, hatched diffe- rently. It appears from the figure that: An area always consists of an entire number of SLICES. An area may consist of connected SLICES. An area may consist of disconnected SLICES. Each slice is numbered, and the FIRST SLICE element of the catalog entry selects the number of the first SLICE, which is part of the area. The chaining together of the SLICES is handled by MONITOR. A catalog entry can be used for different purposes, and does not inevitably describe an area, as it has been assumed up till now. The interpretation of the FIRST SLICE element depends on the use of the catalog entry. (cf. 4.6.6). \f T_4.6.2 N_a_m_e_ _K_e_y_. This piece of information is used by MONITOR for managing in the &_ catalog. T_4.6.3 C_a_t_a_l_o_g_ _K_e_y_. The SCOPE information is determined by the catalog key and the &_ base (cf. exercise 4.9). T_4.6.4 B_a_s_e_. The base consists of a pair of numbers, stating the lower base limit and the upper base limit. The SCOPE specification is deter- &_ mined by the base and the catalog key. T_ Exercise 4.9 A user has printed different catalog entries and achieved there- T_ sult seen below: T_ data=set 36 disc 0 0 0 0 0 ; project &_ ; 1207 72 3 5 154 T_ data=set 18 disc 0 0 0 0 0 ; user &_ ; 1199 72 3 15 24 T_ data=set 18 disc 0 0 0 0 0 ; temp &_ ; 1197 72 0 16 16 ; T_ d100=set 36 disc 0 0 0 0 0 ; login &_ ; 1310 72 2 16 16 How are the concepts temporary, LOGIN, and permanent reflected in a catalog entry? Find a connection between the bases in the 4 SCOPE pools. Another user belonging to the same project likewise prints different catalog entries and achieves the result seen on the following page: \f T_ data=set 36 disc 0 0 0 0 0 ; project &_ ; 1207 72 3 5 154 T_ data=set 72 disc 0 0 0 0 0 ; user &_ ; 900 72 3 35 44 T_ data=set 18 disc 0 0 0 0 0 ; temp &_ ; 501 72 1 40 40 How does it appear from the base, whether a user has access to a catalog entry or not? How are the relation between the bases of two different projects? T_4.6.5 N_a_m_e_. The name complies with the following rules: A name consists of up to 11 characters, (letters/digits). It must begin with a letter. &_ Only small letters must be used. T_IDENTIFI- A catalog entry is identified by its name and base. This implies CATION that more catalog entries with identical names and bases cannot &_ exist. T_4.6.6 S_i_z_e_. When size is positive the catalog entry describes an area and size specifies the number of segments. By alternative uses size is negative. A catalog entry can, for instance, describe a file &_ on a magnetic tape. T_ 4.6.7 D_o_c_u_m_e_n_t_ _N_a_m_e_. The data is situated on physical documents. These can, for instan- ce, be a kit or a magnetic tape. Documents also have names, which &_ comply with the established rules. When a catalog entry is crea- ted, it may furthermore be specified on which document an area is to be placed. \f T_ Ex. 4.12 10 data1 = set 18 disc &_ 20 finis An area, DATA1, is created on the kit called DISC. A catalog entry can be a reference to an area, and the area is then considered to be a document. T_ UTILITY = SET 126 DISC D.770227.0208 0 43 0 &_ 14.1024 ; SYSTEM T_ LOOKUP = SET BS UTILITY D.770227.0206 0 43 &_ 2.1332 2474 ; SYSTEM The LOOKUP program is located in the area (on the document) UTILITY, which again is located on the document DISC. T_4.6.8 D_a_t_e_. This piece of information may contain a date and an hour, but it &_ may also be omitted. T_4.6.9 M_i_s_c_e_l_l_a_n_e_o_u_s_. Different kinds of information can be placed in 4 integers. The interpretation of the information depends on the programs using the catalog entries. The information can, for instance, tellthat &_ an area contains a compiled program. T_4.7 Additional Disc Units All the disc units, attached to the computer are organized as de- &_ scribed in the previous sections.\f T_ Figure 4.8 DISC C C A MAT ATA IAL NLO OG G1 CC AA TT AA LL OO GG 23 &_ DK123456DK789101 Furthermore a main catalog is placed on one of the kits. Themain catalog contains copies of all the catalog entries in the catalogs, belonging to the mounted kits. The kit containing the main catalog cannot be dismounted; but if it is to be dismounted the catalog must be moved to another kit. This can be done on request. \f T_ Figure 4.9 SYSTEM DISC PRIVATE DISC C CMAC AATA T 1IAT2 ANLA LOL OGO GG &_ DISCDK123456 T_ PRIVATE The document name of the kit containing the basic software is KIT DISC and is referred to as the system disc. The rest of the kits &_ are called private and usually have a name of the type DKXXXXXX. T_CHANGE When a kit is mounted all the catalog entries in the catalog of KIT the kit will become incorporated in the main catalog, which then contains a complete description of the backing store. When a pri- vate kit is dismounted all catalog entries concerning the kit are &_ removed from the catalog. T_ Ex. 4.13 10 x=set 200 dk123456 20 scope user x &_ 30 finis A temporary catalog entry X is created in the main catalog on the system disc, describing an area in the kit DK123456. The catalog entry is then placed in the USER pool, which at the\f same time incorporates it in the catalog on DK123456. The area will now be able to survive a dismounting of the kit. T_ Exercise 4.10 Set up an extended syntax for the SAVE command, so &_ more disc units can be used. T_ 4.8 Resources Distinction is made between temporary and permanent resources in &_ the backing store. &_4.8.1 T_e_m_p_. Temporary resources are ordered with the TEMP option/command. Ex. 4.14 temp disc 500 10 &_ job kc 1234 temp disc 500 10 T_ SYNTAX &_ temp disc segments' catalog entries' The specified number of temporary segments and catalog entries are requested on the system disc. When a temporary resource is deleted, the released capacity is transferred to the job. When the job is terminated all temporary resources are released. T_ 4.8.2 P_e_r_m_. Permanent resources are ordered with the PERM option/command. Ex. 4.15 perm dk123456 3000 30 &_ job kc 1234 perm dk123456 3000 30 T_ SYNTAX &_ perm document name' segments' catalog entries' The specified number of permanent segments and catalog entries\f are requested on the specified kit. The part of the permanent resources, which have been used, survive the job. This is exactly what distinguishes this resource from the other resources. When a permanent resource is deleted by a job, the released capacity is transferred to the job. It is allowed to use the permanent resources for temporary or LOGIN areas. T_4.9 Examples This section contains different examples of the most frequently &_ used BOSS commands for the handling of the catalog. T_ Ex. 4.15 Enter a job and store it in a permanent area. 10 job kc 1234 time 10 0 20 p = algol text 30 finis save kcjob &_ scope user kcjob T_ Ex. 4.16 The job stored in example 4.15 is to be modified and &_ then stored again. T_ get kcjob 15 p = set 50 dk791399 save kcjob clear &_ scope user kcjob When the SAVE command has been used, there exist two areas with the name KCJOB. As the permanent area KCJOB is a BASIS FILE it must be released with the CLEAR command, before the SCOPE command can be used for transferring the modified JOB FILE to the USER pool. \f T_ Ex. 4.17 When the SCOPE command is used the necessary resources must be available. perm disc 1000 10 &_ scope user kcjob Resources are requested with the PERM command, before the SCOPE command is used. \f F_ 5 MONITOR In order to let the operating system carry out full control over the computer, it is necessary that certain functions are executed by the operating system alone. Several of these functions will be common irrespective of the selected operating system. Due to this fact these functions are gathered in an independent unit which is called MONITOR. Figure 5.1 shows the location of MONITOR and BOSS in the primary store. T_ Figure 5.1 Primary Store MONITOR BOSS &_ Besides the priviledge functions MONITOR contains different va- riables and tables describing the state of the computer. The description consists of a sequence of process descriptions, as the activities of the computer are performed in processes. It is not strictly necessary to know the process concept, but in order to understand some error messages, it can be essential to be acquainted with this concept. On your first reading of the book the rest of chapter 5 could be skipped. \f T_ 5.1 Process PROCESS To the caretaking of different functions different process types NAME exist. A process is named according to the wellknown rules. In the following sections the three most important process types are &_ treated. T_5.1.1 I_n_t_e_r_n_a_l_ _P_r_o_c_e_s_s_. By an internal process is meant a well-defined area in the primary store where the programs are executed. A job is thus executed in an internal process and the job name is identical with the &_ process name. To each internal process a process description exists which among other things contains the following information: - Processname - Location in the primary store - Resources claim - Time consumption -Hierarchial placing - State The description contains both fixed and variable information. The process name is fixed information while i.e. the time consumption is continuously accumulated. The updating is carried out by MONITOR. T_ 5.1.1.1 P_r_o_c_e_s_s_ _H_i_e_r_a_r_c_h_y_. After the initial loading the primary store contains MONITOR and an internal process S, which is the basic operating system. All resources are allocated to S. This is shown &_ in figure 5.1 \f T_ Figure 5.2 Primary store MONITOR S &_ T_ A subset of a process can be laid out as an independent process CHILD and resources can be transferred to the new process. The new pro- PROCESS cess is called a CHILD PROCESS while the name of the original is &_ PARENT PROCESS. Usually the operating system S is used only for creation of BOSS, alone causing all resources to be transferred to BOSS. Figure 5.3 shows that S is PARENT and BOSS is CHILD. T_ Primary store MONITOR &_ S BOSS When a job is to be executed by BOSS an internal process is crea- ted in which the execution takes place. The execution of two jobs simultaneously is shown in figure 5.4. \f T_ Figure 5.4 MONITOR JOB 1 S BOSS JOB 2 &_ T_ BOSS is now PARENT PROCESS for the two CHILD-processes and S is ANCESTOR called ANCESTOR PROCESS. When a job is terminated the internal &_ process is removed. T_ 5.1.1.2 P_r_o_c_e_s_s_ _S_t_a_t_e_. The process state reflects the immediate activity of the process. A distinction between two primary states is made. - Running &_ - Waiting By MONITOR CPU time is in turns assigned all processes, which are in the state RUNNING (ROUND ROBIN). A process can be in the state WAITING for several reasons. A pro- cess waiting for data transports is in this state and so is a process which is swopped by BOSS. Two factors are thus essential concerning the sharing of CPU time: 1. BOSS>s priority strategy. (JOB SCHEDULING) 2. MONITOR>s ROUND ROBIN strategy. T_5.1.2 P_e_r_i_p_h_e_r_a_l_ _P_r_o_c_e_s_s_. The data transfer between peripheral devices and the primary sto- &_ re is carried out by the peripheral processes. A peripheral pro- cess is a part of the MONITOR. To each peripheral device a\f peripheral process belongs, including a process description which among other things contains the following information: - Process name - Device number - Reservation - Potential users (internal processes) A potential user can reserve a peripheral process which could be necessary before writing. The various processes are described in ref. 13. T_ 5.1.3 A_r_e_a_ _P_r_o_c_e_s_s_. Data transfer between areas of thebacking store and the primary store is carried out by area processes. As the number of areas &_ can vary a pool of area processes is found in MONITOR. These can be attached to the desired areas. In the area process description the following information is included: - Process name - Device number - Reservation - Potential users (internal processes) An area is located on a peripheral device (DISC). In the process description there is referred to the device number. A potential user may reserve an area process which is necessary before writ- ing. T_5.1.4 P_r_o_c_e_s_s_ _H_a_n_d_l_i_n_g_. Monitor supports the process handling by a set of priviledged functions. &_ The list below gives an impression of the possibilities: \f T_ CREATE INTERNAL PROCESS CREATE PERIPHERALPROCESS CREATE AREAPROCESS RESERVE PROCESS RELEASE PROCESS REMOVE PROCESS START INTERNAL PROCESS &_ STOP INTERNAL PROCESS T_5.2 Internal Communication MESSAGE In MONITOR a pool of MESSAGE BUFFERS exists, they are used for &_ BUFFERtransfer of information between the different processes. The exchange of information should take place according to a well- defined protocol, and the following functions are made available by MONITOR: T_ SEND MESSAGE WAIT MESSAGE SEND ANSWER &_ WAIT ANSWER A message is transferred to a MESSAGE BUFFER by use of the func- tion SEND MESSAGE. From here the message is transferred to the wanted process when this calls the function WAIT MESSAGE. The answer of the message is returned via the same MESSAGE BUFFER by calling SEND ANSWER. By calling the function WAIT ANSWER the an- swer from the MESSAGE BUFFER is transferred to the process. The communication outline below shows this: T_ SENDER RECEIVER SEND MESSAGE WAIT MESSAGE SEND ANSWER &_ WAIT ANSWER \f An internal process which waits for an event (MESSAGE, ANSWER) is by MONITOR set into the state WAITING until the event occurs. T_ A more advanced communication between processes is supported by the functions: GET EVENT &_ WAIT EVENT The processes arrange individually the exchange of information. To the relevant peripheral / area process messages containing the necessary information are sent by way of input / output. The pro- cesses return an answer concerning the success of the data trans- fer. T_ Ex. 5.1 begin integer a,b ; read (in,a,b); write (out,a,b) ; &_ end In this wellknown program input as well as printout is carried out. The necessary internal communication is not reflected in the program, but is unnoticed attended to by the READ and WRITE pro- cedures. A message concerning input / output typically contains the following information: 1. Operation code 2. Statement of data buffer By reading, data is transferred from the device to the specified data buffer, and by writing, data is transferred from the data buffer to the device. In the answer the following information is typically found: 1. Statusword 2. Number of transferred halfwords. \f T_5.3 Resources Process descriptions and message buffers are regarded as resour- ces and thus by run under BOSS the necessary resources must be &_ requested in the JOB SPECIFICATION or by BOSS commands. T_5.3.1 I_n_t_e_r_n_a_l_ _p_r_o_c_e_s_s_. INTERNAL The internal process descriptions are requested by the command / &_ option INTERNAL. T_ Ex. 5.2 internal 1 &_ job kc 1234 internal 1 T_ SYNTAX &_ internal number' FUNCTION T_ The specified number of internal process descriptions are ordered. &_ By the creation of a CHILD PROCESS a description is required. T_ 5.3.2 P_e_r_i_p_h_e_r_a_l_ _P_r_o_c_e_s_s_. By ordering a peripheral device (cf. 3.5.4) the belonging &_ peripheral process is also requested. T_ 5.3.3. A_r_e_a_ _P_r_o_c_e_s_s_. &_ AREA By the command / option AREA the area processes are ordered. T_ Ex. 5.13 area 10 &_ job kc 1234 area 10 SYNTAX area number' \f FUNCTION The specified number of area processes are ordered. Each process can be attached to one area at the time. Simultaneous use of two areas thus demands two area processes. By successive use one area process is sufficient, as the area process in sequence can be attached to the areas. T_5.3.4 M_e_s_s_a_g_e_ _B_u_f_f_e_r_. &_ BUF By means of the BUF command / option MESSAGE BUFFERS are ordered. Ex. 5.4 buf 7 &_ job kc 1234 buf 7 T_ SYNTAX &_ buf number' FUNCTION The specified number of MESSAGE BUFFERS are ordered. By sending a message a MESSAGE BUFFER is used. By the reception of the an- swer the MESSAGE BUFFER is returned and a new message can be send off. The number of MESSAGE BUFFERS thus determines how many mes- sages can be send simultaneously. T_ 5.4 The Catalog The handling of the catalog is entrusted to MONITOR which is sup- &_ ported by the following functions: T_ CREATE ENTRY LOOKUP ENTRY CHANGE ENTRY REMOVE ENTRY PERMANENT ENTRY SET ENTRY BASE &_ LOOKUP HEAD AND TAIL \f The use of the wellknown BOSS-commands and utility programs (chap- ter 4) thus results in the call of one or more of the MONITOR functions. A MONITOR function is performed from the ALGOL-programs by calling the procedure MONITOR. T_5.5 Division of Work The division of work between MONITOR and BOSS may seem a little dim and thus the matter is illustrated in a sequence of examples &_ in the following sections. T_5.5.1 C_P_U_ _-_ _t_i_m_e_. BOSS selects the jobs which are to be executed, and can start and stop the CHILD PROCESSES. MONITOR distributes CPU-time to the ac- tive (RUNNING) processes and can change the state of process by &_ the execution of certain functions. (cf. 5.2). T_5.5.2 S_u_p_e_r_v_i_s_i_o_n_ PROTEC- Protection of the primary store is made by MONITOR to secure the TION OF internal processes and to prevent illegal disturbance in the form STORE of unwanted writing in the process area. T_RUN- The used run time is on the other hand surveyed by BOSS which al- &_TIME so decides what should happen to a job that exceeds the time limit. T_5.5.3 R_e_s_o_u_r_c_e_s_. The ordering of resources is addressed to BOSS, and the wanted &_ resources are transferred to the CHILD PROCESS. MONITOR prevents a process from using more resources (MESSAGE BUFFER, AREA PROCESS, PERIPHERAL PROCESS, CATALOG ENTRY, SLICE) than it has been given at its creation. \f T_5.5.4 D_a_t_a_ _t_r_a_n_s_f_e_r_. MONITOR attends to the data transfer whereas BOSS decides whether &_ "spooling" should take place. T_5.5.5 P_o_l_i_c_y_. From the section mentioned you can conclude that the political decisions (job scheduling, job termination, resource allocation, spool strategy) are left to BOSS. The noon political decisions are made by MONITOR. \f F_ 6 FILE PROCESSOR In the previous chapters our attention has almost solely been con- centrated on the reservation of resources, and we have only to a small extent dealt with the use of the resources, we have order- ed. We have already seen, though, how programs can be activated. Before dealing with this subject in detail, chapter 6 contains a short description of the sequence of events when a job is execu- ted. T_6.1 Execution of a Program When BOSS has selected a job, a internal process is created, through which the job can be executed. From the backing store BOSS then loads a program which handles the execution of the pro- grams wanted. This program is called a FILE PROCESSOR, and is &_ named FP. T_ Figure 6.1 MONITOR B FP ORC0 S SFP &_ RC1 Figure 6.1 illustrates the simultaneous execution of the two jobs RC0 and RC1. Each job is executed in an internal process and there is a copy of FP in each process. During the execution of the job FP is situated permanently in the primary store and can support the execution in different ways. FP handles the following: \f Reads and interprets control commands (FP commands) Activates programs Updates state variables Makes auxiliary functions available T_ Ex. 6.1 10 job kc 1234 temp disc 900 5 20 data = set 900 disc &_ 30 finis When this job is to be executed, BOSS begins by reading the JOB SPECIFICATION, then an internal process is created and the resour- ces needed are transferred to the process. FP is loaded and further execution of the job is left to FP. This is what happens: 1. FP reads the first FP command from the JOB FILE. T_ 2. The command is interpreted, and the SET program is &_ loaded into the free part of the process. 3. The SET program is activated and executed. T_ 4. The execution of the program is terminated by a call &_ of the FP auxiliary function END PROGRAM. T_ 5. The control is now returned to FP which updates its state variables concerning the execution of the SET &_ program. 6. The next FP command is read from the JOB FILE. T_ 7. The command is interpreted, and the FINIS program is &_ loaded, hereby overwriting the SET program T_ 8. The FINIS program is executed. FINIS sends a message instructing BOSS to terminate the job, and the con- &_ trol is returned to BOSS, which terminates the job.\f Figure 6.2 RC0 RC0 RC0 RC0 FP FP FP SET FINIS &_ Figure 6.2 illustrates the sequence of events, when the job in example 6.1 is executed. As shown, FP permanently occupies space in the primary store, but as FP utilizes the primary store vir- tually it is only a few halfwords (1536) which are being occupied permanently. Thus regarding space, it is not of much importance that each job contains a copy of FP. As FP only has to attend to one job, FP is a comparatively simple program, which may easily be replaced by another one. T_6.2 FP Command There is a distinction between simple FP commands and compound FP &_ commands. T_6.2.1 S_i_m_p_l_e_ _F_P_ _C_o_m_m_a_n_d_. Ex. 6.2 finis lookup data &_ data = set 900 disc A program is activated with a simple FP command, and different parameters may be transferred to the program. T_ SYNTAX11 &_ result file'= 0 program name' parameter list'0 \f FP reads an FP command, performs a check of the syntax, inter- prets the command, and activates the specified program. The inter- pretation of the optional parts of the command are left to the specified program. T_LEFT The part of the command to the left of the program name is called HAND SIDE the left hand side and usually specifies the name of a catalog entry. T_ Ex. 6.3 u = set 18 &_ u = algol text SET creates a catalog entry called U, and ALGOL stores the com- piled program in this area. T_ PARAMETER LIST The parameter list to the right of the program name consists of one or more parameters separated by spaces. N &_ parameter list' :: = s' parameter' 1 T_PARAMETER Each parameter consists of one or more elements separated by a full stop. N &_ parameter':: = elements' .element' 0 T_ Ex. 6.4 scope user data &_ u = algol txt list.yes xref.yes \f T_ELEMENT An element can be either a name or an integer. name' element'::= &_ integer' The names, which are stated, comply with the wellknown rules. The integers are limited to the interval 0 to 8388607. T_ Ex. 6.5 save mt123456.1.mt471100 ud = copy ind 3 &_ u = algol text The interpretation of the parameter list is done individually by the single programs. A common convention is adhered to, as the first parameter usually states an input file, that is, only if it consists of a name. A space in an FP command may be replaced by a comma and a new line, thus a command can be spread over more lines. T_ Ex. 6.6 u = algol, list.yes, &_ xref.yes The contents to the right of a semicolon is regarded as a com- ment. Ex. 6.7 u = fortran txt list.yes ; activate FORTRAN T_ Exercise 6.1 1. u.yes = fortran text 2. 2 = algol txt 3. 3 list.yes 4. x = copy 9000000 &_ 5. u = algol programtext3 Detect the errors. \f T_6.2.2 C_o_m_p_o_u_n_d_ _F_P_ _c_o_m_m_a_n_d_. A compound FP command is a sequence of FP commands within a paren- &_ thesis. T_ Ex. 6.8 (u = algol &_ u) T_ SYNTAX compound command'::= (simple command' NL' simple command' N) &_ compound command' 0 T_ Ex. 6.9 (u = algol txt if warning.yes (u = algol list.yes finis) &_ ) T_COMMAND FP always reads one command at the time, regardless of it is a STACK simple or a compound command. A command is saved in the command stack, and the next command is not read before all simple com- &_ mands in the stack have been executed. T_ Exercise 6.2 Reshape the JOB FILE in example 3.1, so all the FP commands are gathered. &_ What is gained by this reshaping? \f T_6.3 Files FILE By a file is meant an unbroken string of data, such as a paper tape, a card deck, an area, or a magnetic tape file. A file is described by a catalog entry. When a job is executed, it has immediate access to different files. These files are called standard files and comprise the following files: T_ 1. The JOB FILE contains the job wishes. Except for the JOB SPE- PRIMARY CIFICATION the JOB FILE is handed over to the job by BOSS, and &_INPUT FILE is called PRIMARY INPUT FILE. T_ 2. FP commands and different kinds of input are read from CUR- CURRENT RENT INPUT FILE. During the execution of the job it is possib- INPUT FILE le to alternate between different input files. At job start PRIMARY INPUT FILE is selected to be CURRENT INPUT FILE inor- der that the first FP command always is read from the JOB &_ FILE. T_CURRENT 3. Output and error messages are printed on the CURRENT OUTPUT OUTPUT FILE FILE. During the job execution it is possible to alternate PRIMARY between different files. The first one selected is called &_ OUTPUT FILE PRIMARY OUTPUT FILE. T_ 4. The area PRIMOUT is selected by BOSS as PRIMARY OUTPUT FILE. &_ PRIMOUT PRIMOUT is a SPOOL AREA, and BOSS forwards the data. PRIMARY INPUT FILE and PRIMARY OUTPUT FILE are described in the catalog by the catalog entries V and C respectively; these names should therefore not be used for other purposes. \f T_6.3.1 C_u_r_r_e_n_t_ _I_n_p_u_t_ _F_i_l_e_. I The CURRENT INPUT FILE is selected with the I program. Ex. 6.10 10 i commandfile &_ 20 finis The I program changes COMMANDFILE to CURRENT INPUT FILE. The following commands are now read from this file; and it remains CURRENT INPUT FILE, until it is exhausted. T_ SYNTAX &_ i name' FUNCTION The name of the CURRENT INPUT FILE and its position is saved, in order that reading from the file later may be resumed from the correct position. The specified file is chosen as CURRENT INPUT FILE. The return information is stored in a stack capable of con- taining an arbitrary number of elements. T_ Ex. 6.11 STACK NAME POSITION (i ind 1 C - i ind 2 ind1 - &_ i ind 3) ind2 - The compound command selects a new CURRENT INPUT FILE 3 times, and each time stores the necessary return information in the stack. T_UNSTACK- When the CURRENT INPUT FILE is exhausted, i.e. an END OF MEDIUM ING character has been read, the last element in the stack is extrac- ted. The file described is selected as CURRENT INPUT FILE, and &_ reading continues from the specified position. A complete un-\f stacking has thus taken place. When the stack is empty FP resumes reading from PRIMARY INPUT FILE. END CURRENT INPUT FILE is unstacked with the END program. T_ Ex. 6.12 end &_ The CURRENT INPUT FILE is unstacked. T_ SYNTAX &_ end FUNCTION T_ END performs a function similar to the one performed when an &_ END OF MEDIUM character is used. T_6.3.2 C_u_r_r_e_n_t_ _O_u_t_p_u_t_ _F_i_l_e_ O The CURRENT OUTPUT FILE is selected with the O program. Ex. 6.13 10 o outfile 20 u = algol txt list.yes 30 o c 40 convert outfile &_ 50 finis CURRENT OUTPUT FILE is selected, and printing from ALGOL is done on the specified file. T_ SYNTAX &_ o name' FUNCTION The use of CURRENT OUTPUT FILE is terminated by an END OF MEDIUM character, and the specified file is then chosen as CURRENT OUT- PUT FILE. If there exists no file with the specified name an area is created with the name, and it is chosen as CURRENT OUTPUT FILE. No return information is stored. \f T_6.3.3 Z_o_n_e_s_ _I_N_ _a_n_d_ _O_U_T_._ In ALGOL and FORTRAN programs the zone IN is connected with the CURRENT INPUT FILE, and the zone OUT is connected with the &_ CURRENT OUTPUT FILE. T_6.3.4 E_x_e_r_c_i_s_e_s_. Exercise 6.3 &_ Why is line 30 in example 6.13 necessary? T_ Exercise 6.4 Alter the JOB FILE in example 3.1, so that output is listed on &_ the printer and input read from a file called INPUT. T_ Exercise 6.5 The areas KOM1 and KOM2 contain the FP commands below: K_O_M_1_ K_O_M_2_ u = algol txt o outfile i kom2 u data &_ convert outfile o c T_ Determine the order of execution, when the following job is en- rolled: 10 i kom1 &_20 finis T_ Exercise 6.6 The areas FPKOM1 and FPKOM2 contain the FP commands below: F_P_K_O_M_1_ F_P_K_O_M_2_ &_u = algol txt1 p = algol txt2 T_ Explain what happens when the jobs below are enrolled: 1. 10 i fpkom1 20 i fpkom2 &_ 30 finis \f T_ 2. 10 (i fpkom1 20 i fpkom2) &_ 30 finis T_ 6.3.5 P_R_I_M_O_U_T_. The area PRIMOUT, which at job start is selected as PRIMARY OUTPUT FILE, is a resource; the size may be specified with the &_option/ command OUTPUT. T_ Ex. 6.14: output 768000 &_ job kc 1234 output 768000 T_ SYNTAX &_ output number of characters' FUNCTION T_ The amount of output wanted is specified in characters, and &_PRIMOUT gets the size characters/786 segments. T_6.4 Job Programming From section 6.1 we know that a program is terminated by a call of the auxiliary function END PROGRAM. In the call of the auxi- &_ liary function some information concerning the success of the execution of the program is forwarded to FP, which stores the information in different state variables. The value of the state variables may be used to modify the job execution, and by means of different utility programs it is possible to program in FP commands. \f T_ 6.4.1 S_t_a_t_e_ _V_a_r_i_a_b_l_e_s_. MODE BITS FP has an integer to register various information. In each of the 24 bits, information may be stored about a state which can have the value YES or NO. The bits are called MODE BITS and 12 of them are reserved for special purposes, while the remaining 12 are placed at the disposal of the job. The 3 most important bits are &_ listed below. T_ L_I_S_T_ When the LIST bit has the value YES, each FP command is listed &_ on CURRENT OUTPUT FILE before execution. T_ O_K_ Together with the WARNING bit this bit reflects the execution of &_ the program. T_ W_A_R_N_I_N_G_ Together with the OK bit, this bit reflects the success of the &_ execution of the program. Both the OK bit and the WARNING bit is adjusted after each execu- tion of a program. The rest of the bits are only changed on request. T_ M_O_D_E_ The MODE BITS can be assigned values with the MODE program. Ex. 6.15 mode list.yes mode list.no The list bit is assigned the value YES in the first call &_ and NO in the second. T_ SYNTAX mode bit'. yes &_ no \f T_ FUNCTION The value stated, YES or NO, is assigned to the specified bit. A bit may either be represented by a name or a number. T_ Ex. 6.16 mode 8.no &_ Bit 8 is assigned the value NO. The free bits are numbered from 0 to 11. T_6.4.2 P_r_o_g_r_a_m_m_i_n_g_. The job control language consists of the following basic elements: Sentence e.g. a simple FP command. The sentence parenthesis (). IF sentence REPEAT Sentence &_ The two first elements are wellknown. I_F_ T_ The execution of the next FP command can be made dependent on the &_ value of the MODE BITS with the IF program. T_ Ex. 6.17 u=algol txt if ok.no finis u &_ finis The first call of FINIS is only executed if the OK bit has the value NO. T_ SYNTAX if mode'. yes &_ no \f T_ FUNCTION The next FP command is executed, if the specified MODE BIT has the value stated. A MODE BIT can be identified with a number or a name. As opposed to all other programs, the MODE BITS are not updated after the execution of the IF program. T_ R_E_P_E_A_T_ A command can be executed several times with the REPEAT program. Ex. 6.18 (repeat 5 &_ u) The command is executed 5 times. T_ SYNTAX (repeat number' &_ command') The command stated is executed the specified number of times. The repetition must be specified in a compound command. T_6.4.3 E_x_c_e_r_c_i_s_e_s_. The answers to the exercises presupposes a knowledge of the call of ALGOL, and the updating of the OK and WARNING bits done by &_ ALGOL. A_L_G_O_L_ T_ ALGOL compiles a source text to an object program, which can be executed. Different modifications can be specified in the program &_ call. T_ SYNTAXNYES1 object file'=algol source file' list. 0NO0 &_ YES 1 YES1 boss line. ref. NO 0 NO0\f The compiled program is stored in the object file. Error messages etc. are listed on CURRENT OUTPUT FILE. The ALGOL TEXT is read from the specified source files or from the CURRENT INPUT FILE, when nothing else is stated. LIST.YES states that the ALGOL TEXT is to be listed. BOSSLINE.YES states that each line is to be equipped with a num- ber, which can be used when editing with BOSS. XREF.YES states that a cross reference map of the use of the va- riables is to be listed. The values of the OK and WARNINGbits have the following signifi- cance: T_ OK. YES The compiled program can be executed, perhaps only partially. NO The compiled program cannot be executed. WARNING YES A syntactic error has been detected. &_ No No syntactic error has been detected. It is assumed in the exercises that an ALGOL TEXT is found in the area TEXT. T_ Exercise 6.7 Write a job which can compile the program and execute it, if pos- &_ sible. T_ Exercise 6.8 Extend the job from exercise 6.7,causing the program text and a cross reference map to be listed on the printer, if syntactical errors are detected. \f T_ Exercise 6.9 Extend the job from exercise 6.8 in order that the compiled pro- gram only is to be executed when no errors have been detected, and then it is to be executed 6 times. T_6.5 Auxiliary Functions There exist different kinds of auxiliary functions which the pro- grams can use. The assembler program takes particular advantages &_ of this. T_ 6.6 Error Messages &_ The most important error messages from FP is listed below: T_ xxx BREAK explanation' A severe error effected that the job was broken off. The job is restarted by initializing FP and continues with the execution of &_ the next command in the JOB FILE. T_ xxx FP CALL program' &_ The name stated is not a program name. T_ xxx FP NAME program' &_ The name stated does not exist in the main catalog. T_ xxx FP JOB TERMINATION The job was terminated after 10 syntactic errors had been detec- &_ ted. T_ xxx FP REINITIALIZED &_ Fp has been reinitialized due to severe errors. T_ xxx FP SYNTAX some characters' Syntactic errors in input for FP. The erroneous characters are &_ listed. \f Exercise 6.10 Explain the error messages in the 3 jobs below: 1. 10 testprogram1 20 2 3 30 finis go &_ FINIS T_ xxx FP SYNTAX TESTPROGRAM1 x READ FROM PRIMARY INPUT xxx FP REINITIALIZED xxx FP SYNTAX 2 x READ FROM PRIMARY INPUT xxx FP REINITIALIZED &_ END ... T_ 2. 10 testprogram 20 finis go FINIS &_ xxx FP NAME TESTPROGRAM T_ 3. 10 testprogram 20 finis go FINIS xxx FP CALL TESTPROGRAM &_ END ...\f Diskette 26 81.09.24 1 830.0 21 848.22 53 848.54 85 848.86 2 830.1 22 848.23 54 848.55 86 848.87 3 830.2 23 848.24 55 848.56 87 848.88 4 830.3 24 848.25 56 848.57 88 848.89 5 830.4 25 848.26 57 848.58 89 848.90 6 830.5 26 848.27 58 848.59 90 848.91 7 830.6 27 848.28 59 848.60 91 848.92 8 830.7 28 848.29 60 848.61 92 848.93 9 830.8 29 848.30 61 848.62 93 848.94 10 830.9 30 848.31 62 848.63 94 848.95 11 830.10 31 848.32 63 848.64 95 848.96 32 848.33 64 848.65 96 848.97 1 FORSIDE.0 33 848.34 65 848.66 97 848.98 2 FORSIDE.1 34 848.35 66 848.67 3 PREFACE.0 35 848.36 67 848.68 1 INDEX.0 4 CONTENTS.0 36 848.37 68 848.69 5 CONTENTS.1 37 848.38 69 848.70 1 HEAD.0 6 CONTENTS.2 38 848.39 70 848.71 7 CONTENTS.3 39 848.40 71 848.72 1 FOREWORD.1 8 CONTENTS.4 40 848.41 72 848.73 2 FOREWORD.2 9 848.10 41 848.42 73 848.74 3 CONT.3 10 848.11 42 848.43 74 848.75 4 CONT.4 11 848.12 43 848.44 75 848.76 5 269.1 12 848.13 44 848.45 76 848.77 6 269.2 13 848.14 45 848.46 77 848.78 7 269.3 14 848.15 46 848.47 78 848.79 8 269.4 15 848.16 47 848.48 79 848.80 9 269.5 16 848.17 48 848.49 80 848.81 10 269.6 17 848.18 49 848.50 81 848.82 11 269.7 18 848.19 50 848.51 82 848.83 12 269.8 19 848.20 51 848.52 83 848.84 20 848.21 52 848.53 84 848.85\f \f «eof»