Jump to content

Basic sequential access method

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Peterh5322 (talk | contribs) at 17:20, 20 October 2011. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In IBM mainframe operating systems, Basic sequential access method (BSAM)[1] is an access method to read and write datasets sequentially. BSAM is available on OS/360, OS/VS2, MVS, z/OS, and related high-end operating systems.

BSAM is used both for devices that are naturally sequential, such as punched card readers and printers, and for data on devices that could also be addressed directly, such as magnetic disks. BSAM offers device independence: to the extent possible, the same API calls are used for different devices.

BSAM is—as its name says—basic, in this specific context meaning unbuffered with no deblocking of reads and no blocking of writes, although buffering is an option, but not deblocking or blocking. It allows programs to read and write physical blocks of data, as opposed to the more advanced Queued Sequential Access Method (QSAM) that allows programs to access logical records within physical blocks of data.

Indeed, the BSAM user must be aware of truncated final blocks (a block at the end of a dataset which is shorter than the BLKSIZE of the dataset) and, in many cases, embedded truncated blocks (blocks within a dataset which are shorter than the BLKSIZE of the dataset). QSAM has none of these significant limitations. So-called "standard blocks" (blocks being equal to the BLKSIZE) may, in some cases, be forced, but the user must still be prepared for at least the final block being truncated.

If the dataset is unblocked, that is, LRECL is equal to BLKSIZE, BSAM may be utilized to simulate a directly accessed dataset using NOTE (to notify the application of a record's position within the dataset) and POINT (to position the dataset for accessing the record specified by the application, using a value previously supplied by NOTE), and some primitive applications were designed in this way.

The BSAM 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.