|
|
|
|
Used for input to a program |
|
Output of application saved in a file for
long-term storage |
|
|
|
|
|
|
Field |
|
basic element of data |
|
contains a single value |
|
characterized by its length and data type |
|
Record |
|
collection of related fields |
|
treated as a unit |
|
Example: employee record |
|
|
|
|
|
File |
|
collection of similar records |
|
treated as a single entity |
|
have unique file names |
|
may restrict access |
|
Database |
|
collection of related data |
|
relationships exist among elements |
|
|
|
|
The way a user of application may access files |
|
Programmer does not need to develop file
management software |
|
|
|
|
|
Lowest level |
|
Communicates directly with peripheral devices |
|
Responsible for starting I/O operations on a
device |
|
Processes the completion of an I/O request |
|
|
|
|
Physical I/O |
|
Deals with exchanging blocks of data |
|
Concerned with the placement of blocks |
|
Concerned with buffering blocks in main memory |
|
|
|
|
Responsible for file I/O initiation and
termination |
|
Control structures are maintained |
|
Concerned with scheduling access to optimize
performance |
|
Part of the operating system |
|
|
|
|
Allows users and applications to access records |
|
Maintains basic data about file |
|
|
|
|
Reflect different file structures |
|
Different ways to store and process data |
|
|
|
|
Identify and locate a selected file |
|
Use a directory to describe the location of all
files plus their attributes |
|
On a shared system describe user access control |
|
Blocking for access to files |
|
Allocate files to free blocks |
|
Manage free storage for available blocks |
|
|
|
|
|
Contains information about files |
|
attributes |
|
location |
|
ownership |
|
Directory itself is a file owned by the
operating system |
|
Provides mapping between file names and the
files themselves |
|
|
|
|
List of entries, one for each file |
|
Sequential file with the name of the file
serving as the key |
|
Provides no help in organizing the files |
|
Forces user to be careful not to use the same
name for two different files |
|
|
|
|
|
One directory for each user and a master
directory |
|
Master directory contains entry for each user |
|
provides address and access control information |
|
Each user directory is a simple list of files
for that user |
|
Still provides no help in structuring
collections of files |
|
|
|
|
Master directory with user directories
underneath it |
|
Each user directory may have subdirectories and
files as entries |
|
|
|
|
|
|
Files can be located by following a path from
the root, or master, directory down various branches |
|
this is the pathname for the file |
|
Can have several files with the same file name
as long as they have unique path names |
|
|
|
|
Current directory is the working directory |
|
Files are referenced relative to the working
directory |
|
|
|
|
Way to control access to a particular file |
|
Users or groups of users are granted certain
access rights to a file |
|
|
|
|
|
None |
|
user may not know of the existence of the file |
|
user is not allowed to read the user directory
that includes the file |
|
Knowledge |
|
user can only determine that the file exists and
who its owner is |
|
|
|
|
|
Execution |
|
the user can load and execute a program but
cannot copy it |
|
Reading |
|
the user can read the file for any purpose,
including copying and execution |
|
Appending |
|
the user can add data to the file but cannot
modify or delete any of the file’s contents |
|
|
|
|
|
Updating |
|
the user can modify, deleted, and add to the
file’s data. This includes creating
the file, rewriting it, and removing all or part of the data |
|
Changing protection |
|
user can change access rights granted to other
users |
|
Deletion |
|
user can delete the file |
|
|
|
|
|
|
Owners |
|
has all rights previously listed |
|
may grant rights to others using the following
classes of users |
|
specific user |
|
user groups |
|
all for public files |
|
|
|
|
User may lock entire file when it is to be
updated |
|
User may lock the individual records during the
update |
|
Mutual exclusion and deadlock are issues for
shared access |
|
|
|
|
|
|
|
Space must be allocated to files |
|
Must keep track of the space available for
allocation |
|
Space is allocated as one or more contiguous
units or portions |
|
|
|
|
Need the maximum size for the file at the time
of creation |
|
Difficult to reliably estimate the maximum
potential size of the file |
|
Tend to overestimated file size so as not to run
out of space |
|
|
|
|
Contiguity of space increases performance |
|
Large number of small portions increases the
size of tables needed |
|
Fixed-size simplifies the reallocation of space |
|
Variable-size minimizes waste of unused storage |
|
|
|
|
|
|
Contiguous allocation |
|
single set of blocks is allocated to a file at
the time of creation |
|
only a single entry in the file allocation table |
|
starting block and length of the file |
|
Fragmentation will occur |
|
Will become difficult to find contiguous blocks
of sufficient length |
|
|
|
|
|
|
|
Chained allocation |
|
allocation on basis of individual block |
|
each block contains a pointer to the next block
in the chain |
|
only single entry in the file allocation table |
|
starting block and length of file |
|
No fragmentation |
|
Any free block can be added to the chain |
|
No accommodation of the principle of locality |
|
|
|
|
|
|
Indexed allocation |
|
file allocation table contains a separate
one-level index for each file |
|
the index has one entry for each portion
allocated to the file |
|
the file allocation table contains block number
for the index |
|
|
|