System Generation (OS)

System Generation (SysGen) is a two-stage process for installing or updating OS/360, OS/VS1, OS/VS2 (SVS), OS/VS2 (MVS) and chargeable systems derived from them. There are similar processes for, e.g., DOS/360, which this article does not cover. Also, some of the details have changed between releases of OS/360 and many details do not carry over to later systems.

There are several reasons that IBM provided a system generation process rather than simply providing a mechanism to restore the system from tape to disk. System/360 did not have self-identifying I/O devices, and the customer could request installation of I/O devices at arbitrary addresses. As a result, IBM had to provide a mechanism for the customer to define the I/O configuration to OS/360. Also, OS/360 supported several different options; IBM needed a way for the customer to select the code appropriate for the options needed at a particular installation.

The SysGen process runs as a series of jobs under the control of the operating system. For new installations, IBM provides a complete pre-configured driver system, which is intended only for preparing for and running the sysgen, not for production use.

Prior to running the Sysgen, the customer must initialize a set of distribution volumes and restore a set of distribution libraries from tape to those volumes. These libraries include data that the sysgen process will copy to target libraries, input to utilities used by the sysgen process, macro definitions used by the sysgen process and load modules that the sysgen process will include when linking load modules into target libraries.



Stage 1 is the compilation of a sequence of assembler macro instructions describing the configuration to be installed or updated. The assembler does not actually compile any object code, but instead compiles a series of  pseudo-ops in order to generate a job stream for Stage 2. As IBM changed the nomenclature for OS/360 options, it also changed the Sysgen macro definitions to use newer names for the options.

The  keyword on the   macro in the Stage 1 input specifies the type of control program. By Release 13 the old terms,  , and   had been replaced by  ,  , and. The later  type is a variation of.

The  macro in the Stage 1 input specifies the type of scheduler; Release 13 still used the values   and , but those were subsequently replaced by the values used for the   keyword on the   macro.

These types are
 * PCP:Primary Control Program (Option 1)
 * MFT:Multiprogramming with a Fixed number of Tasks (MFT)  (Option 2)
 * MVT:Multiprogramming with a Variable number of Tasks (MVT) (Option 4)
 * M65MP:Model 65 Multi-Processing, a special case of MVT.

The  macro in the Sysgen input can be any of several types:


 * Full generation of the operating system.
 * Generation of compilers and associated libraries.
 * Updating of the I/O configuration

For MVT (either  or  ) with TSO, the   macro plays the same role as. Either macros analyzes the options specified on the previous macro calls and punches the Stage 2 job stream.

The Stage 2 jobstream uses a variety of utilities, including the assembler and linkage editor.

This process is now obsolete; it was initially replaced by the use of SMP/E, IOCP and MVSCP,  then later by SMP/E and Hardware Configuration Definition (HCD).