All database files consist primarily of blocks. Each block begins on a segment boundary. If the block size is not an integral number of segments in length, then the size is rounded up to the next segment boundary. The remainder of the last segment of each block is wasted in secondary storage but not when blocks reside in main memory buffers.
The Accessroutines uses DMIO, a variant of Direct I/O, to read and write database files. Normally the Accessroutines reads and writes entire blocks. However, the Accessroutines is capable of reading or writing individual segments. This ability is used to access parts of some structures including the available space tables (DKTABLE) for standard data sets and block 0 (zero) for index sequential sets.