Title: Chapter 11: FileSystem Interface
1Chapter 11 File-System Interface
- File Concept
- Access Methods
- Directory Structure
- Protection
- File-System Structure
- Allocation Methods
- Free-Space Management
- Directory Implementation
- Efficiency and Performance
- Recovery
2File Concept
- Contiguous logical address space
- Types
- Data
- numeric
- character
- binary
- Program
3File Structure
- None - sequence of words, bytes , interpretation
dependent upon creation - Simple record structure
- Lines (EOL marker)
- Fixed length (all fields same length or known
pattern) - Variable length (self-describing data sequence
of fields in the form of sequence of pairs (byte
count, indicated number of bytes). Fields can be
nested inside of field data.) - Complex Structures
- Formatted document divided into sections, each
with header describing format of section,
possibly with embedded codes as well. - Relocatable load file
- Can simulate last two with first method by
inserting appropriate control characters. - Who decides
- Operating system Must manipulate the files so
may enforce that all files have some recognizable
structure. Must differentiate executable files
from others. - Program creates files and is responsible for
processing them.
4File Attributes
- Name only information kept in human-readable
form. - Type needed for systems that support different
types. - Location pointer to file location on device.
- Size current file size.
- Protection controls who can do reading,
writing, executing. - Time, date, and user identification data for
protection, security, and usage monitoring. - Information about files are kept in the directory
structure, which is maintained on the disk.
5File Operations
- Create
- Write
- Read
- Reposition within file file seek
- Delete
- Truncate
- Open(Fi) search the directory structure on disk
for entry Fi, and move the content of entry to
memory. - Close (Fi) move the content of entry Fi in
memory to directory structure on disk.
6File Types Name, Extension
7Access Methods
- Sequential Access information in the file is
processed in order, one record after the other. - read next
- write next
- reset
- no read after last write
- (rewrite)
- Direct Access information in the file is
accessed based on the logical records/block. - read n
- write n
- position to n
- read next
- write next
- rewrite n
- n relative block number
8Sequential-access File
9Simulation of Sequential Access on a
Direct-access File
cp a variable to record the current access
position
10Index-based Access Methods
- Index which contains pointers to the various
blocks is used for fast access information from a
file.
Example of Index and Relative Files
11Directory Structure
- A collection of nodes containing information
about all files.
Directory
Files
F 1
F 2
F 3
F 4
F n
Both the directory structure and the files reside
on disk. Backups of these two structures are kept
on tapes.
12A Typical File-system Organization
- A file system is broken into partitions. A
partition is a low-level structure in which files
and the directories reside. - Some systems use partitions to provide several
separate areas with on e disk, treating each as a
separate storage device, whereas others allow
partitions to be larger than a disk so that they
can group disks into one logical structure. - Each partition contains information about files
within it. This information is kept in entries in
a device directory. - Name
- Type
- Address
- Current length
- Maximum length
- Date last accessed (for archival)
- Date last updated (for dump)
- Owner ID (who pays)
- Protection information (discuss later)
13A Typical File-system Organization (Cont.)
14Operations Performed on Directory
- Search for a file find the entry for a
particular file or files with similar names. - Create a file create new files and add them to
the dir. - Delete a file remove a file from the dir.
- List a directory list the files in a dir.
- Rename a file change the name of a file.
- Traverse the file system access every dir., and
every file within a dir. structure.
15Organize the Directory (Logically) to Obtain
- Efficiency locating a file quickly.
- Naming convenient to users.
- Two users can have same name for different files.
- The same file can have several different names.
- Grouping logical grouping of files by
properties, (e.g., all Java programs, all games,
)
16Single-Level Directory
- A single directory for all users.
Naming problem Grouping problem
17Two-Level Directory
- Separate directory for each user.
- Path name
- Can have the same file name for different user
- Efficient searching
- No grouping capability
18Tree-Structured Directories
19Tree-Structured Directories (Cont.)
- Efficient searching
- Grouping Capability
- Current directory (working directory)
- cd /spell/mail/prog
- type list
20Tree-Structured Directories (Cont.)
- Absolute path name full path name from root to
specified file. - relative path name defines a path from the
current dir. - Creating a new file is done in current directory.
- Delete a file
- rm ltfile-namegt
- Creating a new subdirectory is done in current
directory. - mkdir ltdir-namegt
- Example if in current directory /mail
- mkdir count
mail
prog
copy
prt
exp
count
Deleting mail ? deleting the entire subtree
rooted by mail.
21Acyclic-Graph Directories
- Have shared subdirectories and files.
22Acyclic-Graph Directories (Cont.)
- Two different names (aliasing)
- If dict deletes list ? dangling pointer.
- Solutions
- Backpointers, so we can delete all
pointers.Variable size records a problem. - Backpointers using a daisy chain organization.
- Entry-hold-count solution.
23General Graph Directory
24General Graph Directory (Cont.)
- How do we guarantee no cycles?
- Allow only links to file not subdirectories.
- Garbage collection.
- Every time a new link is added use a cycle
detectionalgorithm to determine whether it is OK.