Directory and Disk Structure in Operating System

A storage device can be used in its entirety for a file system. It can also be subdivided for finer-grained control. For example, a disk can be partitioned into quarters, and each quarter can hold a separate file system. Storage devices can also be collected together into RAID sets that provide protection from the failure of a single disk Sometimes, disks are subdivided and also collected into RAID sets

Example of index and relative files
Example of index and relative files.

Partitioning is useful for limiting the sizes of individual file systems, putting multiple file-system types on the same device, or leaving part of the device available for other uses, such as swap space or unformatted (raw) disk space. A file system can be created on each of these parts of the disk. Any entity containing a file system is generally known as a volume. The volume may be a subset of a device, a whole device, or multiple devices linked together into a RAID set. Each volume can be thought of as a virtual disk. Volumes can also store multiple operating systems, allowing a system to boot and run more than one operating system

Types of logical structure of a directory

Single-Level Directory

A single-level directory has significant limitations, however, when the number of files increases or when the system has more than one user. Since all files are in the same directory, they must have unique names. If two users call their data file test.txt, then the unique-name rule is violated.

Single-level directory

For example, in one programming class, 23 students called the program for their second assignment prog2.c; another 11 called it assign2.c. Fortunately, most file systems support file names of up to 255 characters, so it is relatively easy to select unique file names

Two-Level Directory

In the two-level directory structure, each user has his own user file directory (UFD). The UFDs have similar structures, but each lists only the files of a single user. When a user job starts or a user logs in, the system’s master file directory (MFD) is searched. The MFD is indexed by user name or account number, and each entry points to the UFD for that user

Two-level directory structure
Two-level directory structure

Tree-Structured Directories

A directory (or subdirectory) contains a set of files or subdirectories. 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 entry defines the entry as a file (0) or as a subdirectory (1). Special system calls are used to create and delete directories

Tree-structured directory structure
Tree-structured directory structure

Acyclic-Graph Directories

A tree structure prohibits the sharing of files or directories. An acyclic graph —that is, a graph with no cycles—allows directories to share subdirectories and files . The same file or subdirectory may be in two different directories. The acyclic graph is a natural generalization of the tree-structured directory scheme.

Acyclic-graph directory structure.
Acyclic-graph directory structure.

General Graph Directory

The primary advantage of an acyclic graph is the relative simplicity of the algorithms to traverse the graph and to determine when there are no more references to a file. We want to avoid traversing shared sections of an acyclic graph twice, mainly for performance reasons. If we have just searched a major shared subdirectory for a particular file without finding it, we want to avoid searching that subdirectory again; the second search would be a waste of time

General graph directory
General graph directory

FAQs

What is a directory in an operating system?

directory, also known as a folder, is a container used in an operating system to organize files and other directories. It provides a hierarchical structure to store and manage files, making it easier for users to locate and access data.

What is the purpose of a directory in an operating system?

The primary purpose of a directory is to organize and categorize files. It allows users to logically group related files, making it easier to navigate through the file system and find specific data quickly.

How are directories organized in an operating system?

Directories are organized in a hierarchical structure, commonly represented as a tree-like structure. The top-level directory is called the root directory, and it branches out into subdirectories. Each directory can contain files and additional subdirectories.

What is the significance of the root directory?

The root directory is the starting point of the directory hierarchy. It is denoted by a forward slash (/) in Unix-like systems or a backslash () in Windows systems. All other directories and files are located within or below the root directory.

What is the difference between an absolute path and a relative path in a directory structure?

An absolute path specifies the complete directory path from the root directory to a specific file or directory. It provides the exact location of the file or directory on the system. In contrast, a relative path specifies the path to a file or directory relative to the current working directory.

How does a directory entry store information about a file?

A directory entry, also known as a file entry or inode, contains metadata about a file, such as its name, size, permissions, creation/modification timestamps, and pointers to the location of the file’s data on the disk.

What is the purpose of a file allocation table (FAT) in a disk structure?

A file allocation table is a data structure used by some file systems to keep track of the allocation status of disk blocks. It maintains a record of which disk blocks are allocated to which files and which blocks are free for use.

What are the different disk allocation methods used in operating systems?

There are several disk allocation methods, including contiguous allocation, linked allocation, indexed allocation, and more. Each method has its advantages and trade-offs in terms of storage efficiency, file access speed, and file fragmentation.

What is disk fragmentation, and how does it affect file performance?

Disk fragmentation occurs when file data is scattered in non-contiguous blocks on a disk. It can impact file performance as it requires additional time to access scattered data, leading to slower read/write operations. Defragmentation is a process used to reorganize fragmented files for improved performance.

Can directories have subdirectories?

Yes, directories can have subdirectories. This feature allows for the creation of a nested directory structure, enabling better organization and management of files within a file system.

Can files exist without being in a directory?

In most operating systems, files must be associated with a directory and located within the directory hierarchy. However, some specialized file systems may allow files to exist without a specific directory association.

Can directories have the same name?

Directories can have the same name as long as they are located in different parent directories. The full path of a directory, including its parent directories, must be unique to avoid conflicts.

Leave a Comment