previous | contents | next


The concept of "look-ahead" scheduling was required, and a more complex queuing mechanism was implemented. As the Monitor selected the next job to be run, it would "look ahead" to determine future queues and invoke the swapping module if required to move a runnable job into core. Because of the higher swapping overhead, it was essential to run large jobs longer and less often. A "fairness" consideration also assured that each job, whatever its size, received enough run time to maintain responsiveness.

Recent enhancements permitted a Systems Manager to set scheduling parameters including established priorities of job classes. A "pie-slice" scheduler is used where classes of users are guaranteed fixed parts of the machine time and resources.

User Files and I/O Device Independence.

In the initial PDP-6 design, resources such as magnetic tapes, unit record devices (e.g., card readers, line printer, paper tape reader/punch) and DECtapes (which were file structured) were requested by each user as they were required. The Monitor allocated the device to a requesting given job until released.

I/O calls were evoked by the UUO call instructions. A particular device program call could specify the number of I/O buffers to be provided so that arbitrary amounts of overlapped I/O and computing could be realized.

In order to realize the goal of modularity, each I/O device handler was implemented as a separate module. These modules used a common set of subroutines. The device tables were made as identical as possible to help achieve the device independent goal. Thus, a user specified an I/O channel, not a specific I/O device. The channel-to-name assignment could take place at various times from log-on to program run time.

In the original Monitor, a user was allowed to assign file devices to his job and read and write named files with the devices. Permanents on-line user files with automatic backup were not implemented until the KA10-generation Monitors. The concept of project/programmer number was adopted (after MIT's CTSS) in order to provide increased file security and sharing. A user was required to enter a project/programmer number with his associated password. This not only established a job. but identified the user to the Monitor. In addition to having resource privileges associated with better ID numbers, the user received a logical disk area for files. File access can be allowed (by the creator of the file) to any of the following levels with decreasing protection (increasing privileges): no access, execute only, plus read, plus append, plus update, plus write, plus rename, and plus alter protection.

Significant evolution occurred in the user file facility. Improved file structure reliability and error recovery (such as writing pointer blocks twice) were achieved. With moving head disk availability, disk head movement optimization for file transfers on single or multiple drives was added. The concept of "mountable" structures was implemented to allow disk packs to be mounted and dismounted during a timesharing operation as well as allowing a user to have a "private" pack mounted. As the number of users supported on the system and the diversity of their applications grew to include "business data processing," both hardware and software allowed expansion of the number and capacity of on-line disks.

Command Control Program. This program processes all commands addressed to the system from user terminals. Thus, terminals served to communicate Monitor commands to the system and to the user programs, and served as an I/O device for user programs. Terminal handling routines were an integral part of the PDP-6 Monitor. The original commands were designed to minimize the amount of state in the Monitor. As a result, users had to type several commands to control programs. A much more powerful command language evolved.

previous | contents | next