In the IBM System/360 storage architecture, the Volume Table of Contents ( VTOC ) is a data structure that provides a way of locating the data sets that reside on a particular DASD volume . With the exception of the IBM Z compatible disk layout in Linux on Z, it is the functional equivalent of the MS/PC DOS File Allocation Table (FAT), the NTFS Master File Table (MFT), and an inode table in a file system for a Unix-like system. The VTOC is not used to contain any IPLTEXT and does not have any role in the IPL process, therefore does not have any data used by or functionally equivalent to the MBR. It lists the names of each data set on the volume as well as size , location, and permissions . Additionally, it contains an entry for every area of contiguous free space on the volume. The third record on the first track of the first cylinder of any DASD (e.g., disk) volume is known as the volume label and must contain a pointer to the location of the VTOC. The location of the VTOC may be specified when the volume is initialized. For performance reasons it may be located as close to the center of the volume as possible, since it is referenced frequently. A VTOC is added to a DASD volume when it is initialized using the Device Support Facilities program, ICKDSF , in current systems.
56-636: When in OS/360 and successors allocates a data set, it generally searches the catalog to determine the volumes on which it resides. When a program opens a Direct Access Storage Device (DASD) dataset, the OPEN routine searches the VTOC index (VTOCIX) if there is one, or directly searches the VTOC if there is no VTOCIX. The VTOC consists of a sequence of 140-byte records known as Data Set Control Blocks ( DSCBs ). There are ten types of DSCB. The VTOC must reside within
112-408: A Fixed number of Tasks (MFT) was intended to serve as a stop-gap until Multiprogramming with a Variable number of Tasks (MVT), the intended target configuration of OS/360, became available in 1967. Early versions of MVT had many problems, so the simpler MFT continued to be used for many years. After introducing new System/370 machines with virtual memory in 1972, IBM developed MFT 2 into OS/VS1 ,
168-518: A VTOC search was a sequential scan of the DSCBs, stopping when the correct format 1 DSCB was found or the end of the VTOC was reached. As DASD volumes became larger, VTOC search became a bottleneck and so a VTOC index was added. This VTOC entry describes a dataset and defines its first three extents. This is the format of the DSCB from OS/360 Release 21.7 in 1973, prior to changes for Y2K . For example, if
224-496: A Variable number of Tasks (MVT) was the most sophisticated of three available configurations of OS/360 's control program, and one of two available configurations in the final releases. MVT was intended for the largest machines in the System/360 family. Introduced in 1964, it did not become available until 1967. Early versions had many problems and the simpler MFT continued to be used for many years. Experience indicated that it
280-422: A decade after their successors had been launched. The division between MFT and MVT arose because of storage limitations and scheduling constraints. Initially IBM maintained that MFT and MVT were simply "two configurations of the OS/360 control program", although later IBM described them as "separate versions of OS/360". IBM originally wrote OS/360 in assembly language . Later on, IBM wrote some OS/360 code in
336-421: A mainframe systems programmer. Hercules runs under multiple parent operating systems including Linux , Microsoft Windows , FreeBSD , NetBSD , Solaris , and macOS and is released under the open source software license QPL . It is analogous to Bochs and QEMU in that it emulates CPU instructions and select peripheral devices only. A vendor (or distributor) must still provide an operating system, and
392-412: A mainstream operating system and is the ancestor of today's widely used VSE . IBM released three variants of OS/360: PCP (Primary Control Program), a stop-gap which could run only one job at a time, in 1966; MFT ( Multiprogramming with Fixed number of Tasks) for the mid-range machines, and MVT (Multiprogramming with Variable number of Tasks) for the top end. MFT and MVT were used until at least 1981,
448-554: A new approach to workload management, allowing users to define performance targets for high-priority batch jobs. This enabled users to give their systems more work than before without affecting the performance of the highest-priority jobs. MVS was IBM's first mainstream operating system on the System/370 to support what IBM called tightly coupled multiprocessing , in which 2 (later, up to 12, for IBM mainframes, and up to 16, for Amdahl mainframes) CPUs shared concurrent access to
504-465: A new implementation of the catalog facility which enables applications to access files by name, without needing to know which disk drive(s) they are on. VSAM datasets must be defined in a VSAM catalog before they are used, and non-VSAM datasets can also be listed in a VSAM catalog. The MVS Master Catalog must be a VSAM catalog. Catalogs were originally provided in OS/360 in the form of CVOLs; MVS added
560-731: A new language, Basic Systems Language (BSL), derived from PL/I. A large amount of the TSO code in Release 20 was written in BSL. TSS/360 was so late and unreliable that IBM canceled it, although IBM later supplied three releases of the TSS/370 PRPQ. By this time CP-67 was running well enough for IBM to offer it without warranty as a timesharing facility for a few large customers. These three options offered such similar facilities that porting applications between them usually required minimal effort;
616-666: A separate timesharing operating system, TSS/360 , for the System/360 Model 67 . There are at least two accounts of why IBM eventually decided to produce other, simpler batch-oriented operating systems: IBM introduced a series of stop-gaps to prevent System/360 hardware sales from collapsing—first Basic Programming Support (BPS) and BOS/360 (Basic Operating System, for the smallest machines with 8K byte memories), then TOS/360 (Tape Operating System, for machines with at least 16K byte memories and only tape drives), and finally DOS/360 (Disk Operating System), which became
SECTION 10
#1732779540473672-419: A separate article. This article adheres to IBM's usage of the term storage rather than memory . OS/360 assigns processors to tasks, which are analogous to light-weight processes or threads in other systems. Each task has a Task Control Block (TCB) and a stack of Request Blocks (RBs). A task is either dispatchable or nondispatchable and an RB is either waiting or not waiting. The Dispatcher selects
728-445: A separate catalog structure for VSAM; later IBM added a third type of catalog known as an ICF catalog. (IBM removed support for CVOL and VSAM catalogs as of 2000, since they were not Y2K-compliant; hence in z/OS, only ICF catalogs are supported.) In 1974 IBM announced Systems Network Architecture , which was meant to reduce the cost of running large networks of terminals, mainly by using communications lines much more efficiently. This
784-564: A set of libraries on tape that the installation had to restore to DASD in order to perform a system generation . IBM also offered a set of optional source tapes that the installation could use to modify and assemble modules that IBM normally provided as object code. In addition, IBM offered microfiche that had assembly listing of the basic program material and of subsequent service. IBM continued distributing source code until it imposed an Object Code Only (OCO) policy for licensed software. The other major operating system for System/360 hardware
840-447: A tight loop, such as in a synthetic instruction benchmark or with other small, compute-intensive programs. Tom Lehmann, co-founder of TurboHercules, wrote: ...We can run a reasonably sized load (800 MIPS with our standard package). If the machine in question is larger than that, we can scale to 1600 MIPS with our quad Nehalem based package, and we have been promised an 8 way Nehalem EX based machine early next year that should take us to
896-466: A while one could find that, although there was enough spare memory in total to run a program, it was divided into separate chunks none of which was large enough. System/360 lacked memory relocation hardware so memory compaction could not be used to reduce fragmentation. A facility called Rollout/Rollin could swap a running job out to secondary storage to make its memory available to another job. The rolled-out job would, however, have to be rolled-in to
952-465: Is 64-bit "clean." There is also a large community of current and former mainframe operators and programmers, as well as those with no prior experience, who use Hercules and the public domain IBM operating systems as a hobby and for learning purposes . Most of the skills acquired when exploring classic IBM mainframe operating system versions are still relevant when transitioning to licensed IBM machines running
1008-535: Is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer , announced in 1964; it was influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages for the IBM 7090/7094 and even more so by the PR155 Operating System for the IBM 1410 / 7010 processors. It was one of the earliest operating systems to require
1064-620: Is divided into a system ( fixed ) area at the bottom of real storage, a common area at the top and a private area in the middle. These contain the following areas. 'This is a section of storage at the highest physical address. It contains Hercules emulator Hercules is a computer emulator allowing software written for IBM mainframe computers ( System/370 , System/390 , and zSeries/System z ) and for plug compatible mainframes (such as Amdahl machines) to run on other types of computer hardware, notably on low-cost personal computers . Development started in 1999 by Roger Bowler,
1120-431: Is only available for IBM's virtual memory operating systems, since its mainframe software component, VTAM is only available with these operating systems. In 1977 IBM announced MVS/System Extensions, a program product (i.e., it cost extra money) which improved MVS performance and added functionality. Descendants of the original MVS are still used on the latest descendants of System/360, System/390 and zSeries ; it
1176-464: The 3200 MIPS mark. Anything bigger than that is replicated by a collection of systems. Hercules generally outperforms IBM's PC based mainframes from the mid-1990s, which have an advertised peak performance of around 29 MIPS. Compared to the more powerful but still entry-level IBM Multiprise 2000 and 3000 mainframes (also from the 1990s), Hercules on typical x86 hardware would be considered a mid-range server in performance terms. For every mainframe after
SECTION 20
#17327795404731232-532: The 370/390/ESA/z architectures implement I/O using four instructions: large, complex I/O operations can be set up and handed over to the peripheral for processing; the CPU has no further involvement in the I/O until the I/O device notifies that it has completed the operation. This results in mainframe systems where the vast majority of "CPU cycles" are used not in mainframe CPU itself, but the assortment of processors embedded in
1288-610: The 9672 Generation 1, Hercules would generally be the lowest end system. For comparison, 2010-era high-end IBM zEnterprise 196 systems can deliver over 52,000 MIPS per machine, and they have considerable I/O performance advantages. With the same number of emulated Sys Z processors, z/PDT is about 3 times faster than Hercules. Note that there are other non-functional system attributes beyond performance which are typically relevant to mainframe operators. These include high availability, failover, hot-plug CPU and RAM, I/O routing over I/O meshes, system migration and LPAR management. For example,
1344-548: The Hercules emulator except in very limited circumstances , and they must always be licensed from IBM. IBM's Coupling Facility control code, which enables Parallel Sysplex , and UTS also require licenses to run. Operating systems which may legally be run, without license costs, on Hercules include: Hercules can be used as a development environment to verify that code is portable (across Linux processor architectures, for example), supports symmetric multiprocessing (SMP), and
1400-515: The I/O peripherals. The mainframe CPU then acts more as orchestra conductor, coordinating data movement, rather than "computing" per se. The simplest I/O devices can be emulated; complex systems would pose a challenge. In 2009, Roger Bowler founded TurboHercules SAS, based in France, to commercialize the Hercules technology. In July 2009, TurboHercules SAS asked IBM to license z/OS to its customers for use on systems sold by TurboHercules. IBM declined
1456-870: The OS Dispatcher and the IOS , notably, among many others, remained coded in Assembly Language , which had been enhanced for OS/VS in the IFOX00 Assembler (from the older, OS/360 IEUASM Assembler). The new version's most noticeable feature was that it supported multiple virtual address spaces - different applications thought they were using the same range of virtual addresses, but the new system's virtual memory facilities mapped these to different ranges of real memory addresses. Each application's address space consists of 3 areas: operating system (one instance shared by all jobs); an application area which
1512-604: The OS Nucleus and Scheduler. However, because of quite different behavior and memory requirements, users commonly consider them de facto separate operating systems and refer to them as "early OS/360", "OS/MFT", "OS/MVT", respectively. MFT differs from MVT mainly in the way in which it manages memory: when installing MFT, customers specify in the system generation (SysGen) a fixed number of partitions , areas of memory with fixed boundaries, in which application programs can be run simultaneously. Primary Control Program (PCP)
1568-489: The Set System Mask (SSM) instruction to serialize disabled code between the two CPUs. For the most part an M65MP system has the same behavior and interfaces as any other MVT system. The keyword parameter SYS=VMS included M65MP as well as uniprocessor MVT. PCP, MFT and MVT provide similar facilities from the point of view of application programs: Some features were available only for MFT and MVT: When System/370
1624-631: The computer hardware to include at least one direct access storage device . Although OS/360 itself was discontinued, successor operating systems, including the virtual storage MVS and the 64-bit z/OS , are still run as of 2023 and maintain application-level compatibility with OS/360. IBM announced three different levels of OS/360, generated from the same tapes and sharing most of their code. IBM eventually renamed these options and made some significant design changes: Users often coined nicknames, e.g., "Big OS", "OS/MFT", but none of these names had any official recognition by IBM. IBM provided OS/360 as
1680-510: The considerable overhead of emulating a computer architecture in software. However, newer, partially or fully configured System z machines outperform Hercules by a wide margin. A relatively fast dual processor X86 machine running Hercules is capable of sustaining about 50 to 60 MIPS for code that utilizes both processors in a realistic environment, with sustained rates rising to a reported 300 MIPS on leading-edge (early 2009) PC-class systems. Hercules can produce peaks of over 1200 MIPS when running in
1736-558: The dataset is created with the DD card specification SPACE=(CYL,(4,2)) the dataset is initially allocated four cylinders, and an additional two cylinders, not necessary contiguous, will be allocated each time more space is needed, up to fifteen additional extents. extent ending cylinder and track (four bytes, binary). Pointer to Format-3 (extension) DSCB if this dataset has more than three extents. OS/360 and successors OS/360 , officially known as IBM System/360 Operating System ,
Volume Table of Contents - Misplaced Pages Continue
1792-413: The extents of data sets, giving their start address and end address of up to 16 such extents on disk. The initial part of a data set is described by a format 1 DSCB. If necessary, format 3 DSCBs are used to describe further extents of the data set. When a data set is deleted, its format 1 DSCB is overwritten to become a format 0 DSCB, and the format 3 DSCB, if one exists, is similarly deleted. Originally,
1848-455: The first 64K tracks on the volume, and The first DSCB in the VTOC is always a format 4 DSCB which describes the VTOC itself and attributes of the DASD volume on which this VTOC resides. The second DSCB is always a format 5 DSCB which describes free space within the VTOC. Normally, the rest of the VTOC will contain format 0 DSCBs, which are empty entries, and format 1 or format 3 DSCBs, which describe
1904-498: The highest priority dispatchable task whose current RB is not waiting. MVS assigns processors to address spaces , which are analogous to processes, and to Service Request Block (SRBs) and tasks within address spaces. Each address space has an Address Space Control Block (ASCB), a queue of SRBs and a queue of TCBs. In OS/360 all storage is visible to all code, although fetch protection may prevent access by unprivileged code to some control blocks or between jobs. Main storage for MVT
1960-539: The lack of concrete, controlled performance comparisons. Performance comparisons are likely legally impossible for licensed IBM operating systems, and those operating systems are quite different from other operating systems, such as Linux. Hercules expresses its processing performance in MIPS . Due to the age of the earlier System/360 and System/370 hardware, it is a relatively safe assumption that Hercules will outperform them when running on moderately powerful hardware, despite
2016-470: The last system of this particular line. The first version of MFT shared much of the code and architecture with PCP, and was limited to four partitions . It was very cumbersome to run multiple partitions. Many installations used Houston Automatic Spooling Priority (HASP) to mitigate the complexity. MFT Version II (MFT-II) shared much more of the Control Program and Scheduler code with MVT, and
2072-400: The latest versions . The open source nature of Hercules means that anyone can produce their own customized version of the emulator. For example, a group of developers independent of the Hercules project implemented a hybrid mainframe architecture which they dubbed "S/380" using modifications to both Hercules and to freely available classic versions of MVS (and later VM and DOS/VS), enhancing
2128-486: The only System/370 operating systems that do not have modern descendants. OS/VS2 release 1 was just MVT plus virtual memory and VSAM (see below). This version was eventually renamed OS/VS2 SVS , for Single Virtual Storage, when OS/VS2 Release 2, also known as MVS, for Multiple Virtual Storage, was introduced. SVS was intended as a stepping stone from MVT to MVS, and is only of historical interest today. In 1974 IBM released what it described as OS/VS2 Release 2 but which
2184-473: The operating system provides such services and on x86 / x86-64 processors. Hercules is technically compatible with all IBM mainframe operating systems, even older versions which no longer run on newer mainframes. However, many mainframe operating systems require vendor licenses to run legally. Newer licensed operating systems, such as OS/390 , z/OS , VSE/ESA , z/VSE , VM/ESA , z/VM , TPF/ESA , and z/TPF are technically compatible but cannot legally run on
2240-474: The operating systems with some degree of 31-bit (and as of 2016, 64-bit) binary compatibility with later operating system versions (and as of 2018, 32-bit is also supported). It is difficult to determine exactly how Hercules emulation performance corresponds to real mainframe hardware, but the performance characteristics are understandably quite different. This is partially due to the difficulty of comparing real mainframe hardware to other PCs and servers as well as
2296-655: The original memory locations when they again became available. In 1971 the Time Sharing Option (TSO) for use with MVT was added as part of release 20.1. TSO became widely used for program development because it provided an editor, the ability to submit batch jobs, be notified of their completion, and view the results without waiting for printed reports, and debuggers for some of the programming languages used on System/360. TSO in OS/360 communicated with terminals by using Telecommunications Access Method (TCAM). TCAM's name suggests that IBM hoped it would become
Volume Table of Contents - Misplaced Pages Continue
2352-404: The same memory (and a single copy of the operating system and peripheral devices), providing greater processing power and a degree of graceful degradation if one CPU failed (which, fortunately, became an increasingly rare event, as system up time rose from hours to days and, then, to years .) Initially MVS was supplied with a job queue manager called JES2 (Job Entry Subsystem 2), which
2408-491: The same versions of most IBM Program Products , application and utility software ran on both. The text below mostly treats PCP , MFT and MVT as simply new names for the original SSS , MSS and MPS , although there were some design changes. Also, the text does not distinguish between M65MP and MVT. Officially, PCP, MFT and MVT are not separate operating systems from OS/360, they are only install-time configuration options—in today's words, three different variants of
2464-534: The standard access method for data communications, but in fact TCAM in OS/VS2 was used almost entirely for TSO and was largely superseded by Virtual Telecommunications Access Method (VTAM) in the mid-to-late 1970s. Also referred to as SYS=VMS in invocations of some macros that were system-dependent. Model 65 Multiprocessing (M65MP) is a variant of MVT. It runs on a 360/65 in Multisystem mode M65MP traps use of
2520-596: The use of virtual memory. IBM provided an OS/360 SYSGEN option for S/370 support, which did not support DAT but did: OS/VS1 is the successor to MFT, and offers similar facilities with several additions, e.g., RES, virtual memory. VSAM (see below) was initially available as an independent component release (ICR) and later integrated into the OS/VS1 base. IBM released fairly minor enhancements of OS/VS1 until 1983, and in 1984 announced that there would be no more. AIX/370 , AIX/ESA , DPPX , IX/370 , OS/VS1 and TSS/370 are
2576-583: The user must install it. Hercules was the first mainframe emulator to incorporate 64-bit z/Architecture support. The emulator is written almost entirely in C . Its developers ruled out using machine-specific assembly code to avoid problems with portability even though such code could significantly improve performance. There are two exceptions: Hercules uses hardware assists to provide inter-processor consistency when emulating multiple CPUs on SMP host systems, and Hercules uses assembler assists to convert between little-endian and big-endian data on platforms where
2632-445: The work of all those CPUs. Note: JES1 was the job queue manager for OS/VS1 (see above). IBM hoped that Virtual storage access method (VSAM) would replace its earlier sequential, indexed and direct access methods as it provided improved versions of these: These VSAM formats became the basis of IBM's database management systems , IMS/VS and DB2 - usually ESDS for the actual data storage and KSDS for indexes. VSAM also provides
2688-596: Was DOS/360 . OS/360 is in the public domain and can be downloaded freely. As well as being run on actual System/360 hardware, it can be executed on the free Hercules emulator , which runs under most UNIX and Unix-like systems including Linux , Solaris , and macOS , as well as Windows . There are OS/360 turnkey CDs that provide pregenerated OS/360 21.8 systems ready to run under Hercules. IBM originally intended that System/360 should have only one batch-oriented operating system, OS/360, capable of running on machines as small as 32 KiB. It also intended to supply
2744-472: Was announced in 1970 it offered essentially the same facilities as System/360 but with about 4 times the processor speeds of similarly priced System/360 CPUs. Then in 1972 IBM announced System/370 Advanced Functions , of which the main item was that future sales of System/370 would include virtual memory capability and this could also be retro-fitted to existing System/370 CPUs. Hence IBM also committed to delivering enhanced operating systems which could support
2800-509: Was descended from HASP ( Houston Automatic Spooling Priority ) and also supported Remote Job Entry from workstations located elsewhere. JES2 can only manage jobs for one CPU (which might be a tightly coupled multiprocessor system). In 1976 IBM provided another option, JES3 (Job Entry Subsystem 3), a descendant of ASP ( Attached Support Processor ), which allows one CPU to manage a single job queue feeding work to several physically distinct CPUs, and therefore allows one operator's console to manage
2856-583: Was intended for machines with small memories. It is similar to MFT with one partition . Experience indicated that it was not advisable to install OS/360 on systems with less than 128 KiB of memory, although limited production use was possible on much smaller machines, such as 48 KiB of memory. IBM dropped the PCP option in the final releases of OS/360, leaving only MFT II and MVT, both of which required more memory. Also referred to as SYS=MIN in macro expansions that were system-dependent. Multiprogramming with
SECTION 50
#17327795404732912-509: Was much more flexible to run. The maximum number of partitions increased to 52. Later modifications of MFT-II added sub-tasking , so that the fixed number of tasks was no longer fixed, although the number of partitions did remain a limitation. Experience indicated that it was not advisable to install MFT on systems with less than 256 KiB of memory, which in the 1960s was quite a large amount. Also referred to as SYS=INT in macro expansions that were system-dependent. Multiprogramming with
2968-426: Was not advisable to install MVT on systems with less than 512 KiB of memory. MVT treated all memory not used by the operating system as a single pool from which contiguous regions could be allocated as required, by an unlimited number of simultaneous application and systems programs. This scheme was more flexible than MFT's and in principle used memory more efficiently, but was liable to fragmentation - after
3024-400: Was really a new operating system that was upwards-compatible with OS/VS2 Release 1. The Supervisor of the new system had been largely rewritten in a new dialect of BSL, PL/S ; BSL and PL/S were dialects of PL/I with extensions designed to transcribe Assembly language code, including privileged instructions needed to control the computer as a whole. Time-sensitive OS components, such as
3080-478: Was renamed to OS/390 for System/390, and the 64-bit version for the zSeries was named z/OS . For reasons of size, this section concentrates on the MVT option of OS/360; PCP and MFT are very similar; with changes in nomenclature and some minor differences. OS/VS1 and SVS have much the same structure as MFT II and MVT, while MVS , although retaining much of the logic of MVT, has major enhancements better addressed in
3136-567: Was unique for each application; shared virtual area used for various purposes including inter-job communication. IBM promised that the application areas would always be at least 8MB. This approach eliminated the risk of memory fragmentation that was present in MVT and SVS, and improved the system's internal security. The new system rapidly became known as " MVS " (Multiple Virtual Storages), the original OS/VS2 became known as "SVS" (Single Virtual Storage) and IBM itself accepted this terminology and labelled MVS's successors "MVS/ xxx ". MVS introduced
#472527