We shall now examine how an operating system provides file management. We shall define a file to be a collection of permanent data with a global name. The data are permanent in the sense that they remain in existence until they are destroyed explicitly by a process or a user (through some process). The name is global in the sense that it does not belong to the address space of a single process and can be used by any process with appropriate access rights.
In many respects files are similar to variables in programs:
they have a name
the name refers to some data
the data may be examined or modified
access to the name and the data is controlled
As a result, file management, done by an operating system, is somewhat similar to symbol table management, done by a compiler. However, there are several differences in the two management schemes, which stem from the fact that files contain permanent data.
It is important to note that files are abstract entities provided by
an operating
system and not physical entities provided by the hardware.
They do require hardware that supports permanent storage (disks or tapes).
However,
the operations defined on them,
how they are named and protected,
their physical representation on permanent storage are all defined by an operating system.
An operating system may,
of course,
use hardware characteristics in deciding some of these issues (such as physical
representation)
for
efficiency reasons.