File Concepts
a. File Attributes
Different Operating Systems keep track of different file
attributes, including:
- Name - Some systems give special significance to names, and
particularly extensions ( .exe, .txt, etc. ), and some do not. Some
extensions may be of significance to the OS ( .exe ), and others only to
certain applications ( .jpg )
- Identifier ( e.g. inode number )
- Type - Text, executable, other binary, etc.
- Location - on the hard drive.
- Size
- Protection
- Time & Date
- User ID
b. File Operations
The file ADT supports many common operations:
- Creating a file
- Writing a file
- Reading a file
- Repositioning within a file
- Deleting a file
- Truncating a file.
Most Operating Syatems require that files be opened before
access and closed after all access is complete.
Normally the programmer must open and close files explicitly, but some rare
systems open the file automatically at first access. Information about
currently open files is stored in an open file table,
containing for example:
- File pointer - records the current position in the file, for
the next read or write access.
- File-open count - How many times has the current file been opened
( simultaneously by different processes ) and not yet closed?
When this counter reaches zero the file can be removed from the table.
- Disk location of the file.
- Access rights
Some systems provide support for file locking.
A shared lock is for reading
only.
A exclusive lock is for writing
as well as reading.
An advisory lock is informational
only, and not enforced. ( A "Keep Out" sign, which may be ignored. )
A mandatory lock is enforced. ( A
truly locked door. )
UNIX used advisory locks, and Windows uses mandatory
locks.
c. File Types
Windows ( and some other systems ) use special file extensions to
indicate the type of each file:
d. File Structure
- Some files contain an internal
structure, which may or may not be known to the OS.
- For the OS to support
particular file formats increases the size and complexity of the OS.
- UNIX treats all files as
sequences of bytes, with no further consideration of the internal
structure. ( With the exception of executable binary programs, which it
must know how to load and find the first executable statement, etc. )
- Macintosh files have two forks -
a resource fork, and a data fork. The resource
fork contains information relating to the UI, such as icons and button
images, and can be modified independently of the data fork, which contains
the code or data as appropriate.
e. Internal File Structure
- Disk files are accessed in
units of physical blocks, typically 512 bytes or some power-of-two
multiple thereof. ( Larger physical disks use larger block sizes, to
keep the range of block numbers within the range of a 32-bit
integer. )
- Internally files are organized
in units of logical units, which may be as small as a single byte, or may
be a larger size corresponding to some data record or structure size.
- The number of logical units
which fit into one physical block determines its packing, and
has an impact on the amount of internal fragmentation ( wasted
space ) that occurs.
- As a general rule, half a
physical block is wasted for each file, and the larger the block sizes the
more space is lost to internal fragmentation.
No comments:
Post a Comment