Basic direct access method

Basic Direct Access Method, or BDAM is an access method for IBM's OS/360 and successors computer operating systems on System/360 and later mainframes. BDAM "consists of routines used in retrieving data from, and storing data onto, direct access devices."[1]:p.5 BDAM is available on OS/360, OS/VS2, MVS, z/OS, and related high-end operating systems.

Description

Basic, in IBM terminology, indicates a lower-level access method that deals with data sets in terms of physical blocks and does not provide either read-ahead, called anticipatory buffering, or synchronization that is, the user program has to explicitly wait for completion of each input/output event.[2]:p.31

With BDAM, "the programmer can directly store and retrieve a block by specifying either its actual device address, its relative position within a data set (relative block number), or the relative track within a data set at which the system is to begin a search.[2]:p.63

BDAM provides no index or structure to the file except as programmed by the application. In many applications, a hashing or randomizing function may be used to assign the block address based on a key in the data. If physical keys are used, the key of the last record within the block must be written as the key for that block.

The BDAM application program interface can be compared with the interface offered by open, read, write and close calls (using file handles) in other operating systems such as Unix and Windows.

BDAM is still supported by IBM as of 2012. Because of its dependence on physical device geometry new IBM direct-access devices used with z/OS emulate IBM 3390 devices regardless of their real physical characteristics.

Details

BDAM requires that the file be allocated with DCB=DSORG=DA (direct access dataset organization) and SPACE=(,,CONTIG) (the file must be of fixed size with contiguous space). The file is opened output and all blocks are written sequentially to preformat the disk and optionally to load the data before the file can be used.[3]

The programmer used the READ or WRITE macro instructions to access data, providing the block address and/or key. It is possible to start multiple input/output operations to run concurrently. The CHECK macro has to be used to wait for completion of a specific operation before the data can be accessed or the data buffer reused.

Disk addresses

BDAM accepts disk addresses as either actual device addresses, as relative track addresses, or as relative block numbers.

Device addresses are eight byte fields in the form MBBCCHHR. All subfields are binary numbers.[4]

Specifying device addresses makes the dataset unmovable.[2]:p.106

Relative track addresses are three byte fields in the form TTR. All subfields are binary numbers.

Relative block numbers are four byte (fullword) binary numbers indicating the block number in the file. The first block is block 0. This form of addressing can only be used with fixed length blocks (RECFM=F).[5]:p.106

See also

References

  1. IBM System/360 Operating System Basic Direct Access Method Program Logic Manual (PDF). IBM. July 1967. Y28-6617-3.
  2. 1 2 3 IBM System/360 Operating System Data Management (PDF). IBM. April 1966. C28-6537-1.
  3. CICS and BDAM, IBM infocenter
  4. IBM Corporation. "Executing Direct Access Programs". Retrieved September 23, 2012.
  5. OS Data Management Services Guide (PDF). IBM. July 1973. GC26-3746-2.

External links

This article is issued from Wikipedia - version of the Saturday, December 26, 2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.