【Mitsubishi Electric】 Operating System for the MELCOM-7000 Series

  For Mitsubishi Electric's MELCOM-7000 series general-purpose computers announced in 1970, the operating systems RBM (Real-Time Batch Monitor), BPM (Batch Processing Monitor), BTM (Batch Time-sharing Monitor) and UTM (Universal Time-sharing Monitor) were provided according to the levels of simultaneous performance of batch processing, remote processing, online real-time processing and time-sharing processing.

 RBM was capable of simultaneously performing multiple real-time processing tasks. It could also perform local batch processing concurrently with the real-time processing. The minimum configuration of the main memory was 64 KB (16K words).
 BPM had a high-level management function for efficiently performing batch processing, and was capable of simultaneously performing remote batch processing submitted from a remote location and multiple real-time processing tasks. The minimum configuration of the main memory was 128 KB (32K words).
 BTM was capable of simultaneously performing time-sharing processing in which up to 38 people could use the system at the same time, in addition to the batch processing and the remote batch processing of BPM. The time-sharing user could request batch processing interactively from a terminal. The minimum configuration of the main memory was 192 KB (48K words).
 UTM was an operating system for a large-scale system capable of simultaneously performing batch processing, remote batch processing, real-time processing and time-sharing processing in which up to 128 people could use the system. The minimum configuration of the main memory was 256 KB (64K words).

 Each operating system consisted of functions for job management, task management, file management and resource management. These functions had the following characteristics:

(1) Job management
This function achieved multi-job execution in which multiple jobs were processed simultaneously..
Jobs submitted from card readers or remote terminals were put into an input job queue on a magnetic disk. Subsequently, a job to be executed was selected from the queue according to its priority by a job scheduling program. And, while the selected job was being divided into a sequence of job steps, the resources required for executing each job step were allocated and the job step was executed consecutively. The output from the job was put into an output queue on the magnetic disk temporarily, and then output to a printer or the like.
The input and output of jobs were simultaneously and concurrently processed with the execution of jobs by a program called Symbiont. It adopted a multi-stream method which enabled multiple input streams and multiple output streams were processed simultaneously.

Data and control flow of job management.

Data and control flow of job management.

(2) Task management
This function realized multi-programming, in which multiple tasks were executed simultaneously. In a real-time job, multiple tasks were created and active simultaneously. In a batch job or a time-sharing job, each job step represented one task. A task dispatcher scheduled these tasks, and executed the tasks while switching among them.
(3) File management
Data handled by a job were registered as a file under an account number that identified a user. A program was handled as an element of a file, and multiple programs were stored in one file. Data files were categorized into three types of organization: consecutive organization for sequential access, keyed organization that enabled direct access using a key to identify records as well as sequential access, and random organization for direct access with an address within the file.
Connection of an internal file name described in a program with an actual file was specified in a job control language.
(4) Resource management
There were two methods for allocating the main memory. RBM, BPM and BTM adopted a multi-partitioning method in which the main memory was divided into multiple areas in advance, and each area was allocated one job. UTM adopted a paging method in which the main memory was not divided in advance and only the area required for a job was allocated as a set of pages with the support of paging dynamic reallocation mechanism. Specifically, the adopted paging method was the Page Load method in which the required pages were collectively allocated, instead of the Page Request method in which pages were allocated when requested because the latter resulted in a large overhead. For the file storage, areas were allocated incrementally and dynamically according to the increase of file size for consecutive and keyed files, and collectively allocated for random files.

Two FORTRAN compilers called FLAG and Real-time FORTRAN IV were provided in addition to the world’s most advanced compilers, including FORTRAN IV and COBOL 68. FLAG created object codes directly onto the main memory and performed compile-and-go function at extremely high performance. Real-time FORTRAN IV was capable of creating reentrant object codes. For time-sharing processing, BASIC, APL and Time-sharing FORTRAN were provided.