FILE ACCESS METHODS
There
are several ways that the information in the file can be accessed.
Some systems provide only one access method for files. On other
systems, many different access methods are supported, and choosing
the right one for a particular application is a major design problem.
Sequential
Access
Information
in the file is processed in order, one record after the other.
This is by far the most common mode of access of files. For example,
computer editors usually access files in this fashion.A
read operation reads the next portion of the file and automatically
advances the file pointer. Similarly, a write appends to the end
of the file and the file pointer. Similarly, a write appends to
the end of the file and the file pointer. Similarly, a write appends
to the end of the end of the file and advances to the end of the
newly written material (the new end of file). Such a file can
be reset to the beginning, and, on some systems, a program may
be able to skip forward or backward n records, for some integer
n. This scheme is known as sequential access to a file. Sequential
access is based on a tape model of a file.
Direct
Access
Direct
access is based on a disk model of a file. For direct access,
the file is viewed as a numbered sequence of block or records.
A direct-access file allows arbitrary blocks to be read or written.
Thus, after block 18 has been read, block 57 could be next, and
then block 3. There are no restrictions on the order of reading
and writing for a direct access file. Direct access files are
of great use for intermediate access to large amounts of information.
The
file operations must be modified to include the block number as
a parameter. Thus, we have "read n", where n is the
block number, rather than "read next", and "write
n", rather that "write next". An alternative approach
is to retain "read next" and "write next"
and to add an operation; "position file to n" where
n is the block number. Then, to effect a "read n", we
would issue the commands "position to n" and then "read
next".
Not
all OS support both sequential and direct access for files. Some
systems allow only sequential file access; others allow only direct
access. Some systems require that a file be defined as sequential
or direct when it is created; such a file can be accessed only
in a manner consistent with its declaration.
Other
Access Methods
Other
access methods can be built on top of a direct-access method.
These additional methods generally involve the construction of
an index for a file. The index contains pointers to the various
blocks. To find an entry in the file, the index is searched first
and the pointer is then used to access the file directly to find
the desired entry.With
a large file, the index itself may become too large to be kept
in memory. One solution is to create an index for the index file.
The primary index file would contain pointers to secondary index
files, which would point to the actual data items.For
example, IBM's indexed sequential access method (ISAM) uses a
small master index that points to disk blocks of a secondary index.
The secondary index blocks point to the actual file blocks. The
file is kept sorted on a defined key. To find a particular item,
we first make a binary search of the master index, which provides
the block number of the secondary index. This block is read in,
and again a binary search is used to find the block containing
the desired record. Finally, this block is searched sequentially.
In this way, any record can be located from its key by at most
direct access reads.
next
: File Allocation Methods