Jump Over Left Menu
The Atlas Supervisor Program
Proceedings of a Symposium held at the London School of Economics, Editor Peter Wegner
Atlas is the name given to a large, comprehensive computing system developed jointly by Manchester University and Ferranti Limited, originating in the team led by Professor T. Kilburn at Manchester University Computing Machine Laboratory. All activities of Atlas are controlled by a program stored in the computer known as the Supervisor Program (Kilburn et a!., 1961a); the computing system is fully time-shared in that the functioning of the peripheral equipments overlaps that of the central computing unit, the central computer sharing its time between object programs and the control of peripheral equipments. Logically, the only program in control of Atlas is the Supervisor program, and all activities of the system constitute branches of this program. Since, however, the central computer is only used by the Supervisor for a small proportion of the available time, a more realistic picture is obtained by regarding the Supervisor as a dormant program which is called into action whenever any part of the computing system cannot proceed further with its built-in operations and requires attention. For example, if a paper tape reader is constructed to read one character to a buffer register, the Supervisor will be called in to transfer this register to store. It is convenient in this context to consider an object program as a branch of the computing system which uses the central computer for long spells and which calls the Supervisor into action whenever it requests an action, such as a tape or peripheral transfer, which is subject to control by the Supervisor.
Although the Supervisor program constitutes a piece of software, the detailed objectives and methods of implementation are intimately related to the hardware of the computing system, and it is thus advantageous to outline those features of the hardware which determine the nature of the Supervisor program. The system comprises a single central computing unit, which includes one double-length floating point accumulator and 128 index registers, or B registers. Instructions are of the one-address type, specifying two index registers; accumulator functions use an operand modified by both index registers, whilst most functions operating on index registers use a singly modified operand and also specify the index register to be operated upon. Special use is made of eight of the B registers, B120 to B127. For example, one of these (B124) holds the exponent of the accumulator, and three (B125 to B127) are used as three control counters, Main, Extracode, and Interrupt control. Although at any one time only one of these can be in effective control, the presence of three distinct counters allows three distinct types of use of the central computer to proceed in series without the need for preserving and restoring control counters. Main control is used by object programs; interrupt control is used by parts of the system demanding immediate attention, such as peripheral equipments whose buffers must be filled or emptied by the computer before being used again by the equipments; extracode control is used both by subroutines initiated by an object program and by the Supervisor program.
The computing system includes several types of storage. Immediate access storage comprises the core store for general use, the fixed store (which is a fast access read-only store holding subroutines and many routines of the Supervisor) and a separate core store known as the subsidiary or working store which is used as working space by the Supervisor. Backing store is provided by magnetic drums, and magnetic tape units, and a large quantity and variety of input and output peripherals can be attached. In order to control these equipments and to supply small buffer stores for peripheral transfers a collection of flip-flops is provided which is collectively known as the V store. Although the V store is not a store in the conventional sense, it is addressed as a store by the central computer, and hence no special basic instructions need be provided for peripheral, tape or drum control. The main core store is divided into blocks or pages of 512 forty-eight bit words, and with each of these pages there is associated a page address register, holding the most significant address digits of the block of information occupying the page at any time. An additional digit in each page address register is known as the lockout digit, which provides a means of protecting any pages in the core store.
Basic protection of store is supplied by hardware, and the rules of protection depend upon the control register in use. Under main control, access to the subsidiary store, to the V store, and to pages of core store for which the lockout digit is set is forbidden and an attempt at any such access causes interruption of the object program. Access to the fixed store is allowed but is harmless since information stared there cannot be overwritten, Under interrupt control, access is permitted to all stores, including page of core store for which the lockout digit is set. Hardware protection thus allows mutual protection of object programs and routines of the Supervisor using interrupt control, since separate control registers are used and interrupt routines can use store which is locked out from object programs. Under extracode control, the subsidiary store and V store are accessible; access to locked out pages of core-store can be obtained by setting a flip-flop which is itself addressable as a digit of the V store. By this means, extracode control can be used both in subroutines for the object program, known as Extracode Functions, and in the Supervisor program.
The mechanism by which the Supervisor program is called into action depends upon the type of activity requiring attention. The most frequent activation is by peripheral equipments which require the Supervisor to empty or fill the buffer attached to the equipment; when they require attention, these equipments set a digit in the V store known as a look at me digit. A separate digit is set for each cause of interruption, and if any one is set, control switches to Interrupt Control, and a program in the fixed store is entered te determine the cause of interruption. Further interruptions are inhibited whilst interrupt control is in use, but the look at me digits remain set, and will cause another interruption as soon as the first sequence under interrupt control is completed. Special hardware attached to one of the B registers, B123, enables the highest priority cause of interruption to be distinguished by obeying two to five instructions; the priority is conditioned by the critical time of the various equipments, i.e. the time within which the buffer must be emptied or filled or the control digits set. The short interrupt routines run under interrupt control are protected from object programs by hardware protection of store, and since they use only certain B registers (B111-118), which are not used by object programs, no additional programmed protection is required on entry to an interrupt routine.
Since interruptions can occur at random times, many interruptions can be called for simultaneously. The relevant interrupt routines are obeyed in sequence, and an upper limit is placed on the time taken by any one interrupt routine which ensures that attention is given to each equipment within its critical time. When an interrupt routine calls for a longer sequence of instructions to be obeyed (such as when a paper tape reader interrupt routine requires to transfer a block of main store between core and drum stores), the routine switches to extracode control to enter a long interrupt routine, or a Supervisor Extracode Routine. Supervisor extracode routines (S.E.R.s) form the principal branches of the Supervisor program. Short interruptions are permitted whilst an S.E.R. is in progress and thus no time limit is observed by each S.E.R., although by their nature, most use the central computer for only a small proportion of the total time. Since interruptions can occur at random intervals, the interrupt routines can call for S.E.R.s at random intervals. If whilst the central computer is in use by one S.E.R., others are activated, they are placed in queues to await entry when the current S.E.R. is completed or halts itself; an S.E.R. is interrupted only by short interrupt routines, using interrupt control, and is never interrupted by another S.E.R. Object programs call the supervisor into action either by causing an interruption and initiating a short interrupt routine, or by initiating an S.E.R. Interruptions occur whenever certain errors are detected, such as an attempt to refer to the working store or V store, an attempt to obey an undefined instruction code, an overflow of the accumulator exponent or an attempt to divide the accumulator by zero. These interruptions cause entry to a short interrupt routine and thence to an S.E.R. to cause the program to be monitored. An object program may also initiate an S.E.R. directly in order to organize an operation which is under control of the supervisor; for example, since access to the V store by an object program is not permitted, all peripheral, tape, and drum transfers must be organized by calling the Supervisor into action (drum transfers are subject to special organization, described later, and in fact can be initiated by means of an interruption as well as by direct entrance to an S.E.R.). An object program enters the supervisor via one of a possible maximum of 512 instructions known as Extracode Instructions, which have the effect of switching control to extracode control and entering the fixed store programs at one of 512 possible points. This is the only means by which an object program can use extracode control, and the finite number of entry points to the supervisor enable complete protection to be enforced by the Supervisor program. All references to peripheral equipment, and to blocks of main store, by an object program use logical numbers within the program to define the equipment or block, and these are related by the Supervisor program to the actual equipment or store block. In this way, complete protection of the Supervisor and object programs is achieved, and by use of logical numbers to define features of the computer, an object program may be written in a form largely independent of the environment in which the program runs.
The Supervisor is also activated by means of interruptions in the event of certain computer failures such as parity errors in core or drum store. It is also entered at intervals of 0.1 sec by a clock interruption; although in many ways the clock resembles a peripheral equipment in that it causes a regular interruption, it also fulfills a special function in that it can always prevent the Supervisor being rendered inoperable. The S.E.R. entered from the clock interrupt routine enables the Supervisor to investigate whether any part of the computing system has ceased to function as expected, and to take appropriate action.
As has been already explained, S.E.R.s are arranged to be run in series and no S.E.R. is interrupted by another one. The routine organizing this is itself an S.E.R. known as the co-ordinator, which is stored in fixed store; it is the program equivalent of the hardware facility whereby interrupts are inhibited and requests queued whilst a routine is being obeyed under interrupt control. Extracode routines awaiting entry are held in four queues in the working store, and whenever one routine is completed or halts itself, the first routine in the highest priority queue is entered. The number of entries in each queue is limited to the number of possible causes of interruptions, namely, one or two per peripheral equipment together with one for each object program being obeyed; logically the Supervisor constitutes a program of many branches, the number of branches being the number of activities of the computing system which are being controlled at any one time. Each branch may consist of a sequence of S.E.R.s each of which use the central computer for only a small proportion of the total time. For the remainder of the time, the S.E.R.s may either be dormant, awaiting activation by an interrupt routine, or may be halted, awaiting completion of a transfer between core and drum stores, for example. In this latter case, when an S.E.R. is halted awaiting completion of another S.E.R., the routine is recorded in the queues in the working store, and some of its working registers are preserved for subsequent resumption. Since S.E.R.s are only halted by virtue of their own request for information, halts can be foreseen, and it is not necessary to preserve the entire working registers of an S.E.R. This is in contrast to object programs, which can be halted at any time to permit a higher priority program to be obeyed, and whose working registers are therefore preserved in toto. Since S.E.R.s are not entered as frequently as are short interrupt routines, program protection of certain working registers, such as Extracode control, which are also used by object programs, is permissible without serious loss in efficiency. However, to reduce the switchover time as far as possible, Supervisor routines generally use only certain B registers (B100-110), which are not available to object programs; if further working registers are required, such as the accumulator, the routines themselves arrange to preserve and restore the original contents. By such means, the time to switch the central computer from an object program to an S.E.R. and back again is generally around 40 instructions.
The Supervisor program is designed to maintain the fullest possible activity in all the branches of the computing system which are required to be in action, or in other words to minimize periods during which a branch is idle through awaiting information from another branch. It is the function of the Operating System to arrange the overall organization to achieve this end; before describing this system, however, it is advantageous to consider in more detail how the Supervisor controls transfers between the core store and drums, magnetic tapes, and peripheral equipment. The organization of these transfers can materially influence the choice of operating system, although it in no way forces the acceptance of one particular system; the routines concerned with this organization are stored in the fixed store, since they are activated frequently, but are used within the context of the operating system which occupies main store, and which can thus be modified in the light of experience, or to suit particular demands.
The drum store is divided, like core store, into blocks of 512 words, known as sectors, and transfers between drum and core store always take place in these units, between a sector of- the drum and a page of the core store. The addresses used in instructions refer to blocks of information in the combined core and drum store and one of the activities of the Supervisor is to arrange that blocks are transferred to the core store when required for use. Associated with each page of core store is the page address register, which holds the most significant address digits, or the block label, of the block occupying the page. When access to the main core store is required, the hardware scans the page address registers and if equivalence is found, the required word in that page is selected. Should no equivalence be found between the requested block label and any of the page address registers, an interruption occurs, and the Supervisor is entered through an interrupt routine. The Supervisor maintains in the working store a list of all blocks in use associated with each program, together with the page or sector currently occupied by the block, and hence should a block be occupying a sector of the drum when reference is made to it in an instruction, it can be transferred to a page of the core store. The page address registers are themselves addressable as digits in the V store, and hence can be set by the Supervisor to hold the correct block label. When the required block has been read into core store, the instruction which caused the interruption is repeated; equivalence is now found between the required block address and a page address register, and the program is free to proceed. In order to read a block from the drum to core store, it is first necessary to create a space in the core store to accommodate the block (unless an empty page exists already). In fact, in order to establish the block in core store with as little delay as possible, the Supervisor always maintains an empty page in the core store, to which a block can be read immediately; during the transfer from the drum, a new page is selected to be made empty, and the block occupying this page is then written to an empty sector on the drum. The routine responsible for selecting a suitable page to write to the drum is known as the learning program; it analyses past use of the blocks in core store to determine the page holding the block least likely to be required in core store, and which is therefore the most suitable page to be made empty. Each time a transfer is made to or from core store, the block directory in the working store is altered to record the new position of the block of store. This system of using the combined core and drum store gives rise to the one level store concept, whereby the two level nature of the store is concealed from the user; the system is used by all programs using the main core store, including object programs and the Supervisor program itself. Many of the routines of the Supervisor which are not frequently used are stored in the core and drum store; they will normally occupy sectors on the drum, but are brought into core store when needed, with no disruption to any object programs using core store at the time (apart, of course, from a possible increase in the number of drum transfers required, since temporarily the amount of core store available to the object programs is reduced). The ease with which individual blocks may be moved in the combined core and drum store is of incalculable worth in the functioning and implementation of an efficient operating system.
In addition to the automatic drum transfers carried out by the Supervisor, it is possible for an object program to use the drum store in a conventional way by use of extracode functions, causing information to be transferred in blocks between drum and core store and for blocks to be copied from the drum to the core store and the copies subsequently lost after use. These instructions are implemented throughout by using the one-level store concept; the Supervisor program at all times maintains control of the pages of core store and may at any time transfer blocks to the drum should space be required for other purposes. However, in order to avoid halting an object program or S.E.R.s which can usefully organize transfers in advance, a queue of requests for drum transfers is held in the working store so that drum transfers can proceed at maximum efficiency whilst object programs can continue until being halted when immediate access is requested to a block not available in core store.
Transfers between core store and magnetic tapes are arranged in a similar manner, except that no attempt is made to include magnetic tapes in the one level store. Information is recorded on the tapes in blocks of 512 words; the blocks are numbered sequentially on tape, and tapes are tested and preaddressed on the computer before use. Extracode instructions are provided to enable object programs to position the tapes and to transfer blocks to and from tapes; certain extracodes also enable object programs to transfer information in units other than 512-word blocks, the Supervisor using blocks of core and drum store as buffer areas. Programs are not halted when a tape transfer instruction is given; the orders are stored in a queue in the working store, and only if direct reference is made to a block still involved in a tape transfer is a program halted. A single queue accommodates tape instructions for all eight channels which may be transferring simultaneously, and for all decks connected to these channels.
Both drums and tapes transfer words directly into the core store, and only call the Supervisor program into action when a complete block has been transferred. Other peripheral equipments, however, have a sufficiently low transfer rate to activate the Supervisor to transfer characters or groups of characters between their buffer registers and the core store. In contrast with drums and magnetic tapes, there are no naturally defined units, such as blocks, in which transfers can be made, and the overall unit of transfer is a property defined by the operating system. Whatever the operating system, however, information relating to different peripheral equipments must be separated in store and on magnetic tapes, and the natural unit of storage for this purpose is one 512-word block. However, core storage must be available to hold information currently involved in transfers and the lock down of one complete block of core store for each peripheral equipment would result in gross inefficiency in the use of core store when several peripheral equipments are functioning simultaneously. The Supervisor program in the fixed store is therefore designed to read from all the input peripherals to a single block in core store, and to supply all the output peripherals from another single block. When the 'part page' allocated to any equipment is filled or emptied by the short interrupt routine controlling that equipment, an S.E.R. is entered to replenish the part page from a block of store held on the drum. In this way, many input and output equipments can function simultaneously, their information being held in separate blocks on the drum, and only two blocks need be maintained permanently in the core store.
The aim of the Operating System is to so organize the, transfer of information between the various branches of the computing system that periods of idleness in any branch whilst it awaits completion of activities, of another branch are reduced to, a minimum, The operating system on Atlas comprises, a series of Supervisor Extracode Routines in the main and fixed store, operating within the framework of the coordinator routine and using the fixed store routines, to control drums, tapes and peripheral equipments; the system effectively controls the passage of jobs through the computer, organizes peripheral transfers accordingly, and communicates with the human operator when operator decisions or actions are required. The central problem confronting the operating system is that of achieving an efficient balance between parts of the system which handle information at widely differing rates, The central computer can accept or produce information at peak rates in excess of 106 characters per second; magnetic tapes can transfer at rates of around 105 characters per second; other peripheral equipments achieve rates of 108 characters per second or less; the actions of human operators are, by comparison, very slow indeed, It should be observed that if the jobs available are all such that the central computer demands or supplies information at a rate faster than it can be accommodated by the peripheral equipments, then the central computer will remain idle awaiting peripheral transfers, no matter how efficiently the Supervisor arranges the overlap of computing with transfers, The function of the Supervisor is to achieve the maximum overlap possible consistent with the demands of the available jobs.
The most common jobs involve use of the central computer and the input and output peripheral equipments. There are three principal ways by which activity of the central computer and the peripheral equipments could be maintained. The first is by off-line working, in which information is supplied to and accepted from the central computer by magnetic tapes; information is transferred between tapes and peripherals as an essentially separate activity. The maximum transfer rate of information to and from the central computer is increased by this use of tapes, but is still not sufficient to meet the peak demands of the central computer. In addition, the maximum transfer rate is only achieved if information is recorded on tape in the order in which it is required by the central computer, in order to avoid loss of time in scanning the tape; efficient ordering on a magnetic tape poses a severe problem, especially if it is desired to increase effective peripheral speeds by operating several equipments in parallel. For this reason, the off-line system of operation is not standard on Atlas, although, as will be seen later, it can be accommodated by the operating system as a means of supplementing transfers through the peripherals.
The second method of operation is to reduce the peak demands of the central computer by frequent switching of control between several object programs. Assuming that the average rate of transfer through the peripherals is sufficient to meet the average demand of the central computer, then switching of control amongst the correct mix of programs should smooth out the peak transfer rates. It is, however, unlikely that the ideal mix of programs will be met; and even if a correct balance could be obtained by skilled operating methods and sophisticated computer scheduling, the operative parts of all such programs must occupy immediate access core store, in order that control should be switched frequently without incurring extra drum transfers. Inefficient use of core store is an immediate consequence of this method of operation, which was the method envisaged in early papers on 'time-sharing', and for this reason it has been rejected as a standard operating system. It is worthy of note that switching of controls between object programs inevitably implies greater use of the central computer than does switching between an object program and the Supervisor program, since object programs use common working registers, which must be preserved and restored when controls are switched. Since it is not proposed to rely upon frequent switching of controls to implement the operating system, no serious attempt has been made to reduce the object program change time by, for example, allowing only restricted use of the working registers by each program.
If the peak demand of the central computer is not to be reduced by switching of control between several object programs, the demand can only be by passing information between the central computer and the main store rather than directly between the central computer and peripheral equipment or magnetic tapes. This can be achieved by using parts of the core and drum store as buffers which can be emptied and filled by the central computer at computer speeds and by the peripheral equipments at peripheral speeds. These wells in core and drum store should be of sufficient size to smooth out the varying demands of the central computer, and the transfer rate of the peripherals which will vary due to operator intervention to reload the devices. For the sake of the present discussion, it is sufficient to assume that effectively infinite wells can be provided in main store for both input and output; a more detailed consideration of the size of these wells and their extension onto magnetic tapes will be presented later.
If it is assumed that the input and output wells are of sufficient size to accommodate the entire input and output material of a job, then during execution of the job, the central computer will not be held up. Therefore, even though the use made by one job of input and output equipment may exceed the use made of the central computer, the job will still be computer limited whilst it is using the central computer. If all jobs are of this nature, of of course, on balance, the provision of input and output wells of a sufficient size enables the jobs to be run in series, and whilst one job uses the central computer, information relating to other jobs is occupying the input and output equipment. Since peripheral equipments typically take several seconds to fill or empty one 512-word block of store, it is obvious that a reasonable size of well is sufficient to act as a buffer for peripheral equipments. The same obviously does not apply to magnetic tapes, which can transfer sixteen blocks per second on each channel. Therefore direct use of tapes by object programs is permitted and in order to maintain activity in the central computer when one job is held up awaiting tape transfers, control is switched between this job and one which is computer limited.
It would thus appear that jobs could be passed through the computer in two streams, comprising tape limited jobs and others, and within each stream the jobs could be processed in series. Input and output information can be held in the drum store thus allowing all but a small section of the core store to be available for the execution of one job from each of the two streams. This method of operation requires some modification, however, in order to accommodate long jobs using the central computer for a long period. The presence of such a job would prevent information relating to short jobs being extracted from the input well or passed to the output well, resulting in a cessation of peripheral activity through lack of space in the input well and lack of material in the output well. In addition to impairing the efficiency of the computing system, such a situation would be intolerable for the user, as it would prevent a rapid 'turn over' of short jobs. There is need therefore for a third 'stream' of jobs, namely jobs using the central computer for a long period; these jobs are not expected to share time in the conventional sense with short jobs (which are effectively computer limited) but can be interrupted to execute a sequence of short jobs in order to maintain satisfactory levels of input and output wells.
In order that the scheduling routines which comprise part of the Supervisor program should be able to assign jobs to one of these three categories, it is necessary that some information should be supplied to the computer with each job to define the job and indicate the expected behaviour. This information is supplied as input material to the computer as part of each job, and the precise form of this Job Description has been published elsewhere (Howarth et al., 1961). It includes the titles of all separate input documents required to run a job; a job may comprise several separate input documents which may be supplied to the input well through any of the peripheral devices in any order, and since each document is required to bear a title, the Supervisor is able to assemble complete jobs in the input well prior to execution. The Job Description also lists all output documents to be created, relating the logical numbers used to refer to these documents in the program to the type of equipment for which the output is intended. Similarly, the logical numbers used to refer to magnetic tapes are related in the Job Description to the titles of the tapes, which are recorded in the first block of each tape. The Supervisor program is therefore able to relate logical numbers of peripheral documents and tape reels to particular mechanisms, thus implementing indirect addressing of peripherals which is an essential feature of a time-sharing computer controlled by supervisory programs. Lastly the Job Description includes estimates of the combined core and drum store requirements, computing time, time including magnetic tape transfers, and quantity of output which are used by the Supervisor program both to assign the job to its appropriate stream and to protect the program from the effect of errors such as failure to emerge from an iterative computing loop.
The availability of the job description reduces the need for human intervention in the computing system to a minimum. Furthermore, the presence of the input and output wells enables the effect of reloading the peripheral equipment to be smoothed out, so that to a large measure the actions of human operators are overlapped with the functioning of the remainder of the computing system. Operator handling of magnetic tapes cannot be entirely overlapped in this manner, but the effect of delays is reduced by the Supervisor program instructing the operator to mount tapes which are listed ins Job Description before execution of the job is begun, as soon as tape mechanisms become available. Should a job require additional tapes to be mounted| during its course of execution (such as a job processing a file of tape reels), the job may be held up whilst the required tape is mounted, and may bs dumped onto magnetic tape if main store space is required for other programs. The operating system can handle such a situation, but has been designed to reduce such interruptions to a minimum; the space occupied by a program during the execution will generally exceed the space occupied by the input material, and hence there is strong incentive to retain a job in the input well rather than to begin execution and then halt the program for an extensive period.
In the foregoing discussion, it has been assumed that main store can be set aside to provide input and output wells of a sufficient size to smooth out the peak demands of the central computer. The amount of store required for this purpose will vary continually according to the available jobs, and indirect addressing of the one-level store, implemented in core store by the page address registers, enable the supervisor to vary the allocation of main store continuously. Reallocation of store implies only a relabelling of blocks in the block directory rather than modifying or copying the material stored in the blocks. In spite of the ease with which store allocation can be altered, however, a finite limit is obviously set on the input and output wells by the size of core and drum store and the store required for execution of problems. The well in core and drum store are therefore supplemented by use of system magnetic tapes, the organization of which has been described elsewhere (Kilburn et al., 1961b). One tape is used to expand the input well and another to expand the output well, whilst a third, the system dump tape, acts as a general overflow for problems which are halted during execution or for material which cannot be accommodated on the system input and output tapes. The system input and output tapes are used in a systematic manner to record all input and output material and to read this material back into the main store should the space available in main store be insufficient to accommodate the entire input and output material. A single tape can be used for both reading and writing. The average supply of information to and from the wells is governed by the transfer rate of the peripheral equipments, and since the transfer rate of a magnetic tape is typically a factor of one hundred faster, time is available to search over a region of magnetic tape without impeding the transfer of information through the peripherals. There is thus a scannable area on each system tape which progresses along the tape as information is recorded on the tape, and which can be used to expand the input and output wells without excessive use of core and drum store. Typically, an input well of around eight blocks of main store will permit a scannable area of over one hundred blocks on the system input tape, and similar figures apply to the output well in main store and on the output tape. The scannable areas of the system input and output tapes are used effectively as extensions of the random-access main store; the fact that the storage is not in fact of random access is taken into account by the assembly routines of the supervisor which order transfers to and from the tapes in advance to nullify the effect of search time. If material is held up so long in the wells that it is outside the scannable region on the system tapes, either this region is increased by increasing the size of the wells in core and drum store or the excess information is recorded on the system dump magnetic tape until it can be passed through the wells.
The method of use of the system input and output tapes permits of extreme flexibility in the operating system. Information can be recovered subsequently from the system tapes, for a permanent record is retained of all input and output information. Thus, for example, repeated input of long documents through the peripherals can be avoided by recovery of the documents from magnetic tape. If desired, off-line operation can be simulated by copying all information to a magnetic tape, and subsequently reading this information from tape to the central computer or to the output equipments. Alternatively, the operating system is of sufficient flexibility to permit use of the system magnetic tapes to be dispensed with should the tape mechanisms be required for use by a problem during its execution; the system will function as described in the absence of system tapes, although, of course, efficiency may be reduced by the reduction in the effective size of the input and output wells.
The flexibility of the Supervisor program is extended by permitting requests from the human operator to change the normal course of events. As an example of such a request, the operator can afford priority to any job, ensuring the rapid passage of this job through the system even if this results in a temporary loss of efficiency. Provision is also made for control by the operator of the use made of peripheral equipments and magnetic tapes, and in particular remote operating stations can be established such that jobs input through one device are output on one particular output device. The final limit of flexibility is provided by permitting, through an operator request, modification to the Supervisor program in main store. Those parts of the program called into action most frequently are held in the fixed store, but these fulfill a passive role and are controlled by routines in the main core and drum store. Changes in these routines and their associated parameters can hence alter the entire method of operation of the computing system. As an example of this flexibility, it has been possible to produce an Intermediate Supervisor for use during commissioning of the system which can occupy core store rather than fixed store and which can be used when only a minimum of core store is available. This Intermediate Supervisor comprises routines of the complete Supervisor program with the addition of only two or three hundred extra instructions. The structure of the Supervisor program thus permits of simple modification to deal with this special situation, and is obviously capable of similar modifications in the future in the light of operating experience or to meet the needs of any particular situation.
1. D. J. HOWARTH, R. B. PAYNE and F. H. SUMNER (1961). The Manchester University Atlas Operating System, Part II: User's Description. Computer J. 4, 226.
2. T. KILBURN, R. B. PAYNE and D. J. HOWARTH (1961a). The Atlas Supervisor. Proc. F.J.C.C.
3. T. KILBURN, D. J. HOWARTH, R. B. PAYNE and F. H. SUMNER (1961b). The Manchester University Atlas Operating System Part I: Internal Organisation, Computer J. 4, 222.