|
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: 133888 (0x20b00) Types: TextFile Names: »D41«
└─⟦2294a1cd1⟧ Bits:30005867/disk06.imd Dokumenter (RCSL m.m.) └─⟦this⟧ »D41«
i T_A_B_L_E_ _O_F_ _C_O_N_T_E_N_T_S_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P_A_G_E_ 1. INTRODUCTION ........................................... 1 2. GENERAL INFORMATION .................................... 2 2.1 Message Format .................................... 2 2.2 Answer Format ..................................... 3 2.3 Operating System Actions .......................... 3 2.4 How to Send Parent Messages ....................... 4 3. PARENT MESSAGES ........................................ 5 3.2 Finis ............................................. 5 3.4 Break ............................................. 6 3.6 Hard error ........................................ 8 3.8 Account ........................................... 9 3.10 Replace ........................................... 10 3.12 New job ........................................... 12 3.14 Mount tape ........................................ 14 3.16 Print ............................................. 16 3.18 Mount ring ........................................ 18 3.20 Suspend tape ...................................... 20 3.22 Release tape ...................................... 22 3.24 Load .............................................. 24 3.26 Change paper ...................................... 26 3.28 Timer ............................................. 28 3.30 Convert ........................................... 30 3.32 Mount special ..................................... 32 3.34 Mount kit ......................................... 34 3.36 Corelock .......................................... 36 3.38 Coreopen .......................................... 37 3.40 Remove ............................................ 38 3.42 Wait .............................................. 39 3.44 Function 44 ....................................... 40 3.46 Function 46 ....................................... 40 3.48 Function 48 ....................................... 40 3.50 Create link ....................................... 41 A_P_P_E_N_D_I_X_: A. REFERENCES ......................................... 45 \f ii \f 1_._ _ _ _ _ _ _ _ _I_N_T_R_O_D_U_C_T_I_O_N_ 1. In a multiprogramming environment there has to be an operating system to control (or at least facilitate) the sharing of re- sources between jobs. This again calls for the definition of a language for communication between the jobs and the operating system. In the RC8000 Multiprogramming System (see ref. 11), a common language has been defined for all operating systems. It is im- plemented by means of m_e_s_s_a_g_e_s_ sent from the jobs (internal pro- cesses) to the operating system (the p_a_r_e_n_t_). Ref. 11 contains an introduction to the concept of messages as a means of communication. This manual describes the parent messages used. Chapter 2 con- tains general information, and chapter 3 describes each of the parent messages separately. Please notice that the section numbering in chapter 3 follows the numbering of the parent message functions (see 2.1), i.e. only even numbers occur. \f F_ 2_._ _ _ _ _ _ _ _ _G_E_N_E_R_A_L_ _I_N_F_O_R_M_A_T_I_O_N_ 2. 2_._1_ _ _ _ _ _ _ _M_e_s_s_a_g_e_ _F_o_r_m_a_t_ 2.1 All parent messages consist of 8 words, like this: m+0: function < 12 + pattern < 5 + wait m+2: integer or text portion m+4: integer or text portion ... until m+14 function specifies the operation to be performed. Only even values are allowed. pattern specifies how the message is to be displayed to the operator. The pattern contains seven bits, one to each of the words m+2 to m+14. A bit being one means that the corresponding word contains an integer, otherwise the word contains a text por- tion of 3 characters (3 NULs denote a blind word). Thus, e.g., bit 1 < 11 means that m+2 is an integer, 1 < 5 that m+14 is an integer. wait may be zero or one. A zero means that the job wants the answer immediately, a one means that the job wants the answer when the operation is complete, (or when the operator answers the message displayed.) The notation used will be familiar to assembler programmers. ALGOL programmers will need to know that m+0 is the first word of the message, m+2 the second etc., and that, e.g. 1<5 means: 1 shift 5. Ref. 5 2.149 (system, example 5) contains an instruc- tive example. \f 2_._2_ _ _ _ _ _ _ _A_n_s_w_e_r_ _F_o_r_m_a_t_ 2.2 The answer to a parent message is also 8 words but the format depends on the operating system as well as on the message: The operating system "s" unconditionally delivers an answer containing an exact copy of the message sent. The operating system system BOSS gives an answer as described for each message in chapter 3. Where nothing is stated, the first 3 words of the answer will contain zeroes, and the last 5 words are undefined. 2_._3_ _ _ _ _ _ _ _O_p_e_r_a_t_i_n_g_ _S_y_s_t_e_m_ _A_c_t_i_o_n_s_ 2.3 The Operating System s: The following description is adapted from ref. 10 2.2: When the operating system s receives a message from one of its childs, the following is done: a) If wait (see 2.1) equals 1, the child process is stopped, an answer (see 2.2) is sent to the process and a message is printed on the console, from which the process was created: pause <processname><contents of message> The operator can now start, break or remove the process, depending on the function in the message. b) If wait equals zero, the answer is sent to the process, and a message is printed on the console from which the process was created: message <processname><contents of message> These are the only actions taken for all parent messages except 'finis' and 'replace', see 3.2 and 3.10. \f The Operating System BOSS: The actions of the operating system BOSS are described separately for each parent message in chapter 3, but some common principles may be stated here: Undefined parent messages are treated as described in 3.16. The guiding texts, like <:finis:> etc. and actual value of <pattern> (cf. 2.1) are ignored, except for 3.16, where they are used to format the message displayed to the operator (very much like the message displayed by s (see above). BOSS always uses the main console as display, in contrast to s, which uses the console from which the job was started. BOSS often ignores the actual value of wait, but the values shown should be used anyway. They have been carefully chosen to ensure that a job may be executed under different operating systems with as little change as possible. 2_._4_ _ _ _ _ _ _ _H_o_w_ _t_o_ _S_e_n_d_ _P_a_r_e_n_t_ _M_e_s_s_a_g_e_ 2.4 Most user's needs for sending parent messages are covered by the IMPLITIC USE and the dedicated 'job control' UTILITY PROGRAMS mentioned separately for each parent message in chapter 3. If you have more specialized needs you may send any parent mes- sage from a high-level program by means of the standard procedure 'system', see ref. 5 2.149, where example 5 contains an in- structive example. \f F_ 3_._ _ _ _ _ _ _ _ _P_A_R_E_N_T_ _M_E_S_S_A_G_E_S_ 3. 3_._2_ _ _ _ _ _ _ _F_i_n_i_s_ 3.2 m+0 2<12 + 16<5 + 1 M_m_m_ +2 <:finis _:> P_p_p_ +4 +6 <param> The job reports that it has finished in the normal way. The operating system will terminate the job. <param> is a bit pattern specifying special actions. At present the following values are used: <param> extract 1 = 0: print primary output <param> extract 1 = 1: do not print primary output. UTILITY PROGRAM: finis (see ref. 7) sends the message with wait = 1 and pattern = 0. <param> is extended with the text <:fp:> (left justified). OPERATING SYSTEM ACTIONS: s (only MONITOR release 7.0 and later): if WAIT=1 the job process will be removed. See ref. 10 2.2. BOSS: terminates the job like this: remove links used by the job, remove job process (cf. ref. 12 2.64), terminate the use of jobcontrolled printer, clean catalog (i.e. remove temporary entries left over by the job), terminate the use of jobcontrolled cardreader and tapereader, release magnetic tapes and stations used by the job; make scratch tapes public, release operator requests concerning the job, release unused resources, maybe initiate the printing of primary output, perform accounting for the job, maybe start a 'replace'-job. \f 3_._4_ _ _ _ _ _ _ _ _ _ _B_r_e_a_k_ 3.4 m+0 4<12 + 0<5 + 0 M_m_m_ +2 <:break _:> P_p_p_ +4 The job asks the operating system to perform the "dump and re- start"-action (see below). UTILITY PROGRAM: None. IMPLICIT USE: This message is sent by all utility programs and by all programs written in high-level languages as the last action taken in response to an internal interrupt (a 'break'). High- level language programs running without fp terminate by sending this message, containing the end program text or an alarm text, see ref. 4 10.3.2.2 and 10.3.6.2. OPERATING SYSTEM ACTIONS: BOSS handles the message, according to the previous history of the job, as follows: 1) The interrupt was a parent break (break cause = 8) forced by BOSS itself in order to a_b_o_r_t_ the job, e.g. as an error re- action to one of the other parent messages, or because the job had exceeded its run time, or because the job was killed by the user or the operator. 2) The interrupt was a parent break (break cause = 8) forced by BOSS but at the explicit request of the job (by means of the parent message 3.28 "timer"). 3) The interrupt was not a parent break. 4) No interrupt occurred at all. In case (1) BOSS will terminate the job as described in subsec- tion 3.2 (above). \f In case (2), (3) and (4) BOSS will perform the "_d_u_m_p_ _a_n_d_ _r_e_s_t_a_r_t_"_-_a_c_t_i_o_n_: The job process is stopped. If a backing storage file by the name <:image:> is visible from the stdbase of the job and is within the maxbase of the job, the job process will be dumped in the file, and 'contents' in the file descriptor will be changed to 7 ("dumped process"). Then the job process will be removed and created again with claims and user rights (to peripherals) exact- ly as before the removal. Next, <:fp:> is loaded (from system base) and initalized to continue reading/writing at the current position of the jobfile/primary output file. FURTHER INFORMATION: Internal interrupts are described in ref. 11 8.1 and in ref. 12 1.2. The actions of the standard interrupt handling routine are de- scribed in ref. 6 3.5 (together with an explanation of the break causes possible), and in ref. 8 4.2. In ALGOL (release 8.0 and later releases) you may program your own non-standard interrupt handling actions by means of the standard identifiers 'alarmcause' and 'trapmode' and the standard procedure 'trap'. This is described in ref. 5 2.5, 2.153 (especially notice example 2) and 2.154. \f 3_._6_ _ _ _ _ _ _ _H_a_r_d_ _e_r_r_o_r_ 3.6 m+0 6<12 + 16<5 + 0 M_m_m_ +2 <:status:> P_p_p_ +4 +6 <logical status word> +8 M_m_m_ +10 <name of device or area> P_p_p_ +12 +14 The job reports that it has detected a hard error on a peripheral device or a backing storage area. ANSWER: See 3.16. UTILITY PROGRAM: None IMPLICIT USE: This message is sent by all utility programs if they terminate because of hard error on a file. See ref. 6 6.4 and 4.5. OPERATING SYSTEM ACTIONS: Handled as 3.16. FURTHER INFORMATION: The format of the <logical status word> is described in ref. 6 6.4. \f 3_._8_ _ _ _ _ _ _ _A_c_c_o_u_n_t_ 3.8 m+0 8<12 + 15<5 + 0 +2 +4 <:account _:> +6 +8 <param 3> +10 <param 4> +12 <param 1> (account kind, must be > = 100) +14 <param 2> The job wants to generate a special record on the system account file. UTILITY PROGRAM: account (ref. 7). The numbering of the para- meters follows the natural numbering of the parameters for the utility program 'account'. PREREQUISITES: BOSS: Each use of this message costs an 'account', which must be ordered when the job is started; see ref. 3 3.3. ERROR REACTIONS: BOSS: If the job has no more accounts left, the job will be aborted. FURTHER INFORMATION: ref. 1 chapter 6 is a detailed description of the accounting system in BOSS2. \f 3_._1_0_ _ _ _ _ _ _R_e_p_l_a_c_e_ 3.10 m+0 10<12 + 16<5 + 1 M_m_m_ +2 <:finis _:> P_p_p_ +4 +6 <param> +8 M_m_m_ +10 <name of replacement job file> P_p_p_ +12 +14 The job specifies a replacement job. ANSWER (BOSS): The value of the first word of the answer signals the result: 0: ok 1: not ok (replace not accepted from online job) UTILITY PROGRAM: replace (ref. 7). PREREQUISITES (BOSS): The file containing the replacement job must be permanent. The sending job must not be an online job (go or run). \f OPERATING SYSTEM ACTIONS: s (only MONITOR release 7.0 and later): if WAIT = 1, s will re- move the sending process immediately and start reading from the replacement job file (which is thus supposed to contain s-com- mands). See further ref. 10 2.2 and the 'read'-command, ref. 10 1.6. BOSS: The information from the message is stored to be used when the sending job eventually finishes. A replace message cancels previously sent replace messages. The existence and the contents of the replace job file is not checked before the replacement is actually carried out. The replacement will be carried out even if the sending job is aborted (e.g. because of 'time exceeded), ex- cept if the job is killed by the operator. If <param> = -1 (all ones) the message cancels any previously sent replace-message (without specifying a new replacement job). Otherwise <param> is treated as a bitpattern with the meaning: <param> extract 1 = 0: take username, userindex and project number from the sending job. <param> extract 1 = 1: take username, userindex and project number from the replacement job file. ERROR REACTIONS: see ANSWER. FURTHER INFORMATION: Notice the difference between how s and BOSS handle the message. \f 3_._1_2_ _ _ _ _ _ _N_e_w_ _j_o_b_ 3.12 m+0 12<12 + 0<5 + 0 +2 <:job:> M_m_m_ +4 <printerspec> P_p_p_ +6 +8 M_m_m_ +10 <name of the job file> P_p_p_ +12 +14 The job specifies a jobfile to be enrolled for execution. ANSWER (BOSS): the first word of the answer signals the result: 0: ok (job file accepted, new job enrolled) 1: job queue full 2: file not permanent 3: file does not exist 5: file unreadable 7: user index too large 8: illegal identification 9: user index conflict 11: file too long 19: attention status at remote terminal 20: device unknown 21: device not printer 22: parent device disconnected 38: option unknown 39: param at job 40: syntax at job 41: line too long UTILITY PROGRAM: newjob (ref. 7), bossjob (ref. 7), remotejob (ref. 13). Concerning bossjob and remotejob, see FURTHER IN- FORMATION (below). PREREQUISITES (BOSS): The job file of the new job must be perma- nent, and it must be visible from the standard base of the sen- ding job. \f OPERATING SYSTEM ACTIONS: BOSS: The job file, the printer, and the job specification in the job file is checked and the result is signalled in the answer. If the result is 'ok', the new job is enrolled for execution and will continue independently of (and maybe in parallel with) the sending job. <printerspec> specifies where primary output from the job is to be printed, and is used as default value for printer specifica- tion in converts from the new job. The interpretation is: 0, 0: printer specification is taken from the job which sends the newjob message. If this job is a process running in parallel with Boss, printerspec = 0, 0 works as <:std:>, 0 (see below). <:std:>, 0: standard printer is used. anything else: <printerspec> is taken to be the name of a file descriptor or the name of a device in a device con- troller, and is interpreted as shown in ref. 3, sec- tion 7.2. The text in <printerspec> need not be termi- nated by the usual NULL-character, so a maximum length of 6 characters is possible. ERROR REACTIONS: see ANSWER (above). FURTHER INFORMATION: This message may not only be used as a pa- rent message. BOSS accepts such messages from any internal pro- cess. If you want to enroll a job for execution under BOSS from a process running in parallel with BOSS, use the utility program 'bossjob'. 'bossjob' works like 'newjob' except that the message is sent explicitly to <:boss:> (instead of "the parent"). The utility program 'remotejob' even makes it possible to enroll a job for execution under a boss-process running in another RC8000 jobhost, but this presupposes that the job hosts are in- terconnected via a Disc to Disc File Router Interface (a DDFR- FDLC link), see ref. 13. \f 3_._1_4_ _ _ _ _ _ _M_o_u_n_t_ _t_a_p_e_ 3.14 m+0: 14<12 + 0<5 + wait +2 +4 <:mount _:> +6 +8 M_m_m_ +10 <tapename> P_p_p_ +12 +14 The job requests a magnetic tape to be mounted. The message may be used both with and without wait indication: wait = 0 means that the job does not want to wait, wait = 1 means that the job wants to wait until the tape has been mounted. ANSWER (BOSS): If wait = 1 and tapename = <::>, the job asks for a 'work tape' (see ref. 5 2.130 (setposition, start position- ing)). In this case, the name of the tape actually used is re- turned in the first 4 words of the answer. This name must be used in future references to the tape. UTILITY PROGRAM: mount (ref. 7). IMPLICIT USE: This message may be sent by all data handling uti- lity programs when input or output is on magnetic tape. Where magnetic tapes are handled in high-level languages, the message may be sent (with wait = 0) by 'open' and (with wait = 1) by 'setposition' or when a data transfer is checked. In all cases the rule is that the message is only sent if the tape is not already available. PREREQUISITES (BOSS): The first mount-message concerning a cer- tain tape costs a 'mount', which must be ordered when the job is started, see ref. 3 3.1. Subsequent mount-messages concerning the same tape are free, as long as the tape has not been 're- leased' (see 3.22) or 'suspended' (see 3.20) by the job. Further- more you have to order a 'station' or a 'special tape station' (by means of 'stat' or 'device', respectively) for each simul- taneously mounted tape, see ref. 3 3.1. \f OPERATING SYSTEM ACTIONS: BOSS: It is first checked, that the job has ordered a 'station' or a 'special station' for the tape. If the tape is not already mounted, and the operator has not already been asked to mount the tape, a request for the tape is issued. If wait = 1, the job will be stopped and swapped out until the tape is mounted, possibly on a specific station (if this was previously ordered with 'mount special' (see 3.32)). Next the job is included as a user of that device (peripheral process), where the tape is actually mounted, swapped in and started again. The tape is now registered as being presently used by ('assigned to') the job, until the job either finishes, suspends the tape (3.20) or releases the tape (3.22). If the tape was not previ- ously registered with connection to a special station (see 3.22) it will be registered as "standard". ERROR REACTIONS (BOSS): The job will be aborted if: the tape is reserved for another project 'stations' would be exceeded, or the tape is being used by another job. FURTHER INFORMATION: Use of magnetic tapes in BOSS is described in ref. 3 6.1, and in ref. 14 chapter 5. The handling of mag- netic tape mounting in utility programs is described under the heading "kind = 18" in ref. 6 6.2 and 6.5. The handling of mag- netic tape mounting in high-level languages are described in ref. 4 2.3.3.1 (Details of Handling of Device Status, Magnetic tape, Does not exist), ref. 5 2.95 (Open, Initialization of a Docu- ment, Magnetic Tape and example 2) and in ref. 5 2.130 (Setpo- sition, Start Positioning and example 3). \f 3_._1_6_ _ _ _ _ _ _P_r_i_n_t_ 3.16 m+0 16<12 + pattern <5 + wait This message provides for flexible communication with the ope- rator for purposes which are not covered by the other parent messages. Pattern may be anything and the message may be sent with or without wait-indication. ANSWER (BOSS): If wait = 1, the first 4 words of the answer will contain the textword from the operator answer and the last word will contain the integer from the operator answer. If one (or both) is missing in the operator answer, it (they) will be re- placed by NULL's. UTILITY PROGRAM: opmess sends the message with wait = 0. opcomm sends the message with wait = 1. Both are described in ref. 7. IMPLICIT USE: The standard procedure 'open' (and all data hand- ling utility programs) will send a 'print'-message with the text: wait for <name of document> and wait = 0, during the initialization of a reader or card- reader if the device is reserved by another job. Open then waits (busy waiting) until the device is free. See ref. 5 2.95 (Open, Initialization of a document), and ref. 6 6.2 (Connection of a file, kind 10 and 12). \f OPERATING SYSTEM ACTIONS: s: handles the message in the standard way. Notice: this implies that the operator can not supply an answer. BOSS: displays the message to the operator. If wait = 1, the job will be stopped and swapped out until the operator answers the message displayed. The operator may add a textword (max. 11 chars) and/or an integer to the answer-command. (see ref. 4 chapter 3 ('answer'-command)). These will be returned in the answer to the message, see ANSWER (above). FURTHER INFORMATION: Notice, that there is a version of the stan- dard procedure 'system', especially designed to send this message with pure text as contents (see ref. 5 2.149 system(10, i,s)). \f 3_._1_8_ _ _ _ _ _ _M_o_u_n_t_ _r_i_n_g_ 3.18 m+0 18<12 + 0<5 + 1 +2 +4 <:ring _:> +6 +8 M_m_m_ +10 <tape name> P_p_p_ +12 +14 The job demands a write-enable ring on the tape. ANSWER (BOSS): If the tape is already "known" to BOSS one way or another, the first 4 words of the answer contain the tapename and the last 4 words are undefined. Otherwise the answer is unde- fined. UTILITY PROGRAM: Ring (ref. 7). IMPLICIT USE: This message may be sent by all data handling utility programs making output to magnetic tape. Where magnetic tapes are handled in high-level languages, the message may be sent when a data transfer (output) is checked, see ref. 4 2.3.3.1 (Details of Handling of Device Status, Magnetic tape, Stopped). PREREQUISITES (BOSS): If the message is to have any effect, the tape must previously have been requested by means of 'mount tape' or 'mount special' (with wait = 1, see 3.14 and 3.32), and not later suspended (see 3.20) or released (see 3.22). \f OPERATING SYSTEM ACTIONS: BOSS: The message may have no effect, as described above. The message also has no effect if the tape is actually already mounted and h_a_s_ a write-enable ring. Otherwise, the job is first excluded as a user of the device (peripheral process), where the tape is mounted. Then the job process is stopped and swapped out, the tape is unloaded and the operator is asked to mount the tape again, w_i_t_h_ a write-enable ring, possibly on a specific station (if this was previously ordered by means of 'mount special (see 3.22)). When the operator has mounted the tape again the job will be included as a user of that device where the tape is actually mounted, swapped in and started again. Please notice that BOSS does n_o_t_ check whether the operator actually did mount the ring when he remounted the tape. BOSS ignores the value of wait. ERROR REACTIONS (BOSS): The job will be aborted if the tape is presently being used by ('assigned to', see 3.14) another job, or if the sending job is not permitted to use that particular tape with a ring, see ref. 3 6.1.2 (access code). FURTHER INFORMATION: See the other messages concerning magnetic tapes: 3.14, 3.20, 3.22 and 3.32. \f 3_._2_0_ _ _ _ _ _ _S_u_s_p_e_n_d_ _t_a_p_e_ 3.20 m+0 20<12 + 0<5 + 0 +2 +4 <:suspend _:> +6 +8 M_m_m_ +10 <tape name> P_p_p_ +12 +14 The job releases the s_t_a_t_i_o_n_ on which the tape is mounted, but warns that the tape may be needed again later. ANSWER (BOSS): As for 3.18 'mount ring'. UTILITY PROGRAM: suspend (see ref. 7). IMPLICIT USE: Where magnetic tapes and flexible discs are handled in high-level languages, this message will be sent when the stan- dard procedure 'close' is called like this: close(z,true), see ref. 5 2.25 (close) and ref. 15 3.6 (Releasing a Flexible Disc). PREREQUISITES (BOSS): A suspend message concerning a 'work tape' (see ref. 5 2.130 (setposition, start positioning)) costs a 'suspend', which must be ordred when the job is started, see ref. 3 3.3. \f OPERATING SYSTEM ACTIONS (BOSS): The message has no effect if the tape is not registered as being used by ('assigned to') the job. Otherwise BOSS will do as follows (if relevant): exclude job as user of the tape station, std.station: becomes a "free" station, std.station: decrease 'stations' used by one, cancel operator requests concerning the tape, work tape: increase 'suspends' used by one, rewind the tape. Notice, that the assignment of the tape to the job is not can- celled, neither is the station connection ('std' or 'special'). The tape may later be unloaded by BOSS or by the operator if the station is needed for another tape. ERROR REACTIONS (BOSS): The job will be aborted if the tape is a work tape, and the job has no 'suspends' left. FURTHER INFORMATION: Please notice that utility programs general- ly do n_o_t_ suspend or release tapes (see ref. 6 6.3). The ad- vantage is that a tape may be left correctly positioned for the next program, but then, if the tape is actually no longer needed, or the station is to be used for another tape, you have to call one of the programs 'suspend' or 'release' (ref. 7). \f 3_._2_2_ _ _ _ _ _ _R_e_l_e_a_s_e_ _t_a_p_e_ 3.22 m+0 22<12 + 0<5 + 0 +2 +4 <:release _:> +6 +8 M_m_m_ +10 <tape name> P_p_p_ +12 +14 The job releases the tape and the station on which it is mounted. If the tape is a work tape, it becomes public. ANSWER (BOSS): As for 3.18 'mount ring'. UTILITY PROGRAM: release (see ref. 7). IMPLICIT USE: As for 3.20 'suspend tape' except that the call of 'close' must be: close (z, false add 1). PREREQUISITES: None. \f OPERATING SYSTEM ACTIONS (BOSS): The message has no effect if the tape is not registered as being used by (assigned to) the job. Otherwise BOSS will do as follows (if relevant): If the tape was not already suspended (see 3.20): exclude job as user of the tape station, std. station: becomes a "free" station, std.station: decrease 'stations' used by one, cancel operator requests concerning the tape. Suspended work tape: decrease 'suspends' used by one In all cases: cancel the assignment of the tape to the job (this makes a work tape public) and the station connection (std/special), rewind the tape. The tape may later be unloaded by BOSS or by the operator if the station is needed for another tape. ERROR REACTIONS: None. FURTHER INFORMATION: As for 3.20, except that the utility pro- grams 'save' and 'load', and the utility programs for flexible disc handling may send 'release' messages, see ref. 7 and ref. 15. \f 3_._2_4_ _ _ _ _ _ _L_o_a_d_ 3.24 m+0 24<12 + 0<5 + 0 M_m_m_ +2 <:load _:> P_p_p_ +4 +8 M_m_m_ +10 <reader name> P_p_p_ +12 +14 The job requests the loading of a new tape in a paper tape reader or a new deck of cards in a card reader. UTILITY PROGRAM: None. IMPLICIT USE: The standard procedure 'open' (and all data hand- ling utility programs) will send this message during the initi- alization of a paper tape reader or cardreader, and then wait (busy waiting) until the first non-empty data block is received from the device. See ref. 5 2.95 (Open, Initialization of a Document) and ref. 6 6.2 (connection of a file, kind 10 and 12). PREREQUISITES (BOSS): The use of paper tape reader and card reader from a BOSS job is usually handled as 'job controlled reading', and permission to use this facility must be ordered when the job is started. A full description is given in ref. 3 6.3 (Tape Reader) and 6.4 (Card Reader). \f OPERATING SYSTEM ACTIONS: s: notice that the normal implicit use has the effect that the job continues by itself as soon as the operator loads the reader in question. BOSS: If <reader name> is not the name of a 'job controlled reader' (cf. PREREQUISITES), the message will be handled as described for 3.16. Otherwise, the job will be stopped and swapped out while BOSS initializes the reading and instructs the operator. When the reader becomes ready the job will again be swapped in and allowed to continue. \f 3_._2_6_ _ _ _ _ _ _C_h_a_n_g_e_ _p_a_p_e_r_ 3.26 m+0 26<12 + 16<5 + 1 M_m_m_ +2 <:change:> P_p_p_ +4 +6 <paper type> +8 M_m_m_ +10 <device name> P_p_p_ +12 +14 The job demands new paper in a device, usually a printer or a punch. ANSWER (BOSS): If <device name> = <:printer:>, the first word of the answer signals the result: 0 : ok, message accepted. 2 : message rejected, job controlled printing not ordered (cf. PREREQUISITES). Otherwise the answer is as described for 3.16. UTILITY PROGRAM: change (see ref. 7). IMPLICIT USE: This message may be sent by all data handling uti- lity programs and by programs written in high-level languages when printer or punch is used, see ref. 6 6.5 (Standard Re- covery Actions, kind 12 and 14) and ref. 5 2.3.3.1 (Details of Handling of Device Status, kind 12 and 14). PREREQUISITES (BOSS): The use of a printer from a BOSS job is called job controlled printing, and permission to use this fa- cility must be ordered when the job is started. A full descrip- tion is given in ref. 3 6.2 (Printer). The use of a punch must be ordered by means of 'device', see ref. 3 3.1. \f OPERATING SYSTEM ACTIONS (BOSS): If <device name> = <:printer, the job will be stopped and swapped out until the operator has changed the paper. Then the job is swapped in again and allowed to proceed. Otherwise, the message is handled as described for 3.16. ERROR REACTIONS (BOSS): See ANSWER. \f 3_._2_8_ _ _ _ _ _ _T_i_m_e_r_ 3.28 m+0 28<12 + 3<5 + 0 M_m_m_ +2 <:timer _:> P_p_p_ +4 +12 <time1>: seconds to the interrupt +14 <time2>: seconds allowed the job to respond to the interrupt. The job requests a 'parent break' when <time1> seconds have elapsed, and then to be given a respite of a further period of <time2> seconds to respond to the break. The message may be used to make sure that a program does not use an unreasonable amount of computer time. It is especially useful during debugging, where a program may enter an endless loop. A new 'timer' message cancels previously sent 'timer' messages. UTILITY PROGRAM: timer (see ref. 7). \f OPERATING SYSTEM ACTIONS (BOSS): When <time1> seconds have elapsed, BOSS executes the 'parent break': stop job, store registers and instruction counter at the interrupt address of the job, set 'break cause' = 8 (parent break), restart the job in its 'interrupt handling routine'. The job is now expected to respond by sending a 'break' message (see 3.4), which will cause BOSS to perform the 'dump and re- start' action as described in 3.4. The job may also respond by sending a new 'timer' message, which will then cancel the present 'timer' message. If, however, the job does not respond to the 'parent break' be- fore <time2> seconds have elapsed, BOSS will perform the 'dump and restart' action described in 3.4 as if the 'break' message had been received - with one minor addition: when the process has been stopped, BOSS will store the present values of registers and instruction counter to replace the values stored by the 'parent break' (because there is obviously an error in the interrupt handling routine of the job, and the new values may help to find it). ERROR REACTIONS (BOSS): The job will be aborted if its interrupt address is undefined. FURTHER INFORMATION: See 3.4. BOSS: The elapsed time will be measured in 'real', physical time as on your own grandfather clock, except that time spent swapped out is not counted. \f 3_._3_0_ _ _ _ _ _ _C_o_n_v_e_r_t_ 3.30 m+0 30<12 + 16<5 + 0 M_m_m_ +2 <printerspec> P_p_p_ +4 +6 <paper type> +8 M_m_m_ +10 <file name> P_p_p_ +12 +14 The job reports that it wants to have a file printed on a certain line printer. The interpretation of <printerspec> is the same as for 'newjob' (see 3.12), except that 0, 0 must be replaced with the text <:conv:>. This text is inserted by the utility program 'convert' (see ref. 7), if it is called without a printer-parameter. ANSWER (BOSS): The first word of the answer signals the result: 0: ok, convert accepted 1: cbufs exceeded 2: file does not exist 3: file has wrong scope 4: temporary resources insufficient 5: file in use 6: file is not a backing storage area 7: file is no text file (contents key is not 0) 19: attention status at remote terminal 20: device unknown 21: device not printer 22: parent device disconnected UTILITY PROGRAM: convert (see ref. 7). \f PREREQUISITES (BOSS): Each convert costs a 'cbuf' which must be ordered when the job is started, see ref. 3 3.3. As the default value is rather high (8), there is normally no need to bother about this. The file must either be a permanent file (on any backing storage device) or a temporary file on the system disc (the backing storage named <:disc:>). OPERATING SYSTEM ACTIONS (BOSS): If the message is accepted (see ANSWER), the request will queued up for execution when its turn comes. If the file is temporary it will be taken over by BOSS, i.e. the job will no longer be able to see the file, and the re- sources (the segments and the catalog entry) used to create the file will not be given back to the job. ERROR REACTIONS (BOSS): The job will be aborted if it has no 'cbufs' left (cf. PREREQUISITES). See also ANSWER. FURTHER INFORMATION: As BOSS prints directly from the file if it is permanent, you should avoid using, changing or removing it before your are positively certain that BOSS has finished the printing. Please notice the contrast between this, and the online command 'convert' which always makes a copy of the file and prints from the copy. Please also notice, that you can not use this message to convert a 'login' file. There is a detailed example on how to send this message from an ALGOL program, in ref. 5 2.149 (system, example 5). \f 3_._3_2_ _ _ _ _ _ _M_o_u_n_t_ _s_p_e_c_i_a_l_ 3.32 m+0 32<12 + 16<5 + wait M_m_m_ +2 <:mount _:> P_p_p_ +4 +6 <device number> +8 M_m_m_ +10 <tape name> P_p_p_ +12 +14 The job wants a magnetic tape to be mounted on a specific tape station. The message may be used with or without wait-indication, but it is normally used without. ANSWER: As for 'mount tape' (see 3.14). UTILITY PROGRAM: 'mountspec' (sends the message with wait = 0 see ref. 7). IMPLICIT USE: The utility programs 'save' and 'load' will send this message as required, if they are called with the parameter 'mountspec'. PREREQUISITES (BOSS): The tape station in question must have been ordered when the job was started. This is done by means of 'de- vice', see ref. 3 3.1. The tape must not be registered as being used by (assigned to) another job, or by the sending job on a standard station or a different device. The message may cost a 'mount' as described in the prerequisites for 3.14. \f OPERATING SYSTEM ACTIONS (BOSS): As for 3.14 (mount tape), except that the tape will be registered with connection to the special tape station in question. This has the effect, that operator re- quests concerning the tape will automatically include the device number, even if you later on use 'mount tape' messages instead of 'mount special' messages. This connection will be cancelled by 'release' (see 3.22) but not by 'suspend' (see 3.20). ERROR REACTIONS (BOSS): The job will be aborted if the prere- quisites are not fulfilled: not special station station not ordered tape used by other job mount special after mount (the tape was already connected as 'std'). FURTHER INFORMATION: See the other messages concerning magnetic tape (3.18, 3.20, 3.22 and especially 3.14). The usual use of this message is, that if you want to have a tape mounted on a special station, you only call the utility program 'mountspec' before the first mounting of the tape, and then again each time the tape has been 'released'. But notice that utility programs generally do not 'release' tapes, see 3.20. \f 3_._3_4_ _ _ _ _ _ _M_o_u_n_t_ _k_i_t_ 3.34 m+0 34<12 + 16<5 + wait M_m_m_ +2 <:kit:> P_p_p_ +4 +6 <device number> (logical backing storage device) +8 M_m_m_ +10 <disc pack name> (logical backing storage) P_p_p_ +12 +14 The job wants to have the disc pack mentioned mounted on the disc drive specified. The message may be used with or without wait- indication, but it is normally used with wait = 1. ANSWER (BOSS): If wait = 0, the first word of the answer signals the result like this: 0: ok (message printed) 1: job is not a user of the disc pack 2: device was not ordered at jobstart 3: device unknown or not a logical backing storage device. If wait = 1, first look at the first word of the answer. If it is 1, 2 or 3, the meaning is as above. Otherwise look at the second word: if the value is 11, the request has been fulfilled. If the second word is not 11, the job was started before the request was carried through, and the answer must be interpreted as an opera- tor answer (see 3.16). UTILITY PROGRAM: kit (see ref. 7). IMPLITIC USE: None. \f PREREQUISITES (BOSS): The device in question must be a logical backing storage device, and it must have been ordered (by means of 'device', see ref. 3 3.1) when the job started. This im- plies, that the disc pack in question must be formatted as a logical backing storage, and it must be stated in the user cata- log, that the job may use it as a private kit (usercat input type = 4, see ref. a 6.3.4 Private kits). Furthermore, if the job wants to be given resources on the logical backing storage in question when it becomes available, this must also be ordered when the job is started (by means of 'perm', see ref. 3 3.1). OPERATING SYSTEM ACTIONS (BOSS): When it has been checked, that the prerequisites are fulfilled, the message will be passed on and handled as exactly as if it were a 'print' message (see 3.16), i.e. the message will be displayed on the operator console and if wait = 1, the job will be stopped and swapped out. If the operator knows that the disc pack is already mounted and ready, he may just send an operator answer to the job (see 3.16). Otherwise he is expected to carry out the mounting as described in ref. 14 chapter 4. When this mounting is completed, BOSS will include the job as a user of the device, give it resources (according to what was ordered at jobstart), allow it to proceed and send an answer (with second word = 11, see ANSWER). Incidentally, if there are other active jobs which have ordered resources on the backing storage in question, they will at the same time be given the resources ordered. ERROR REACTIONS (BOSS): see ANSWER. FURTHER INFORMATION: See ref. 3 5.3 and ref. 14 chapter 4. \f 3_._3_6_ _ _ _ _ _ _C_o_r_e_l_o_c_k_ 3.36 m+0 36<12 + 2<5 + 0 +2 +4 <:corelock _:> +6 +12 <number of seconds in the period> The job requests not to be interrupted, stopped or swapped out for a certain period of time. UTILITY PROGRAM: corelock (see ref. 7). IMPLICIT USE: None. PREREQUISITES (BOSS): The permission to use this facility, and the maximum duration of the period must be ordered at jobstart, and the permission must also be stated in the user catalog. OPERATING SYSTEM ACTIONS (BOSS): If the request fulfils the pre- requisites, the job will be locked in core, as if the job had infinitely high priority, for as many seconds as stated in the message. BOSS now expects to receive a 'coreopen' message (see 3.38) from the job before the stated period of time is over. When the message is received, the job resumes normal priority and proceeds. If, however, no such message is received the job will be aborted. ERROR REACTIONS (BOSS): The job will be aborted if: corelock is not allowed, corelock time is exceeded (coreopen not received). FURTHER INFORMATION: See ref. 3 6.7.3. \f 3_._3_8_ _ _ _ _ _ _C_o_r_e_o_p_e_n_ 3.38 m+0 38<12 + 0<5 + 0 +2 +4 <:coreopen:> +6 This message is only used in connection with 'corelock', see the description in 3.36. UTILITY PROGRAM: coreopen (see ref. 7). IMPLICIT USE: None. PREREQUISITES: None. ERROR REACTIONS: None. OPERATING SYSTEM ACTIONS (BOSS): The message has no effect, except when used in connection with 'corelock', see 3.36. \f 3_._4_0_ _ _ _ _ _ _R_e_m_o_v_e_ 3.40 m+0 40<12 + 0<5 + 0 +2 +4 <:remove _:> +6 +8 M_m_m_ +10 <file name> P_p_p_ +12 +14 This message is not used as a parent message. It may be used to transfer backing storage resources to BOSS from a job running in parallel with BOSS. ANSWER (BOSS): The message will be rejected (result = 2) if the prerequisites are not fulfilled. UTILITY PROGRAM: None. IMPLICIT USE: None. PREREQUISITES (BOSS): The file must be either a non-area entry or a temporary file on the system disc (the logical backing storage with the name <:disc:>), and it must be visible from the standard base of the sending job. OPERATING SYSTEM ACTIONS (BOSS): BOSS will remove the entry, and thus, of course, increase its own claims. The resources gained will be made available to jobs. ERROR REACTIONS (BOSS): See ANSWER. \f 3_._4_2_ _ _ _ _ _ _W_a_i_t_ 3.42 m+0 42<12 + 16<5 + 1 M_m_m_ +2 <:wait _:> P_p_p_ +4 +6 <number of seconds in the period> The job wants to be stopped for some time. UTILITY PROGRAM: None. IMPLICIT USE: None. PREREQUISITES (BOSS): The permission to use this facility, and the maximum duration of the period must be ordred at jobstart. If you want to be able to wait for more than one hour (3600 secs.), this must also be stated in the user catalog. OPERATING SYSTEM ACTIONS (BOSS): If the request fulfils the pre- requisites, the job will be stopped and swapped out. When the waiting time expires, the job will be swapped in again and allowed to run with a very high (virtually infinite) priority for the next few seconds. After that normal priority is resumed. The operator may terminate the waiting at any time by means of the 'answer' command (cf. 3.16). ERROR REACTIONS (BOSS): The job will be aborted, if the prere- quisites are not fulfilled. FURTHER INFORMATION: This facility may be used to execute a task with regular intervals, f.ex. like this: first the job sends a wait-message. Then it executes its task, sends a message request- ing to be replaced by the same job (see 3.10) and finishes. See also ref. 3 6.7.4. \f 3_._4_4_ _ _ _ _ _ _F_u_n_c_t_i_o_n_ _4_4_ 3.44 Not used at present. Will be treated as 3.16. 3_._4_6_ _ _ _ _ _ _F_u_n_c_t_i_o_n_ _4_6_ 3.46 Not used at present. Will be treated as 3.16. 3_._4_8_ _ _ _ _ _ _F_u_n_c_t_i_o_n_ _4_8_ 3.48 Not used at present. Will be treated as 3.16. \f 3_._5_0_ _ _ _ _ _ _C_r_e_a_t_e_ _l_i_n_k_ 3.50 m+0 50<12 + 7<5 + 1 +2 M_m_m_ +4 <devname> (in devicehost) P_p_p_ +6 +8 +10 <kind> < 12 + <subhostno> (at jobhost) +12 <hostid> (devicehost) +14 <homereg> < 12 + <netid> The job requests the creation of a temporary (remote) link. A special version of this message is used for TELEX devices (see ref. 2 3.5) <devname> is the name of the device (in the devicehost), which the link is to connect. <subhostno> and <hostid> identify the endpoints of the link. <homereg> and <netid> are not used at present, but both should be zero. \f ANSWER (BOSS): The result of the operation is returned in the first word of the answer: bit 0-7 : device status (8 single bits) bit 8-11: link description (4-bit number) bit 12-23: function result (12-bit signed number). function result: -1 : sender stopped. 0 : o_k_,_ _w_o_r_d_ _2_-_5_ _o_f_ _a_n_s_w_e_r_ _c_o_n_t_a_i_n_s_ _t_h_e_ _n_a_m_e_ _o_f_ _t_h_e_ _l_i_n_k_ p_r_o_c_e_s_s_ _c_r_e_a_t_e_d_. 1 : device troubles (see 'device status'). 2 : device reserved by other host. 3 : no resources at jobhost. 4 : no resources at devicehost. 5 : timeout. 6 : device requested with higher priority. 7 : some link was already present (see 'link description'). 8 : device host unknown. The following function results originate from BOSS: 9 : job cannot be included as user of the device. 10 : links exceeded. link description: 0 : no link present. 1 : remote link present. 2 : local link present. device status (relevant only if function result = 1): bit 0 : device unknown. - 1 : device closed. - 2 : - 3 : - 4 : - 5 : device driver not loaded. - 6 : device reserved by another process. - 7 : reservation rejected. \f UTILITY PROGRAM: None. IMPLICIT USE: None. PREREQUISITES (BOSS): Each message costs a 'link' which must be ordered when the job is started, see ref. 3 3.3. OPERATING SYSTEM ACTIONS (BOSS): The sending process will be stopped and swapped out while BOSS tries to create the link. Then the job is swapped in again, allowed to proceed and given the answer. If the link creation was succesful, 'links' available for the job will be decreased by one. ERROR REACTIONS (BOSS): The job will be aborted, if it has no more 'links' left. FURTHER INFORMATION: The description given here presupposes a knowledge of the concept of links corresponding to that given in ref. 17 chapters 1 and 2. See also ref. 3 6.7.1.1, and con- cerning telex links, ref. 2 (especially section 3.5). \f F_ \f F_ A_._ _ _ _ _ _ _ _ _R_E_F_E_R_E_N_C_E_S_ A. 1 RCSL No 31-D628: BOSS2 Installation and Maintenance Manual 2 RCSL No 31-D474: The TELEX facilities at MOT 3 RCSL No 42-i1265: BOSS2 User's Manual 4 RCLS No 42-i0781: ALGOL7 User's Manual, Part 1 5 RCSL No 42-i1278: ALGOL8 User's Guide, Part 2 6 RCSL No 31-D364: SYSTEM 3 UTILITY PROGRAMS, Part One 7 RCSL No 31-D590: SYSTEM 3 UTILITY PROGRAMS, Part Two 8 RCSL No 31-D379: SYSTEM 3 UTILITY PROGRAMS, Part Three 9 RCSL No 31-D552: RC8000 OPERATING SYSTEMS: INTRODUCTION 10 RCSL No 31-D643: OPERATING SYSTEM s, Reference Manual 11 RCSL No 31-D476: RC8000 MONITOR, Part 1, System Design 12 RCSL No 31-D477: RC8000 MONITOR, Part 2, Reference Manual \f 13 RCSL No 31-D625: Remotejob Utility Program 14 RCSL No 31-D498: BOSS2 Operator's Manual 15 RCSL No 31-D459: Flexible Disc Handling within the ALGOL System, User's Manual 16 RCSL No 31-D596: Utility Programs for Flexible Disc Handling 17 RCSL No 31-D557: CREATELINK, RELEASELINK, LOOKUPLINK, LOOKUPDEV Utility programs \f F_ INDHOLDSFORTEGNELSE 1 INTRODUKTIONpage 5 2 RC 8000 MASKINEL6 2.1 Centralenhed7 2.2 System-Bus10 2.3 Internt Lager11 2.4 Magnetpladelager12 2.5 Styreenhed til ydre I/O enheder 13 2.6 Basis-Modeller14 3 RC 8000 SYSTEM-PROGRAMMEL16 3.1 Monitor17 3.2 System-proces "s"19 3.3 BOSS Operativsystem 20 3.4 MIPS/TS Operativsystem 22 3.5 I/O Systemet24 4 RC 8000 PROGRAMMERINGSSPROG26 4.1 ALGOL26 4.2 FORTRAN 27 4.3 BASIC/COMAL 28 4.4 SLANG29 5 RC 8000 OPERATIONELT PROGRAMMEL30 5.1 File-Processor30 5.2 Hjælpeprogrammer 31 5.3 Data-Management-Systemer 31 5.4 Forskellige andreProgrammelpakker 33 6 RC 8000 APPLIKATIONSPROGRAMMEL 35 6.1 RC Økonomi-Styringssystem 36 6.2 RC Lønningssystem 36 6.3 RC Produktions- og Lagerstyringssystem37 6.4 RC System 8037 6.5 RC NET 38 7 NOGLE TYPISKE RC 8000 APPLIKATIONER40 7.1 Et mindre Regnskabs- og Produktionsstyringssystem40 7.2 Et Servicecentersystem42 7.3 Telefonoplysningssystem45\f F_ 1 INTRODUKTION RC 8000 er et pålideligt og driftsikkert edb-system. På grund af den modulære opbygning kan RC 8000 konfigureres til at omfatte en lang række datamatsystemer; lige fra en minidatamat med kun få ydre enheder til en mellemstor centraldatamat, der betjener et om- fattende antal terminaler og satellitsystemer. Et RC 8000 System kan udvides uden omfattende udskiftninger af maskinel og program- mel, ligesom allerede eksisterende RC udstyr fortsat kan anvendes i et udbygget system. For eksempel kan en RC 3600 eller en RC 6000 opgraderes til et RC 8000 System. EN TYPISK RC 8000 INSTALLATION Et RC 8000 System er sammensat af både maskinel og programmel. Maskinellet, baseret på MSI og LSI teknologi, er driftsikkert og enkelt at betjene. Programmellet giver systemet fleksibilitet og stor spændvidde - og udbygger således systemmulighederne. Opdelingen af opgaver mellem maskinel og programmel sikrer stør- ste ydeevne til laveste pris, idet hver komponent bidrager til løsningen med de elementer, der er bedst egnede i relation til opgaven. I dette skrift beskrives, hvorledes maskinel og programmel indgår i RC 8000 Systemet.\f F_2 RC 8000 MASKINEL Et RC 8000 System består af 4 maskinelle hovedkomponenter: cen- tralenhed, internt lager, styreenhed til ydre ind-/udlæse enheder samt magnetpladelagerkanal. Et givet system vil omfatte en eller flere af disse komponenter. Enhederne er gensidigt forbundet ved hjælp af en databus, RC 8000 System-Bus, som udfører al overfør- sel af data mellem de sammenkoblede enheder. Databussen kan op- fattes som en selvstændig systemkomponent, da ingen af enhederne forbundet til bussen har speciel prioritet til at benytte denne. Alle rutineopgaver i forbindelse med ydre enheder varetages af tilhørende styrefunktioner. Centralenheden frigøres således for trivielle opgaver og kan koncentrere sig om databehandling. Denne struktur medfører da også, at RC 8000 Systemets totale ydelse er væsenlig større, end de nominelle data for centralenheden umiddel- bart lader formode. Opbygningen omkring en databus giver en generel og fleksibel\f struktur, med indbygget mulighed for senere udvidelser af syste- met. F.eks. med flere centralenheder eller flere styreenheder, - alle koblet til samme databus. I de følgende afsnit beskrives de enkelte maskinelle komponenter mere detaljeret, sluttende med en orientering om produktionstruk- turering indenfor RC 8000 Datamatsystemerne. T_ 2.1 Centralenhed RC 8000 Centralenhederne udfører programinstruktioner som hentes fra det interne lager under behandlingen. Enheden indeholder re- gistre og kredsløb til aritmetisk logik, almen og interrupt-sty- &_ring. Kombinationen af generel mikroprogrammering og specielle maski- nelle funktioner resulterer i en optimal fleksibilitet og hurtig- hed. Således f.eks. instruktions-prefetch, hvilket vil sige, at den følgende instruktion "maskinelt" hentes fra det interne la- ger, mens den øjeblikkelige instruktion bliver udført. Behand- lingsfunktionerne er ensartede for alle centralenheder, hvorimod\f hastigheden for udførelsen af den enkelte instruktion afhænger af forholdet mellem det antal funktioner, der er implementeret ved mikroprogrammering, og det antal funktioner der er implementeret maskinelt. En gruppe centralenheder er primært udviklet på grundlag af mi- kroprogrammering. Typiske udførelsestider ligger fra 3 til 20 usek. for almindeligt forekomne instruktioner. Disse enheder har muliggjort de kompakte modeller blandt RC 8000 Datamaterne. En anden gruppe centralenheder er udviklet med flere maskinelt implementerede funktioner. Typiske instruktionsudførelsestider ligger her fra 1 til 3 usek. Disse enheder ligger til grund for de større modeller blandt RC 8000 Datamaterne. Alle enhederne arbejder med et 24-bit-ord enkeltadresse instruk- tionsformat med 64 basis-instruktioner. Hver instruktion optager 12 bit og har 16 mulige adresseringsformer, herunder: relativt, indekseret og indirekte. 12-bit-halvord er det mindste direkte adresserbare dataformat. RC 8000 Centralenhederne benytter 4 arbejdsregistre, hvoraf 3 også virker som indeksregistre. Dette betyder, at hele instruk- tionssættet umiddelbart er til rådighed for adressemodifikatio- ner, hvorved antallet af tomme registeroverførsler til det in- terne lager reduceres væsentligt. Dataformat for talbehandling omfatter 12-bit halvord og 24-bit helord til reelle tal, samt 48-bit dobbeltord til udvidede reel- tal og flydende-kommatal beregninger. Instruktionssættet er meget alsidigt og omfatter bl.a. halvord- ordre og ord-sammenligningsordre, hvilket muliggør ordbehandling i lighed med de logiske ordrer, der tillader test og ændring på bitniveau. Yderligere er der indbygget en facilitet til aktive- ring af et programmeret handlingsforløb, der kan startes af for- udvalgte instruktionstyper. Et værdifuldt værktøj til fejlretning af programmer, til simulering af specialinstruktioner og lignen- de. De forskellige adresseringsformer tillader dynamiske omflyt- ninger af programmer. Det vil sige, at programmer kan udføres hvorsomhelst i det interne lager, således også flyttes rundt, når det er påkrævet. Et programbeskyttelsessytem med et realtidsur og et yderst virk- ningsfuldt interruptsystem giver mulighed for multiprogrammering (jvf. kapitel 3). \f Programbeskyttelse opnås ved hjælp af grænseregistre og privili- gerede instruktioner. Når udførelsen af en instruktion indebærer lagertilgang, bliver lageradressen kontrolleret mod grænseregi- stret for at forhindre, at de forskellige programmer blandes. Yderligere er nogle priviligerede instruktioner reserveret for operativsystemer. Hvis et almindeligt brugerprogram forsøger at udføre en priviligeret instruktion, vil programmet blive afbrudt. Interruptsystemet kan ligeledes afbryde programudførslen. Interne afbrydelser, d.v.s. afbrydelser forårsaget indenfor centralenhe- den, har 8 niveauer, hvorimod externe afbrydelser (fra de ydre enheder) har op til 248 niveauer på de større modeller. Realtidsuret, der har en findeling på 0,1 msek., styrer tidsde- lingen, der muliggør regelmæssige skift mellem programmer med henblik på behandling af parallelle programmer. &_ T_ &_ CENTRALENHED OG INTERNT LAGER - MODULOPBYGGET \f 2.2System-Bus Systembussen er rygraden i RC 8000 Systemet. Alle komponenter i et system er forbundet til den samme bus og kommunikerer efter en ensartet kommunikationsprotokol. Dette forenkler forbindelsen mellem de forskellige komponenter, idet den enkelte komponent kun skal forbindes til databussen. Kodekonversioner for specifikke ydre enheder bliver udført af en til disse enheder hørende styre- eller kanalenhed. Der anvendes en asynkron, fuldt sammenhængende forespørgsel/be- kræftelse - håndtryk - kommunikation (request/acknowledge). En databusoverførsel består af et dataord parallelt med et adresse- ord og udføres på 0,3 usek., hvilket medfører en overførselska- pacitet på 3,3 Mord pr. sek. Systembussen er en selvstændig del af systemet med en autonom busstyreenhed. Ingen af enhederne, der er forbundet til databus- sen, end ikke centralenheden, har særlig prioritet. Hvis en af de tilsluttede enheder skal bruge databussen, sender den en anmod- ning om brug af databus. Når databussen er klar, får den ansøgende enhed kontrol over bussen. Den næste enhed til at benytte databus- sen bliver valgt umiddelbart derefter, således at en ny enhed er klar, når den foregående bliver færdig. \f Den asynkrone overførselsform betyder, at dataoverførslen mellem to enheder vil foregå så hurtigt som muligt uafhængigt af kombi- nationen af enheder. Den faktiske overførselshastighed bestemmes af den maximale overførelseshastighed for den langsomste af de to enheder. Dette indebærer, at også interne lagermoduler med for- skellige cyklustider kan anvendes i det samme RC 8000 System. En opbygning med den ovenfor beskrevne RC 8000 System-Bus sikrer en effektiv udnyttelse af de maskinelle ressourcer og giver en fleksibel og modulbaseret opbygning, der garanterer brugeren et "åbent" fremtidsorienteret system, der kan tilpasses næsten en hvilken som helst forudsigelig applikation. F.eks. kan adskillige uafhængige centralenheder kobles til n system bus og være fælles om de ydre enheder. 2.3Internt lager RC 8000 Interne Lager er opbygget modulært. Størrelsen kan varie- res mellem 64 Kord og 4 Mord afhængigt af modellen, idet lageret kan udbygges med moduler af halvledertypen eller ferrit-kernetype - eller kombinationer af begge typer. \f Tilgang til lageret sker på 1-ords-basis omfattende 24-bit data og en 3-bit paritetskode (eller en 6-bit fejlkorrigeringskode), der genereres og kontrolleres af en tilhørende lagerstyreenhed. Et enkelt ord kan læses på 0,55 (0,6) usek., til læsning eller skrivning af en ordsekvens bruges 0,9 (0,7) usek. pr. ord sva- rende til 1,1 (1,4) mill. ord pr. sek. - værdier i parantes gæl- der for halvlederlager. 2.4 Magnetpladelager RC 8000 bruger magnetpladelager som baggrundslager. Pladelagermo- duler tilkobles systembussen ved hjælp af en magnetpladelagerka- nal. På denne måde er det muligt at overføre data til og fra bag- grundslageret uden at benytte centralenheden under hele overførs- len. Centralenheden starter blot et kanalprogram; dette udføres så selvstændigt af kanalenheden. &_ Pladelagermoduler fås med en kapacitet på henholdsvis 10, 21, 33, 66, 124 eller 248 Mbytes. En kanal kan betjene 4 pladelagermodu- ler, og ialt 4 kanaler kan tilsluttes systembussen (afhængig af model). Fuldt udbygget giver dette pladelagret en total kapacitet på næsten 4000 Mbytes. \f Overførselsraten til/fra pladelagret er 1,2 Mbytes pr. sek. Den gennemsnitlige tilgangstid varierer med pladelagertypen, men er typisk 30-40 msek. Data kan læses/skrives på en magnetplade per kanal ad gangen; positionerinbg af læse-/skrivehoved og tilsva- rende kan udføres samtidigt på flere magnetplader. 2.5Styreenhed til ydre I/O enheder Alle "langsomme" ydre enheder såsom linieskrivere, kortlæsere og kommunikationsudstyr tilsluttes via en styreenhed for ydre ind-/ udlæse enheder (i det følgende kaldet: I/O styreenhed - I/O for input/output). Den styrer selvstændigt alle tilknyttede ydre en- heder. F.eks. bliver en overførsel af data fra en stabel af hul- kort til baggrundslageret startet af centralenheden, hvorefter I/O styreenhed overtager arbejdet og tilendebringer overførslen via systembussen uden videre medvirken fra centralenheden. &_ Faktisk er I/O styreenheden en RC 3600 Minidatamat, der er for- synet med sit eget programmelsystem, så den kan udføre kodekon- versioner, styre de ydre enheder, foretage terminal-polling og så\f videre. Selvom den er en "rigtig" datamat, kan I/O styreenheden ikke bruges til databehandling af brugerens programmer. Den er specielt forbeholdt varetagelsen af kommunikationen til og fra de ydre enheder. En enkelt I/O styreenhed er i stand til at betjene et omfattende udvalg af ydre enheder. Yderligere kan flere styre- enheder tilsluttes RC 8000 Systemet om nødvendigt (afhængig af model). &_ RC 8000 I/O Styreenheden kan sende og modtage data via systembus- sen med en hastighed af 600 Kbytes pr. sek. En undtagelse fra den generelle struktur er RC 8000/15 (den mindste model), der har sin I/O styreenhed tilkoblet på en måde, der medfører en transmis- sionshastighed på 10 Kbytes pr. sek. T_ I/O styreenheden, der altså er en specielt udstyret RC 3600 Mini- datamat, fås enten med halvleder- eller ferritkernelager. 2.6Basis-Modeller De muligheder, der tilbydes med det maskinelle udstyr, er blevet struktureret i basismodeller. Disse tjener som en bekvem indgang til beslutningstagning, medfører en naturlig rækkedeling af mu- lighederne og bevarer samtidig fleksibiliteten i konfigureringen. Baismodellerne er i sig selv sammenbygninger af moduler og til- godeser som sådan den "åbne" fremtidsorienterede struktur, der blev omtalt i forbindelse med beskrivelsen af systembussen. Ho- vedårsagen til at konfigurere basismodeller skal ses i bestræ- belserne for at sikre systemkonfigurationer, der arbejder som en helhed samt lever op til forventet udeevne. Hvis man nemlig ukri- tisk kræver specifikke aspekter uden iøvrigt at tilpasse og ba- lancere systemhelheden i overensstemmelse hermed, så risikerer man at opnå en dårlig systemudnyttelse. Som konsekvens indeholder hver af basismodellerne en række mulig- heder, der alle tilgodeser systemhelheden. Skillelinierne følger i al væsentlighed forskelligheder i centralenhederne, som igen medfører forskellige størrelsesområder for det interne lager, an- tal magnetpladelagerkanaler og antal I/O styreenheder. Men stadig tillader basismodellernes modulære struktur altså, at der kan tilsluttes en række supplerende moduler, hvorved der åbner sig et bredt spektrum af muligheder. \f Udfra de foregående beskrivelser kan sammenstilles følgende ka- rakteristika for basismodellerne: RC 8000 Model 15 35 35S 45 45S 55 55S CENTRAL RC 8002 8004 8005 8006 ENHED instruks.tid usec.-gens. 6,22,3 1,2 INTERNT halvleder+ 0 + 0 + 0 + LAGERkerne + 0 + 0 + 0 størrelse K ord 64 64 - 512 64 - 4096 MAG.PLADE KANAL antal 11 - 4 I/O antal11 - 8 STYRE- trans.rate ENHED K bytes/sec. 10600 "+" = inkluderet; "0" = option Med det ovenfor beskrevne maskinel er det muligt at udføre for- skellige databehandlingsopgaver, men med maskinel alene ville disse opgaver blive komplicerede og genstand for mange begræns- ninger. Den høje grad af fleksibilitet og formåen, der karakteri- serer RC 8000 Systemerne, er opnået, idet maskinellet suppleres med systemprogrammel. \f F_ 3 RC 8000 SYSTEM-PROGRAMMEL Hovedformålet med RC 8000 System-Programmellet er, at opnå den mest effektive udnyttelse af datamatressourcerne uafhængigt af kørselsformen, samt at lette betjeningen. Med hensyn til effektivitet, er en af de primære faktorer udnyt- telsen af centralenheden. Normalt er centralenhedens opmærksomhed kun påkrævet i en fraktion af den totale udførselstid for et al- mindeligt programjob. Det meste af tiden afventer centralenheden færdiggørelsen af nogle I/O operationer. T_ Dette er helt klart en dårlig udnyttelse af centralenhedens kapa- citet. En løsning på dette problem er, at lade centralenhedens opmærk- somhed skifte mellem et antal job. Medens nogle job afventer fær- digbehandling af en I/O operation, kan centralenheden udføre data- behandling for andre job. T_ &_ For at kunne arbejde på denne måde kræves det, at der på samme tid er flere job tilstede i det interne lager (respektive, at flere job er til rådighed på baggrundslager med henblik på løben- de ind-/udlæsning). Centralenheden vil så kunne opfattes som et antal behandlingsenheder. Brugere, der alle behandler opgaver samtidigt, vil opleve dette, som om de hver især har deres egen behandlingsenhed. Denne virtuelle multibehandling er princippet bag RC Multiprogrammeringssystemet. \f T_3.1 Monitor Monitor udgør det programmelelement, der implementerer RC 8000 Multiprogrammeringssystemet. Systemets basisbegreb er "proces- sen". En proces er her defineret som det område i det interne &_lager, hvor alle behandlingsaktiviteterne, der angår et bestemt job, bliver udført. I multiprogrammeringsystemet er cen- tralenhedens opmærksomhed ligeligt fordelt mellem alle de tilste- deværende (respektive tilrådighedværende) processer og disse bliver derfor kaldt "parallelle processer". I dette miljø styrer operativsystemet Monitor følgende funktioner: - Fordeling af maskintid mellem parallelle processer. - Påbegyndelse, udførelse og afslutning af processer. - Kommunikation mellem processer. - Reservering og påbegyndelse af sekventielle I/O dataoverførs- ler. - Administration af baggrundslagerkataloget. T_ &_ Monitorprogrammet er permanent placeret i det interne lager. Når det er igang med at udføre en funktion, kan det ikke afbrydes af noget andet program. Det kan betragtes som en udvidelse af de maskinelle faciliteter. Ved hjælp af interval-timeren og interruptsystemet tildeler Mo-\f nitor processerne 25,6 msek. behandlingstid efter tur. Hvis i- midlertid en proces afbrydes efter f.eks. 10 msek. for at vente på en ydre enhed, bliver den næste proces i køen startet. Hver proces har en procesbeskrivelse, der indeholder et symbolsk navn, relationer til andre processer, grænser for procesområdet i det interne lager, status og anden information, der er nødvendig for administrationen af datamatressourcerne. Ialt 21 processer kan eksistere samtidigt, og ved hjælp af et beskyttelsessystem er det garanteret, at ingen proces af vanvare opererer udenfor sine grænser. Hvis to parallelle processer ønsker at kommunikere, er Monitor i stand til at formidle kontakten ved hjælp af fem procedurer, kal- det: send meddelelse, afvent svar, afvent meddelelse, send svar og afvent hændelse. Hver proces har en kø hos Monitor, hvor den kan modtage meddelelser fra andre processer. Ved at bruge kommu- nikationsprocedurerne er det muligt at overføre data fra en proces til en anden. Ydre enheder bliver også betragtet som en slags processer, idet maskinellet i forhold til centralenheden repræsenteres af en "driver", d.v.s. et styreprogram, - og disse bliver ligeledes identificeret ved et symbolsk navn. Kommunikationsprocedurerne kan så bruges til at påbegynde sekventielle dataoverførsler mel- lem processer og ydre I/O enheder, eller til at etablere en kon- versation med en terminal. Brugere kan opbevare programmer og data permanent på baggrundsla- geret, der er organiseret som en samling navngivne dataområder. En bestemt del af hvert lager er reserveret til et katalog, der beskriver navnene og placeringerne af dataområderne. Kataloget kan underopdeles i et ubegrænset antal delkataloger, med samme struktur som hovedkataloget, og hver med sin specifike tilgangs- begrænsning. Denne hierarkiske struktur, kombineret med et system til program- beskyttelse, sikrer, at dataområderne er utilgængelige for uved- kommende, men tillader derimod brugerne at nyde godt af fælles programbiblioteker o.s.v. Dataområder bliver tildelt efter en strategi, der tillader, at der foretages udvidelser eller ind- skrænkninger, når det er nødvendigt, og således gør reorganise- ring overflødig.\f T_ 3.2 System-Proces >s> Systemproces >s> er nøglen til RC 8000 Systemets dynamiske aspek- ter med hensyn til operativsystemer. Et operativsystem er et program, der kontrollerer udførelsen af andre programmer, f.eks. et gruppebehandlingssystem, der organi- serer en sekventiel udførsel af programmer, et tidsdelingsystem til samtidig programmering fra en række terminaler eller et real- tidssystem til opdatering af en database. Normalt er et operativ- system lavet til n, og kun n slags funktion. I modsætning hertil har RC 8000 Monitor ikke nogen indbyggede forestillinger om programplanlægning og ressourcetildeling; den tillader et hvilket som helst program at starte andre programmer i en hierarkisk struktur og at udføre disse efter egen strategi. Monitors funktioner, som beskrevet i forrige afsnit, udgør en bred ramme for forskellige planlægningsstrategier. T_ &_ Efter den første indlæsning af systemprogrammellet "ejer" system- proces >s> alle datamatressourcerne. Brugere kan så, fra en til- fældig terminal, reservere et lagerområde for at begynde et pro- gram. >s> vil straks lave procesbeskrivelsen til Monitor og pro- cessen er etableret. En sådan brugerproces vil så løbe parallelt med >s>, der virker som et primitivt operativsystem for de parallelle processer A, B og C, det selv har startet. \f De tre processer A, B og C kan kaldes børneprocesser i forhold til >s>, og de kan igen skabe deres egne børneprocesser D, E, F, G og H. Børneprocesserne kan kun tildeles en delmængde af de res- sourcer, der er reserveret af forældreprocessen. Forældreproces- sen virker som operativsystem for sine børneprocesser; den kan påbegynde, modificere, stoppe og fjerne sine børneprocesser alt efter den ønskede strategi. Proceshierarkiet kan udvides både i dybden og i bredden. I det familietræ der opstår, har "forældrene" uindskrænket råderet over deres "børn". Således bliver begrebet "operativsystem" meget varieret og dynamisk i sammenhæng med RC 8000 Systemer. Operativ- systemer kan skrives i et passende høj-niveau sprog, som ALGOL 7, og implementeres som et hvilket som helst andet program; de kan ligeledes udskiftes dynamisk, hvilket sætter systemet i stand til at skifte mellem forskellige operationsformer, ligesom adskillige operativsystemer kan være aktive på en gang. T_3.3 BOSS Operativsystem Med systemproces >s> kan man generelt indlæse operativsystemer - f.eks BOSS, der er et avanceret operativsystem beregnet for grup- pekørsel. Boss sørger for hurtige og pålidelige sekventielle udførsler af job og tillader brugere samtidigt at redigere og indlæse job fra indtil 50 terminaler ialt. Alle brugere er regi- streret i et brugerkatalog, der også omfatter et bogholderisys- tem, desuden har hver bruger sit eget filkatalog, der sikrer, at brugerens data er utilgængelige for uvedkommende. Jobs kan ind- læses fra terminaler såvel som fra hulstrimmel- og hulkortlæsere. Output til terminalerne og linieskriverne bliver "spoolede" på baggrundslagret, d.v.s. data opsamles i en kø, hvorfra output til de ydre enheder overføres. \f BOSS administrerer også jobkøen på baggrundslageret. Udførelses- rækkefølgen vælges ved hjælp af en prioritetsalgoritme, således at forholdet mellem den forventede kørselstid og ventetiden er den samme for alle job i køen. Op til 20 job kan være under udfø- relse samtidig, men kun de to højest prioriterede job er tilstede i BOSS-området i det interne lager. Resten af jobbene er midler- tidigt suspenderet og "swappet" til baggrundslageret, d.v.s. op- samlet i "swap"-området - tilsvarende output i "spool"-området. Herfra kan de så senere hentes til videre behandling i relation til prioriteringen. Dette dynamiske system sikrer, at små job bliver udført hurtigt, og at store job er garanteret udførelse, men må påregne længere ventetid. Output til terminaler og linie- skrivere samles i segmenter på baggrundslageret og overført som en helhed, når jobbet er færdigt. T_Nedenfor er vist en typisk terminalkonversation mellem en bruger og BOSS med LOGIN-procedure, programgenerering, etc. &_ \f F_ 3.4 MIPS/TS Operativsystem Som en anden mulighed kan vælges operativsystemet MIPS/TS. Et yderst virkningsfuldt operativsystem til konverserende terminal- arbejde i flerbrug on-line systemer. Operativsystemet udfører overflytninger af brugerprogrammer til og fra baggrundslager (swap-området) efter behov, hvilket gør det muligt for forskellige brugerprogrammer at udnytte samme arbejds- område i datamatens interne lager. Som konsekvens øges antallet af programmer, der er tilgængelige for brugerne, uden at øge størrelsen af det interne lager. Strategien for opgaveudførelsen er indeholdt i en prioritetsalgo- ritme, der løbende beregnes for alle brugerprogrammer, systemet administrerer. Programmer, der hyppigt er i brug, og som formår at svare hurtigt, prioriteres forud for programmer, der bruges knap så tit og som har længere behandlingstider. Et enkelt pro- gram med karakter af gruppekørsel-databehandling vil samtidig kunne behandles i de tidsperioder, der ikke udnyttes af den konverserende databehandling. Denne prioritering af opgaverne sikre brugerne den bedst mulige service, samtidig med at data- maten udnyttes optimalt. \f Terminalforbindelser oprettes gruppevis i relation til de pro- grammer, der ønskes benyttet. Forbindelserne til grupperne kan oprettes/slettes dynamisk. Denne struktur sikrer, at programaf- viklingen ikke hæmmes, idet hastighedsforskellen mellem selve databehandlingen og betjeningen af ydre enheder derved kan ud- lignes. Tilsvarende bevirker spool-funktionen, at programmerne hurtigt kan skrive resultaterne fra databehandlingen på baggrundslageret og umiddelbart fortsætte med andre opgaver i henhold til priori- tetsfølgen. De resultater, der således opsamles på baggrundsla- geret, sendes derefter under kontrol af MIPS/TS til modtageren i et tempo, der svarer til den pågældende ydre enheds modtagekapa- citet. På større anlæg kan flere MIPS/TS operativsystemer oprettes pa- rallet om ønsket. Nedenfor er vist en terminalkonversation med MIPS/TS: T_ TERMINAL Input by user H_A_N_D_L_I_N_G_ Output by system K_O_M_M_E_N_T_A_R_ Oprettelse afForbindelse brugerproces etableret Redigering afC_O_M_P_O_S_E_R_T_E_X_T_ AProgrammering programtekstfra interaktiv (konverserende) terminal Output fra ALGOL oversættelse Oversættelse af programOutput fra OBJECT program Afslutning af Fjernelse af program - forbin- &_ brugerproces delse brydes \f 3.5I/O Systemet I/O systemet er en af årsagerne til RC 8000 Systemets høje ydel- se. Strukturen med intelligente styreenheder og databus danner basis for et standardiseret I/O programmeringssystem med en ef- fektiv fordeling af de ydre ressourcer. &_ For en jobproces er en I/O operation et spørgsmål om at sende en I/O anmodning til Monitor med ønske om en ydre enhed og en adresse, hvor data skal læses eller skrives. Monitor administrerer en I/O anmodningskø, og når den ønskede enhed bliver klar, indleder Mo- nitor en dataoverførsel til databussen ved at aktivere et kanal- program. Kanalprogrammerne er permanent indlæst i det interne lager og bliver udført af den I/O styreenhed, der styrer den øn- skede ydre enhed. Når kanalprogrammet først er startet, udfører I/O styreenheden programmet uden yderligere medvirken fra central- enheden. Den fysiske styring af de ydre enheder og de nødvendige kodekonversioner bliver selvstændigt udført af I/O styreenheden. \f Denne struktur, med en central styreenhed og autonome ydre styre- enheder, kan betragtes som et lille net og bliver også implemen- teret som et sådant. I/O styreenhedens programmel inkluderer et Net-Styrings-Program, hvilket betyder, at et RC 8000 System lige fra starten er forberedt for tilslutning til et databehandlings- net, hvor I/O styreenheden vil være et knudepunkt. Terminal-pol- ling, styring af de ydre enheder, dataoverførsler til/fra syste- met og alle I/O styreenhedens øvrige opgaver, bliver udført af et programmelsystem lig selve RC 8000 Systemets - med egen Monitor og egne operativsystemer. Trods denne lighed kan I/O styreenheden dog ikke bruges til behandling af brugerprogrammer, men er forbe- holdt styringen af de ydre enheder. Dette systemprogrammel, der er beskrevet såvidt, skaber det mul- tiprogrammeringsmiljø, i hvilket adskillige brugere kan arbejde uafhængigt. I de følgende kapitler vil vi se nærmere på de pro- grammelsystemer, der er til rådighed for brugere til databehand- ling af opgaver. &_ \f F_ 4 RC 8000 PROGRAMMERINGSSPROG Det er selvfølgelig mest bekvemt at foretage programmeringen til RC 8000 Systemet i et høj-niveau programmeringssprog. En række programmeringssprog, der passer til forskellige formål, er til rådighed for RC 8000 Systemer. De er alle velkendte, men udvidede for bedre at kunne udnytte de muligheder, der er beskrevet i de foregående kapitler. T_4.1 ALGOL Det primære høj-niveau sprog for RC 8000 er ALGOL 7, der er en RC &_udvidelse af det alment anvendelige ALGOL 60 sprog. Den væsentligste udvidelse ligger i implementeringen af et alment input/output system. Brugere kan frit vælge, om de vil anvende standard høj-niveau I/O procedurer, eller om de ønsker at gribe ind i dataadministrationen på det mest basale plan. ALGOL 7 I/O systemet tilbyder et filsystem på baggrundslageret med sekventiel tilgang. Der er inkluderet en dynamisk feltbeskrivelse i sproget som et effektivt værktøj til styring af forskellige individtyper i en enkelt fil. En "context" facilitet gør det muligt at pro- grammere flerbruger on-line terminalsystemer i ALGOL 7.\f Også corutiner underbygges med denne koncept. Andre udvidelser omfatter instruktioner til multibetinget udflet- ning, til operationer på bit-niveau og til effektiv pakning af information. Biblioteksprocedurerne sørger for faciliteter til udførsel af alle Monitors funktioner. Dette, kombineret med I/O systemet, gør det muligt at programmere operativsystemer i ALGOL 7. ALGOL 7 kildeteksten kan indlæses fra terminaler, hulstrimmel, hulkort, magnetbånd eller pladelager. Også kombinationer af enhe- der er mulige. Input fra magnetbånd og pladelager skal være i ISO 7-bit tegnkode med 3 tegn pr. ord. Procedurer kan oversættes se- perat og inkluderes i det fælles programbibliotek. En sådan pro- cedure kan kaldes direkte, og en kopi af procedurekoden bliver kopieret til objekt programmet under oversættelsen. Oversætteren kræver 7 Kord i det interne lager og et baggrunds- lagerområde stort nok til at kunne indeholde objektprogrammet. Der udføres en omfattende syntaks- og indtastningskontrol, og alle fejl kan findes i n oversættelse. Efter en basistid på 2 sek., er oversættelseshastigheden omkring 75 "statements" pr. sek. (statement = sætning i et program). Adskillige programmer kan oversættes samtidigt, idet kopier af oversætteren kan ind- læses i forskellige dele af det interne lager. Objektprogrammet bliver overført til baggrundslageret som en se- kvens af relokerbare segmenter, hver på 256 ord. Programmet om- fatter en automatisk administration af overførsler af segmenter til det interne lager under kørslen. Udførelsestiden for et pro- gram afhænger af størrelsen på det lagerområde, der er til rådig- hed. Programmer af tilfældig størrelse kan udføres i et lagerom- råde på 3500 ord plus plads til variable, dog anbefales et område på 6000 ord plus plads til variable. Testoutput kan genereres un- der programudførelsen. Programmer med fejl udføres, til fejlen nås. T_ 4.2 FORTRAN RC FORTRAN er baseret på ISO anbefaling R 1539 (FORTRAN IV), men er udvidet til at omfatte brug af det basale ALGOL 7 I/O system, og som følge deraf er nogle af de udtryk, der er defineret i ISO anbefalingen, ikke nødvendige. Der eksisterer en "for-oversæt- ter" til at oversætte disse ikke-eksisterende udtryk til RC FOR- TRAN. Andre udvidelser omfatter aritmetik af "blandet type", bag-\f tælling i DO sætninger, bit-mønster operationer, DATA-initialise- ring af almindelige variable hvor som helst og multi-indgange til procedurer. Forudoversatte FORTRAN og ALGOL procedurer kan indsættes under oversættelsen. Kontrol af parametre i procedurekald og af eti- ketter på tildelte GOTO sætninger er standard, hvorimod kontrol af indexgrænser er en valgfri mulighed. Alle FORTRAN oversætterens karakteristika er de samme, som dem der er beskrevet i afsnit 4.1 for ALGOL oversætteren. T_ 4.3 BASIC/COMAL RC BASIC/COMAL er et struktureret undervisningssprog, - det er enkelt, men samtidig omfattende og avanceret, egnet til at demon- &_strere og træne vigtige programmeringsprincipper. Det oprindelige BASIC har adskillige mangler med hensyn til avan- ceret programmering. Nyligt er fremkommet forslag til nye og bed- re undervisningssprog, bl.a. COMAL (C_o_m_mon A_lgorithmic L_anguage). COMAL har alle de egenskaber, der har gjort BASIC populært, fak- tisk indeholder COMAL det oprindelige BASIC, hvortil kommer yder- ligere en række fordelagtige træk. T_Ved at samarbejde COMAL og BASIC til RC BASIC/COMAL er opnået følgende udvidelser i forhold til almen BASIC: IF-THEN-ELSE, REPEAT-UNTIL, WHILE-DO og CASE-OF-WHEN instrukti- oner. 8-tegn variabelnavne. Struktureret programmering uden GOTO linienummer. Interaktiv programudførsel. Gruppeudførsel af programmer. Fil input/output. Matrix operationer. Manipulationer med tekststrenge, incl. dimensionerede strenge. Formattering af output. &_Bordkalkulator funktione. Med disse faciliteter dækker RC BASIC/COMAL hele det uddannelses- mæssige område fra det grundlæggende introduktionsniveau til træ- ning i avanceret produktionsprogrammering. \f T_4.4 SLANG RC SLANG er det symbolske maskinsprog til RC 8000, det har samme blokstruktur som ALGOL. SLANG bruges af RC til kodning af basis- &_programmel og lejlighedsvis til kodning af kritiske procedurer. SLANG programmering giver en marginal forøgelse af behandlings- hastigheden og en mindre reduktion i programstørrelsen på bekost- ning af læsbarhed og programmeringstid. Procedurer, der bryder høj-niveau sprogenes konventioner, kan også kodes i SLANG. SLANG programkildeteksten kan indlæses fra terminaler, baggrundslager, hulstrimmel, hulkort, magnetbånd eller en kombination af disse. Input fra magnetbånd og baggrundslager skal være i ISO 7-bit tegnkode med 3 tegn pr. ord. Uafhængigt af programmeringssproget er et antal opgaver standard- procedurer, der alment vedrører udførslen af databehandling. Dis- se kan være komplicerede og tidskrævende at kode. Derfor findes der en række programpakker, der er til brugerens rådighed som en bekvem løsning af opgaver som: jobstyring, dataadministration, terminalkommunikation etc. Denne slags programmel kaldes opera- tionelt programmel og behandles i det følgende kapitel. \f F_5 RC 8000 OPERATIONELT PROGRAMMEL 5.1 File-Processor Når en proces skal oprettes, indlæser operativsystemet et lille styreprogram, kaldet File-Processor, til jobområdet. Dette pro- gram er i stand til at indlæse og aktivere udførslen af program- mer i henhold til de jobfil specifikationer, brugeren har opstil- let. Disse programmer kan være brugerprogrammer, oversættere, redigerings- eller andre specielle hjælpeprogrammer. Når et program er udført, bliver styringen returneret til File-Processor programmet, som så indlæser det næste program. Når jobfilen er udtømt, bliver styringen returneret til operativsystemet. Ek- semplet fra afsnit 3.3 ses nedenfor, her blot kommenteret med hensyn til programstyring. \f Hjælpeprogrammer til jobstyring, såsom betinget udførsel af job- trin, eller job-operation til kommunikation, er inkluderet i bib- lioteket med hjælpeprogrammer. T_5.2 Hjælpeprogrammer Disse programmer, som generelt kan benyttes i databehandlingen, &_dækker en række opgaver. Ifølge deres funktion kan de opdeles i tre hovedgrupper: katalog-administration, data-administration og jobstyring. Programmer til administration af kataloger bruges til at oprette, ændre eller slette katalogindgange på baggrundslageret, såvel som til at opsøge, sortere eller udskrive tilgange til brugerfilkata- log. Data-administrationsprogrammer dækker følgende opgaver: kopiering af data fra et opbevaringsmedie til et andet, simpel formattering (overskrifter og identifikation) af udskriftsdata og redigering af tekststrenge, f.eks. i programfiler. Jobstyringsprogrammer giver mulighed for: at afslutte job, at gentage et eller flere jobtrin, betinget at udføre et eller flere jobtrin, at kommunikere mellem job og operatør, f.eks. advisering om montering af magnetbånd, samt at styre linieskrivere. Andre hjælpeprogrammer til specialformål kan kodes af brugeren og indføjes i biblioteket. T_5.3 Data-Management-Systemer Administrationen af filer på magnetpladelageret kan implementeres &_på tre niveauer. Det første niveau er ALGOL/FORTRAN standard in- put/output-systemet (se afsnit 4.1). Det andet niveau opnås ved hjælp af en baggrundslager-programpakke, der indeholder et in- deks-sekventielt filsystem. På det tredie niveau udvider databa- se-programpakken faciliteterne fra baggrundslager-programpakken med et forbundet-fil-database-system. For data på magnetbånd indeholder magnetbånd-programpakken et sæt procedurer til administration af etiketterede magnetbåndfiler i ALGOL og FORTRAN programmer. Etiketterne følger ISO standard. \f Baggrundslager-programpakken sørger for et indeks-sekventielt fil- system med direkte tilgang til lagermediet. Ved hjælp af index- tabeller i to niveauer er det muligt at foretage hurtig inspek- tion, opdatering eller sletning af specifikke individer. T_ &_ Hvert enkelt individ er unikt identificeret af en nøgle. Når et bestemt individ skal findes, vil systemet lede efter nøglen i "hoved"-tabellen. Denne opgiver en sektion af filen, et hoved, hvor man kan søge videre. Søgning i dette hoveds bloktabel giver den blok, hvor individet kan findes. Systemet, som kan bruges til individer af variabel længde, såvel som til individer af tilfæl- dig type, omfatter også sorteringsprocedurer. Det forbundne-fil-database-system er baseret på to filtyper - masterfiler og listefiler. Masterfil-individerne indeholder data om helheder, såsom: produkter, produktionsudstyr, ordrer etc. Listefilerne indeholder supplerende data, der vedrører helheder- ne og kan endvidere udtrykke forhold mellem helhederne. &_ \f En situation, hvor tre maskiner bliver brugt til at producere to forskellige produkter, kan således repræsenteres i en database ved to masterfiler og en listefil. &_ Masterfilerne er ordnet indeks-sekventielt. Der er direkte adgang ved hjælp af nøgler eller sekventielt. Et masterfil-individ kan T_være "mor" til en liste. &_ Listefilerne har sekventiel tilgang, og individerne er organise- ret i kæder. Individerne i en listefil vil altid være "døtre" af et individ i en anden fil, som enten kan være en masterfil eller en listefil. Som følge heraf må der altid forud for tilgang til T_ en kæde af listefil-individer være foretaget tilgang til et mo- derindivid i en masterfil eller en listefil. 5.4Forskellige andre programpakker Terminal-programpakken indeholder kommunikationsprocedurer til on-line input/output til terminaler, der kører under ALGOL programmer. \f Matematik/statistik-programpakken dækker en række opgaver, såsom: løsning af differential ligninger, lineære ligninger og matricer, Fourier transformationer, beskrivende statistik og mange andre matematiske standardproblemer. \f F_ 6 RC 8000 APPLIKATIONSPROGRAMMEL Med det operationelle programmel og programmeringssprogene, der er beskrevet i de foregående kapitler, kan brugere selv program- mere og sammensætte applikationsprogrammer. Det vil dog ofte være et belastende og tidskrævende arbejde. RC Applikationsprogrammel tilbydes derfor som systemer, der dæk- ker et vidt område af administrative problemer indenfor handel og industri. På grundlag af mange års erfaring med servicebureau virksomhed har RC udviklet en samling pålidelige og fleksible applikations- programmer. De tre hovedsystemer er: RC Økonomi-Styringssystem RC Lønningssystem RC Produktions- og Lagerstyringssystem Alle tre systemer er opbygget af moduler og kan afstemmes til at imødekomme individuelle ønsker. Opdatering, forespørgsler og min- dre rapporter udføres tidstro fra on-line terminaler, hvorimod større beregnings- eller dokumentationsopgaver udføres i gruppe- kørsler. Systemfunktionerne kan også deles mellem egen installa- tion og et servicebureau. RC System 80 integrerer de tre ovennævnte systemer i et komplet administrativt edb-system. En række af funktionsmodulernekan udvælges, passende til organisationens nuværende behov, uden at\f dette er nogen begrænsning senere. Systemet kan altidudbygges eller ændres efter behov. RC NET er et data-kommunikationssystem, der gør det muligt at bru- ge en RC 8000 som centraldatamat i et større udbredt edb-net. Ved at benytte RC NET kan organisationens system således tilsluttes andre systemer, - og omvendt. I de følgende afsnit beskrives systemernes muligheder mere udfør- ligt. Og stadigvæk: inden for rammerne af hvert system kan struk- turen og indholdet af ind-/uddata tilpasses organisationens nu- værende behov, såvel som fremtidige ændringer i behov. T_6.1 RC Økonomi-Styringssystem RC Økonomi-Styringssystem omfatter moduler til hurtig og sikker behandling af følgende daglige forretningstransaktioner: ordre- registrering, fakturering, debet/kredit-bogholderi, regnskabsbog- &_holderi og lagerstyring. Kun basis-bilag bruges til at opdatere systemet, de manuelle for- beredelser er således skåret ned til blot at anføre kontonumre. Firmaets kontoplan er registeret i regnskabsmodulet; kontoplaner for specifikke grupper, opgørelser og budgetanalyser udskrives periodisk eller efter anmodning. Hvert modul sørger for en række statistikker, oversigter og analyser, hvilket gør RC Økonomi-Sty- ringssystem til et værdifuldt værktøj i finansadministrationen. Debitormodulet kan f.eks. udarbejde kundeanalyser og salgsstati- stikker for forskellige kombinationer af produkter og kundegrup- per. T_6.2 RC Lønningssystem RC Lønningssystem er løsningen på problemer som: lønberegninger, styring af kontrakt- og bonussystemer, opgørelse af indirekte om- kostninger, dokumentation til skattemyndigheder, fraværsstati- &_stik, feriepenge- og årsopgørelser. Systemet omfatter følgende moduler: registrering, beregning, ad- ministration og udskrift. Denne struktur giver mulighed for at køre en række registreringskørsler med associeret styringsoutput forud for den afsluttende beregnings- og administrationskørsel. \f T_ 6.3 RC Produktions- og Lagerstyringssystem RC Produktions- og Lagerstyringssystem er en hurtig og effektiv måde at gribe administrationsproblemer an på. F.eks. planlægning af indkøb, optimering af lager, analyse af produktionsbelastning, &_såvel som beregning og styring af produktionsomkostninger. I et produkt-netværkmodul bliver produkterne og deres sammensæt- ning registreret, d.v.s. alle sammensætninger af råmaterialer og halvfabrikata frem til slutproduktet indgår i en logisk beskri- velse. I et lagermodul bliver alle bevægelserne på lageret regi- streret. Et priskalkulationsmodul sørger for hurtige og præcise beregninger af produkternes profitevne, og sluttelig holder or- dremodulet styr på de forskellige ordrestrømme til og fra virk- somheden. Alle disse moduler er i stand til at lave forskellige lister, oversigter, analyser og statistikker efter anmodning. Strukturen og indholdet af disse output-muligheder kan ændres, når applika- tion kræver det. T_6.4 RC System 80 Hvert af de ovenfor nævnte systemer arbejder med sin egen databa- se, og hvert system giver mulighed for regnskabsbogføring. Dette &_indebærer, at arbejder samme firma med to eller alle tre system- er, vil der oplagres en vis mængde overlappende information i de enkelte databaser. Som følge deraf kræver nogle hændelsesforløb opdatering i mere end n database. RC System 80 integrerer alle tre systemer til et system med en enkelt avanceret database, som alle delsystemerne refererer til. RC System 80 er struktureret som et meget fleksibelt rammeprogram sammensat af basismoduler og funktionsmoduler. Basismodulerne bruges til input, opdatering af fil-register og output, og er fælles for alle delsystemerne. Hvert applikationsdelsystem er bygget af funktionsmoduler, som også kan være fælles for flere delsystemer. F.eks. bliver regnskabsbogholderimodulet benyttet af såvel lønningssystemet som af debitorbogholderisystemet. Databa- sen, som alle delsystemerne refererer til, er uafhængig af appli- kationerne. Derfor er det nemt at udvide systemet med nye delsy- stemer og funktionsmoduler, efterhånden som der opstår behov for dette. Ændringer kan udføres ved hjælp af ALGOL programmerings- sproget.\f T_ 6.5 RC NET Introduktionen af de store centrale datamater gjorde det muligt at udføre edb-opgaver for flere uafhængige brugere samtidigt. Til fjernt placerede brugere blev der udviklet terminal-kommunikati- &_onsfaciliteter. Resultatet af dette, blev en række forskellige kommunikationsprotokoller (overenskomster om måden at udveksle data på), som alle havde det til fælles, at den centrale datamat var alene om at overvåge systemet. Denne hierarkiske struktur har flere ulemper: Den centrale datamat belastes hårdt af de mange kommunikationsme- toder, transmissionslinierne udnyttes dårligt og brugere skal of- te anvende forskellige typer af terminaler til forskellige cen- trale datamater. Måden at løse disse problemer på, og samtidig få indbygget en række fordelagtige faciliteter i det nuværende system, inklusive indbygget sikkerhed med hensyn til fremtidig fleksibilitet, er at bruge RC NET data-netværksystemet. T_ &_ I RC NET sammenhæng bliver en installation med databehandlingska- pacitet benævnt en >central>. Der er koblet et knudepunkt til hver central, og knudepunkterne er indbyrdes forbundet med kommu- nikationslinier, der udgør et netværk. \f RC NET er et system til udveksling af information mellem central- datamaterne. En meddelelse fra en central til en anden bliver op- delt i en række "pakker", som bliver sendt via nettet. En af knu- depunkternes hovedfunktioner er at holde øje med, hvilke central- datamater der er tilkoblet for øjeblikket og deres placering i nettet. Datapakkerne sendes fra knudepunkt til knudepunkt, indtil det knudepunkt nås, hvor den centraldatamat, som skal modtage da- tapakken, er tilkoblet. X 25 level 2 HDLC (Høj-niveau-data-forbindelsesstyring) protokol- len bruges for kommunikationslinierne, der forbinder knudepunkt- erne, men man kan anvende andre protokoller til særlige linier, hvis det er ønskeligt. En central i et RC NET kan f.eks. være et RC 8000 System, et IBM system eller en RC 3600 Terminal Koncentrator. I RC systemer er I/O styreenheden naturligt implementeret som et knudepunkt ved hjælp af net-styre-programmet (NCP). Dette program befinder sig dels i RC 8000>s interne lager og dels i I/O styreenheden. Når et IBM datamatsystem eller et terminalsystem forbindes med RC NET, bruges RC 3600 Minidatamaten som forbindelsesled til nettet.\f F_ 7 NOGLE TYPISKE RC 8000 APPLIKATIONER Indtil videre er der blevet gjort rede for basisstrukturen, og de vidtrækkende muligheder RC 8000 Systemet indeholder. For at vende tilbage til det, det virkelig drejer sig om - at få tingene ud- ført hurtigt og pålideligt - vil dette skrift blive afsluttet med en beskrivelse af nogle typiske brugersystemer af forskellig størrelse, med forskellige formål og kapacitet, - alle baseret på RC 8000 Systemet. Det vil forhåbentlig gøre de måske noget vage beskrivelser i de foregående kapitler mere konkrete. Selvom de er typiske, viser de tre nedenfor nævnte eksempler kun en lille del af RC 8000 Systemets mange applikationsmuligheder *). RC 8000 er f.eks. også blevet brugt med succes til on-line pro- duktionsstyring, tekniske beregninger og som front-end-system for store datamatcentre. 7.1 Et mindre Regnskabs- og Produktionsstyringssystem En mellemstor produktionsvirksomhed ekspanderer hastigt, og som følge deraf står firmaet over for voksende administrative proble- mer. Salget er meget sæsonbetonet, hvilket kræver en omhyggelig salgs- og produktionsplanlægning. Et RC 8000 System overtager gradvist regnskabsstyringen, budget- planlægningen, lønadministrationen samt produktions- og lagersty- ringen. Alle applikationsprogrammer er leveret af RC og baseret på standardsystemerne (beskrevet i kapitel 6). En vigtig del af regnskabssystemet er ordrekontrollen. 150-200 telefonordrer bliver dagligt registreret via terminaler. Leve- ringstidspunktet bestemmes udfra et slutprodukt-lager-system med 4 forskellige lagertyper. Fabrikslageret opererer med en 13 ugers horisont med hensyn til produktionsplaner, reservationer og aktu- elle lagerbeholdninger. Ordrebekræftelser og følgesedler udskri- ves automatisk. Faktureringssystemet registrerer de faktiske le- veringer og udskriver restordrer, hvis det er nødvendigt - og de tilhørende konto- og lagerlister bliver opdateret. De 2300 kun- der er registreret i debitorsystemet. Der bruges et bogholderi- system med åbne posteringer (open-item) for hver debitor. Regn- skabssystemet har en tredimensionel kontoregistrering, der opere- rer med kontonummer, organisationsenhed og projektnummer som pa- rametre. *) Produktudviklingen medfører løbende forbedringer, nogle af pro- dukteksemplerne vil således idag være substitueret med nye produkter.\f Budgetsystemet omfatter rullende budgetter med en horisont på fem kvartaler og langtids årsbudgetter. Budgetterne indgår i regn- skabssystemet og danner basis for salgs-styringssystemet. De ca. 100 ansatte i firmaet er registreret i lønningssystemet. Foruden de almindelige lønningsberegninger tager systemet sig af kontrakt- og bonussystemer, dokumentation til brug for skatte- myndighederne og beregning af indirekte lønningsomkostninger. Det avancerede ordre-registreringssystem giver en yderst effektiv produktionsstyring. Dette opnås ved hjælp af RC Produktions- og Lagerstyringssystem. Alle råmaterialer og halvfabrikata, der sam- les til 300 forskellige slutprodukter, bliver registreret her. Systemet bruges til planlægning af produktindkøb, optimering af lagre, mand-maskin belastningsanalyser for produktionen, samt beregning og styring af produktionsomkostninger. T_ &_ Alle disse funktioner udføres af den ovenfor viste konfiguration. Systemet omfatter en RC 8000 Centralenhed model 25, 64 Kord in- ternt lager, to RC 8223 33 Mbyte Pladelagermoduler og en RC 8301 I/O Styreenhed. Der er forbundet en RC 830 Operatørkonsol, 4 RC\f 822 Dataskærme og en RC 3641 300 lpm Linieskriver til I/O styre- enheden. T_ 7.2Et Servicecentersystem Det næste eksempel viser et RC 8000 System, hvor adskillige bru- gere arbejder uafhængigt af hinanden. Det kunne være et stort selskab med mange afdelinger, eller, som i dette tilfælde, et servicecenter, der sælger edb-service til en række uafhængige &_selskaber. Den service, der her tilbydes, er en del af det økonomiske sty- ringssystem, nemlig on-line debitorfakturering, kreditor-, ordre- og lagerstyring. Input til systemet bliver indlæst fra terminaler hos brugerne. Fakturaer bliver så umiddelbart genereret, og der foretages automatisk opdatering af lager, ligesom kreditgrænse kontrolleres etc. Faktureringer såvel som forespørgsler angående lager, debitorer, ordre-reserveringer og lignende foretages tids- tro i løbet af dagen, hvorimod de daglige fakturajournaler og andre oversigter bliver kørt om aftenen, gruppevis. Størrelsen og kompleksiteten af terminalsystemerne afhænger af kundernes behov. Den mest enkle konfiguration er en enkelt data- skærmterminal, som f.eks. RC 822, hvorfra input indtastes til systemet. Udskrifter samles i servicecentret og sendes pr. post. Det næste trin vil være en RC 822 Dataskærm og en RC 866 Matrix Skriver på et enkelt modem. For at opnå større transmissions ka- pacitet kan de to enheder forbindes til et modem hver. Output kan så modtages til stadighed, uafhængigt af input-aktiviteterne, hvilket selvfølgelig ikke er muligt med dataskærm og skriver på samme linie. En kunde har to dataskærmterminaler og en skriver. En terminal er placeret på ordrekontoret og den anden terminal og skriveren i lagerbygningen. Fakturaer bliver genereret fra begge terminaler og udskrevet på skriveren. Disse simple terminalsystemer er forbundet til servicecentret via modemer; sendehastigheden er normalt 300 bps (bit pr. sek.) for terminalerne og 1200 bps for skriverne. Figuren nedenfor viser de i teksten omtalte terminalfigurationer.\f T_ &_ Nogle kunder har brug for adskillige terminaler og skrivere til at klare deres aktiviteter. En af disse kunder har 2 RC 822 Ter- minaler og en RC 3637 Matrix Skriver forbundet til en RC 800/2 Terminalkoncentrator. En anden kunde har en RC 800/3 Koncentrator med 4 terminaler og en skriver. Begge systemer er tilsluttet ser- vicecentret via 2400 bps linier. En meget stor kunde har brug for 10 terminaler og 4 linieskrive- re. Disse enheder er forbundet til en RC 800/22 Koncentrator, der er tilsluttet servicecentret via en 9600 bps linie. Sidst men ikke mindst, er en RC 3600 Minidatamat indsat som knude- punkt i et RC NET, hvor den bruges som koncentrator for 5 forskel- lige kunder med hver en terminal og en skriver. Alt i alt er der 24 kunder med 41 terminaler og 25 linieskrivere tilsluttet RC 8000 Systemet. Hele systemet omfatter en RC 8000\f Centralenhed model 45, 128 Kord internt lager, en pladelagerka- nalenhed med 4 RC 8224 66 Mbyte Pladelagermoduler og 2 8301 I/O Styreenheder. T_ &_ Der er brugt en I/O Styreenhed til 16 synkrone transmissionslini- er og de ydre enheder i servicecentret. De ydre enheder er: 1 RC 830 Operatørkonsol, 2 RC 3616 Magnetbånds stationer til registre- rings formål og 1 RC 3642 600 lpm Linieskriver, der bruges til udskrivning af kundeformularer. Den anden RC 8301 I/O Styreenhed har 1 RC 830 Operatørkonsol og tager sig af 8 asynkrone og 4 synkrone transmissionslinier. Denne enhed er samtidig knudepunkt i den omtalte RC NET-struktur og gør det dermed muligt for kunderne at udnytte de andre servicesy- stemer, der kører på andre datamater i servicecentret. \f T_7.3 Telefonoplysningssystem Dette sidste eksempel viser, hvordan et RC 8000 System til speci- al formål kan integreres i en større edb-sammenhæng. Ved hjælp af det selvstyrende net - RC NET - kan flere hoveddatamater forbin- des, således at de enkelte opgaver kan løses med et minimum af samspil med andre systemer og med et maximum af sikkerhed. &_ Et telefonselskab, der nu dækker 700.000 abonnenter, indførte i 1967 elektronisk databehandling med købet af 2 RC-GIER Datamater. De udskrev regninger til abonnenter, lønningssedler til de an- satte etc. i gruppekørsel. Omkring 1970 begyndte planlægningen af et udvidet datamatcenter, som kunne tage sig af selskabets hele administrative databehandling, dels on-line, dels ved gruppekør- sel. Der blev bestilt et større system hos en af de større edb- producenter. Man forventede, at systemet også havde kapacitet nok til at klare et oplysningssystem, OP-system. Det administrative on-line system krævede, at der var grupper af dataskærmterminaler og serielt koblede skrivere i hver af de 4 administrative regioner. Disse skulle forbindes til det centrale samlingssted via et højhastighed stjerneformet net, som også skulle kunne klare OP-systemer og andre fremtidige systemer. Nettet og terminalsystemet blev betragtet som hvilende i sig selv, logisk adskilt fra hovedsystemerne. RC NET blev valgt til denne del af systemet. Oplysningssystemet blev udviklet parallelt med det administrative system. I 1974 blev resultaterne fra et forundersøgelsesprojekt vurderet. 12-13% af forespørgslerne blev besvaret forkert, eller slet ikke besvaret, og den gennemsnitlige svartid var på ca. 7 sek. Man indså at en fuldt gennemført implementering af OP-systemet, hvis det overhovedet var muligt, ville kræve hele hoveddatamatens kapacitet. Denne hoveddatamat, som også skulle tage sig af det administrative system, egnede sig simpelthen ikke til et OP-sy- stem. Selskabet reagerede ved at opstille nogle specifikationer for et separat OP-system og opfordrede en lang række leverandører til at afgive tilbud. De bedste testresultater blandt de tilbudsgivende blev opnået af RC, og der blev skrevet kontrakt med RC. I 1977 kørte systemet med to RC 8000 Datamater, som kostede 1/5 af den oprindeligt indkøbte hoveddatamat.\f T_ &_ Et af de traditionelle krav i telefonbranchen er en høj grad af pålidelighed, og skønt RC 8000 er en meget pålidelig datamat, blev der lavet et tvillingesystem for at sikre, at systemet kunne være i drift 99% af tiden. Under normale forhold kører den ene RC 8000 OP-systemet, mens den anden opdaterer databaserne. I til- fælde af svigt i den enhed der kører OP-systemet, vil den enhed, der opdaterer, blive frigjort, og OP-systemet genstartet på den indenfor 5 minutter. Hver RC 8000 har 3 66 Mbyte pladelagermoduler. Det ene modul bruges til programmelsystemer og registreringsformål, det andet modul til en komplet abonnentdatabase og det tredie modul til en række "omvendte" databaser, hvor abonnenterne er arrangeret i overensstemmelse med søgeparametre, som f.eks. navn, erhverv, o.s.v.\f Hoveddatabasen for abonnenter indeholder yderst detaillerede op- lysninger om de 700.000 abonnenter. Den indeholder ikke alene op- lysninger om telefonnummer, men også oplysninger om åbningstider, privatadresse, postadresse, etc. Databasen er derfor velegnet som input til datamatstyret sætning af telefonbøger. RC 8000 OP-Systemet kan søge ud fra en kombination af fornavn, efternavn, stilling og nøjagtig eller omtrentlig adresse for de 700.000 abonnenter. Forskellige måder at stave på bliver der også taget hensyn til, når udvalget af abonnenter, der passer til be- skrivelsen, præsenteres for operatøren på terminalen. Systemet har en arbejdskapacitet på 12.000 forespørgsler i timen; den gen- nemsnitlige responstid er 0,7 sek., kun 2% overstiger 3 sek., og max. responstid er 4,5 sek. De to RC 8000 Systemer har to I/O styreenheder; den ene er forbe- holdt nettet og fungerer som et knudepunkt, der dirigerer data indenfor nettet, såvel som mellem de to RC 8000 Systemer. Den an- den I/O styreenhed bruges til de ydre faciliteter såsom magnet- båndstation, linieskriver, strimmel-/hulkortlæser og konsol. Det samlede system indeholder faktisk en tredie RC 8000 parallelt med de to andre; den tredie enhed bruges til programudvikling, bereg- ninger, etc. Nettet er opbygget med RC 3600 Minidatamater, der fungerer som terminalkoncentratorer, netknudepunkter og hoveddatamat-forbin- delser. På det centrale behandlingssted er knudepunkterne direkte forbundet med I/O kanaler, der har en transmissionsrate på 5 Mbps. De fire fjernt beliggende administrative centre er koblet til det centrale behandlingssted via et stjerneformet net, der består af 5 48 Kbps transmissionslinier, der alle drives af en enkelt RC 3600. Århus er det største beboelsesområde, og derfor bruges der to 48 Kbps linier til dette kontor. Den direkte forbindelse mellem dis- se to RC 3600>er er etableret som ekstra sikkerhed; hvis den ene af de to transmissionslinier er ude af drift, kan al trafik om- dirigeres til den anden linie. Åbenråkontoret tilhører i virke- ligheden et andet selskab, men de to selskaber har i nogen ud- strækning fælles administration. Åbenråkontoret er derfor for- bundet via en 48 Kbps linie til Koldingkontoret, der fungerer som knudepunkt i nettet og dirigerer data til det centrale behand- lingssted.\f F_ Tegning (side 44)\f F_ Tegning (Det Centrale Behandlingssted) De to datamatsystemer, OP- og administrationssystemet, bliver via nettet betjent fra næsten 200 terminaler. "OP" og "Adm" termina- lerne er dataskærmterminaler med specielt udviklet tastatur til disse applikationer. 160 af disse terminaler, leveret af RC, er fordelt på de 5 distriktskontorer og hovedkontoret. 7 OP termina- ler på hovedkontoret bruges midlertidigt til konversion fra det hidtidige manuelle system til de nye edb terminalsystemer. Resten af terminalerne, kaldet "Prog", er almindelige dataskærmtermina- ler, der bruges til andre applikationer under tidsdelingssystemet\f på den administrative systemdatamat og den tredie RC 8000. Disse applikationer omfatter programudvikling og vedligeholdelse, tek- T_niske beregninger, budgetsimulering og lignende. Applikationsrapporter udsendes løbende af Regnecentralen med in- formation om forskellige brugeres applikationer og udstyr. Har De interesse i bestemte emneområder, kan Deres RC-kontaktperson sik- &_kert hjælpe Dem, - spørg venligst. \f F_ TERMINAL H_A_N_D_L_I_N_G_Input fra brugerK_O_M_M_E_N_T_A_R_ "Output" fra systemet Login att - boss BOSS anerkender procedure"type user name and projectLOGIN ved at re- number"turnere tid og btj 308sted. Vi er nu "in: 1977.08.21 15.46"tilsluttet. Sammensætning 10 p = algol ALGOL kilde- af job, redige- 20 begin real a,b; tekst. ring.30 write(out,a b); Hver linie be- 40 end gynder med et 50 p identifika- 60 2 10 tionsnummer. 1000 finis 25 read(in,a,b); En manglende linie bliver indsat efter identifika- tionsnummer. Jobtilmelding go BOSS returnerer "finis btj0 at 15.52"formodet slut- tid. Joboutput "begin" Output fra "algol end 16" ALGOL oversæt- "10.2400'2" ter. "end 16"Output fra Ob- ject-program. Jobslut "end job btj 4 sec log ms BOSS returnerer date 1977.08.21kørselstid og 15.51.00" sluttid. \f \f «eof»