- There are many directory structure schemes to implement the behavior of directories. Some common implementation schemes are as follow:
Single Level Directory Structure
- This is the simplest directory structure to implement.
- All files are contained in the same directory.
- Limitation of single level directory structure is that when number of files increase or when the system has more than one user, it becomes unmanageable.
- Since all files are in this same directory, the name must be unique.
- File names are generally selected to reflect the contents of the file, they are often limited in length.
- Dos allows only 11 character file name and UNIX allows 255 characters.
Two Level Directory Structure
- A single level directory has file names collision between different users.
- One solution is to create a separate directory for each user.
- In the 2 level directory structure each user has its own user file directory (UFD).
- Each UFD has similar structure but list only the files of a single user.
- When a user job start or user logs in, the system master file directory (MFD) is searched.
- When a user refers to any specific file only his won UFD is searched.
- Thus different users will have files with the same name.
- Although the 2 level directory structure solves the name collision problem but it has still disadvantages.
- This structure effectively isolated one user from another.
- This isolation is an advantage when the users are completely independent.
- But it is a disadvantage when the users want to cooperate on some task and want to excess each other’s files.
- If excess is to be permitted, one user must have the ability to name a file in another user directory.
- To name a particular file uniquely in a 2 level directory, we must give both the user name and file name.
- A 2 level directory can be thought of as a tree and as an inverted tree the height of it is 2.
- The root of the tree is MFD.
- Its direct descendants is one of the UFD’s.
- The descendants of the UFD are the files and files are leaves of the trees.
- Thus a user name and a file name define a path name.
- Every file in this system has path name.
- To name a uniquely user must known the path name of the file desired.
- System files are part of the system loader, assembler, compilers, utility, routines, libraries and so on. They are generally defined as files.
- When the appropriate commands are given to the o/s then these files are read and execute.
Tree Structure Directory
- It allows user to create their own sub-directories and to organize their files accordingly.
- This is the natural and most common directory structure organization.
- It has no any fixed height, it can be extended.
- The Ms Dos system is structured as a tree.
- The tree has a root directory.
- Every file in this system has unique path name.
- A path name is the path from the root through all the sub-directories to a specified file.
- A directory contains a set of files or sub directories.
- A directory is simply another file but it is treated in a special way.
- All directories have the same internal format.
- One bit in each directory defines the entry as a file (0) or as a sub directory (1).
- Special system calls are used to create and delete directories.
- There are two ways to specify a file path:
Absolute Path
- In this path we can reach to a specified file from the main or root directory.
- In this case current directory is not involved; file path is specified starting from the root directory.
Relative Path
- The user working in any directory that directory is called current directory.
- To reach to a specified file we have to search from the current directory.