【NEC】 ACOS-6

 NEC and Toshiba announced ACOS-6, a large general-purpose operating system that realized multi-dimensional processing, in November 1974, and started shipping it in December. In 1978, the two companies started shipping a version that used a full-scale virtual storage system.
 ACOS-6 maintained the succession of the software assets of the ACOS Series 77, which was the basis of ACOS-6, but strengthened flexibility, expandability and reliability by adopting multi-dimensional processing and virtual storage systems to boost multi-user support. It was installed in large machines of the ACOS Series, systems 600, 600S, 700, 800, 900 and 1000, and in sub-models of the series, systems 650 and 850.
 The multi-dimensional processing and virtual storage systems adopted in these machines were also inherited by successors of ACOS-6 as basic technologies.

 Features of the newly adopted architecture and of major functions included the following:

1. Features of the Architecture
(1) Multiprogramming
In the architecture, a job, or unit of work given to the system, consisted of sequentially executed programs and processing units, called “activities,” corresponding to the associated data. In the execution stage, the system time-divided all activities into processing units called “processes,” each of which had a group of sequentially executed instructions and the associated data, and to which resources such as CPU and I/O were allocated” regardless of the types of activities. Thus, multiprogramming was achieved.
(2) Virtual storage system
The OS provided a virtual memory (called virtual space) independent of the main memory, which had a finite size. Programs and data were stored in a virtual space, making it possible to remove a limit on the main memory from the programmer and efficiently share use of the main memory among multiple users. Four major architectures related to the virtual memory system of ACOS-6 were outlined as follows:
(a) Paging
Paging was adopted as the method for physically segmenting the virtual space. In ACOS-6, the virtual space was divided into pages, each accounting for 4 KB and mapped on the main memory. Specifically, the demand-paging method was adopted for paging. This allowed only the portion required for executing the program to be loaded from an external storage to the main memory in units of pages as triggered by a page absence interrupt.
(b) Segmentation
In addition, segmentation was adopted as the method for logically segmenting the virtual space. In ACOS-6, physical pages were independent of logical segments, and attribute-checking functions such as boundary checking and writable-or-not checking were provided for each segment of any size, from bytes to gigabytes.
(c) Domain
The segement set of the area of instructions and data that the program can access is called a “domain.” The OS realized access protection by switching between domains for each program, and enabled attribute data transfer and data sharing between programs by adding and sharing segments among domains.

Figure 1

Figure 1

(d) Dynamic address translator (DAT) in IOM
A dynamic address translator (DAT) was incorporated even in the hardware called IOM, which was independent of the main unit and designed to manage the I/O devices, allowing reception of I/O requests with a logical address.
(3) R mode and V mode
ACOS-6 allowed a combination of an R (real) mode program operating with a static relocation method before the advent of the above-mentioned virtual storage system, and a V (virtual) mode program that adapted to the paging/segmentation mechanisms of the virtual memory system.
(4) Support for multiple processors
ACOS-6 supported two types of multiprocessor systems: a tightly coupled and a loosely coupled system. The tightly coupled multiprocessor system supported up to four processors. The loosely coupled multiprocessor system had a lock byte function within a large-capacity disk controller. As a result, an SMS (Shared Mass Store) system allowed up to four computers to share files .
(5) Processor-relief mechanism
The OS realized a high-availability system by incorporating a processor-relief mechanism into ACOS Series machines, starting with system 1000. The processor-relief mechanism enabled the machine to keep operating in the event of failure of the processor (CPU) in a tightly coupled multiprocessor configuration without making aware of the fault interruption, by having the in-process status of the failed processor taken over by another processor via assistance of the firmware and the operating system.
2. Features of the Functions
(1) Multi-dimensional processing
For data processing by the computer system, the OS allowed multiple processing modes, such as local batch processing, remote batch processing, interactive time-sharing processing, interactive remote batch processing, transaction processing and message conversion, to operate simultaneously according to the volume of data to be processed, data transfer location, data processing time, user group and purpose of use. Additionally, in each processing mode, the OS was capable of simultaneously and efficiently handling a large number of users and terminals.

Figure 2

Figure 2

(2) Database and online transaction function
The OS supported the network-type database management system ADBS (Advanced Data Base System), which complied with CODASYL standards.
(3) Network function and online processing
The OS provided ATAM (Advanced Telecommunication Access Method) and NPS-AF (Network Processing Supervisor-Advanced Function) as communication management programs that supported the communication procedure based on international and industry standards. Using TSS-AF (Time Sharing System - Advanced Function), which supported a time-sharing system, the OS enabled interactive use of the mainframe computer by multiple users and adaptation to OA linked with the mainframe. With TDS-AF (Transaction Driven System - Advanced Function), which supported online transaction processing, the OS enabled high-performance/high-reliability online real-time processing.
(4) Programming language
The OS realized processing of languages, mainly COBOL 74 for clerical processing, FORTRAN 77 for engineering computation, PL/I for general-purpose processing and HPL for system description.
(5) Shared run-unit library
A shared run-unit library was provided as a function for sharing the code of a library referenced by multiple running programs. The reference to the program registered in the shared run unit library was solved when it was statically linked. However, if the linked program was to be changed when the program ran, it was executed after being re-linked.
(6) Japanese language support
The OS was capable of processing Japanese-language information, including inputting and outputting Japanese-language data containing kanji and kana characters, in almost the same manner as with conventional alphanumeric data. In addition, the OS supported widespread use of printer equipment that could output Japanese-language data.