stringtranslate.com

Volume Table of Contents

In the IBM System/360[note 1] 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[1][note 2] in Linux on Z,[2] 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.[note 3] The VTOC is not used to contain any IPLTEXT[note 4] 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[note 5] program, ICKDSF, in current systems.

When in OS/360 and successors allocates a data set, it generally searches the catalog to determine the volumes on which it resides.[note 6] 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.

Data Set Control Block types

The VTOC consists of a sequence of 140-byte records known as Data Set Control Blocks[3][4] (DSCBs). There are ten types of DSCB.

The VTOC must reside within 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[note 8] 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 the extents of data sets, giving their start address and end address[note 9] 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, 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.

Format 1 DSCB

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.[5]

See also

Notes

  1. ^ Including the successors S/370 through z/Architecture
  2. ^ The VTOC for an IBM Z compatible minidisk has a VTOC with up to three datasets, each containing a Linux File system.
  3. ^ While the VTOC only needs to associate names directly with storage allocations, a Unix file system has an indirect association via inodes.
  4. ^ However, the IPL text on cylinder 0 track 0 does read and use the VTOC.
  5. ^ DSF replaces the original IBCDASD and IEHDASDR, which IBM no longer distributes and which can not run on current hardware.
  6. ^ It is possible, although unusual, for a job to bypass the catalog and specify the volume via dynamic allocation or JCL parameters.
  7. ^ Extended Address Volume, a volume with more than 65,520 cylinders.
  8. ^ The VTOC has a dataset name as the VTOC is, indeed, a dataset; the VTOC's dataset name is (44) X'04' characters, which, in later instances of the OS, has become a protected name; a program may not write into it without authorization.
  9. ^ Each extent is described by a starting CCHH and an ending CCHH, relative to the beginning of the disk, which is CCHH=x'00000000'.

References

  1. ^ "IBM Z compatible disk layout". IBM Knowledge Center.
  2. ^ "Linux on Z and LinuxONE". IBM Knowledge Center.
  3. ^ a b "Data Set Control Blocks" (PDF). IBM System/360 Operating System: System Control Blocks (PDF). IBM Systems Reference Library (Tenth ed.). IBM Corporation. April 1973. pp. 165–173. GC28-6628-9.
  4. ^ a b "Data Set Control Block (DSCB) Types" (PDF). z/OS Version 2 Release 4 DFSMSdfp Advanced Service (PDF). IBM Corporation. 2020-12-13. pp. 2–17. SC23-6861-40.
  5. ^ IBM Corporation (April 1973). IBM System/360 Operating System: System Control Blocks (PDF). pp. 170–173. Retrieved 2016-08-01.

External links