It used a fixed page table which mapped a single address space of up to 16 megabytes for all partitions combined.
[11] The 4300 systems included a feature called ECPS:VSE that provided a single-level storage for both the processor and the I/O channels.
It introduced a new feature called dynamic partitions which could allow up to 150 concurrent jobs, each in its own address space.
However, while parts of the supervisor run in 64-bit mode, it only provides 31-bit virtual address spaces to problem state applications.
[22] When developing a new hardware generation of unified System/360 (or S/360) computers, IBM had originally committed to delivering a single operating system, OS/360, also compatible with low-end machines; but hardware was already available and the OS/360 project fell further and further behind schedule, as described at length by Fred Brooks in The Mythical Man-Month.
IBM was forced to quickly develop four additional systems: When OS/360 was finally released, a year late, it required at least 64 KB of memory.
DOS was designed to use little memory, and could run on 16 KB machines, a configuration available on the low-end S/360 model 30.
As a result of the delay, a number of customers implemented DOS systems and committed significant investments to run them.
A 1052 Model 7[NB 2] printer-keyboard, either a selector or multiplexor channel, and at least one disk drive was required — initially a 2311 holding 7.25 MB.
A minimum system would leave just over 10 KB of storage available for a single batch partition which was enough to run utilities and all compilers except COBOL, PL/I, and full FORTRAN IV.
The concept of transient area is part of Mythical Man-Month's discussion on design and the use of main memory.
DOS/VS allowed up to seven concurrent programs, although five or six was a more common number due to the smaller scale of the hardware usually hosting DOS systems.
When the Core Image Library became full, it had to be compressed by a utility program, and this could halt development work until it was complete.
Installations could define additional private relocatable and source statement libraries on other disk volumes.
DOS/360 had a set of utility programs, an Assembler, and compilers for FORTRAN, COBOL and eventually PL/I, and it supported a range of file organizations with access methods to help in using them: Sequential and ISAM files could store either fixed-length or variable-length records, and all types could occupy more than one disk volume.
The simplicity of its API also allowed the relatively easy interface of external communications processors, which facilitated DOS/360 machines becoming nodes in the multi-tier networks of large organizations.
All DOS job control statements began with "//" in card columns one and two except end-of-job which was "/&␢", end-of-data, "/*␢", and comments, "*␢".
[25] DOS JCL was designed for parsing speed and simplicity; the resulting positional syntax was significantly more cryptic than OS/360 keyword-driven job control.
Early DOS included no spooling sub-system to improve the efficiency of punched card and line printer I/O.
Alternatively assembler-language programs could be written as self-relocating, but that imposed additional complexity and a size penalty, albeit a small one.
Assembler programs, on the other hand, tended to utilize those very features more often and usually needed greater modification to run on DOS.