Directory Structures :
Information in a Device Directory
Date last accessed (for archival)
Date last updated (for dump)
Owner ID (who pays)
Protection information (discuss later)
Operations Performed on Directory
Search for a file
Create a file
Delete a file
List a directory
Rename a file
Traverse the file system
Organize the Directory (Logically) to Obtain
Efficiency – locating a file quickly.
Naming – convenient to users.
1. Two users can have same name for different files.
2. The same file can have several different names.
Grouping – logical grouping of files by properties, (e.g., all Java programs, all games, …)
A single directory for all users.
Separate directory for each user.
•Can have the same file name for different user
•No grouping capability
Current directory (working directory)
1.cd /spell/mail / prog
2. type list
3. Absolute or relative path name
4. Creating a new file is done in current directory.
5. Delete a file
Creating a new subdirectory is done in current directory.
Have shared subdirectories and files.
Two different names (aliasing)
If dict deletes list _ dangling pointer.
Variable size records a problem.
1. Back pointers using a daisy chain organization.
2. Entry-hold-count solution.
General Graph Directory
How do we guarantee no cycles?
1. Allow only links to file not subdirectories.
2. Garbage collection.
3. Every time a new link is added use a cycle detection algorithm to determine whether it is