0% found this document useful (0 votes)
29 views16 pages

Osunit 6

The document provides an overview of file systems, detailing their role in file management, including file structure, space recovery, and data location tracking. It explains the attributes of files, operations that can be performed on them, and various file access and allocation methods. Additionally, it discusses directory structures, including single-level, two-level, and tree-structured directories, highlighting their advantages and disadvantages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views16 pages

Osunit 6

The document provides an overview of file systems, detailing their role in file management, including file structure, space recovery, and data location tracking. It explains the attributes of files, operations that can be performed on them, and various file access and allocation methods. Additionally, it discusses directory structures, including single-level, two-level, and tree-structured directories, highlighting their advantages and disadvantages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

File Systems

File system is the part of the operating system which is responsible for file
management. It provides a mechanism to store the data and access to the file
contents including data and programs. Some Operating systems treats
everything as a file for example Ubuntu.
The File system takes care of the following issues
 File Structure
We have seen various data structures in which the file can be stored.
The task of the file system is to maintain an optimal file structure.
 Recovering Free space
Whenever a file gets deleted from the hard disk, there is a free space
created in the disk. There can be many such spaces which need to be
recovered in order to reallocate them to other files.
 disk space assignment to the files
The major concern about the file is deciding where to store the files on
the hard disk. There are various disks scheduling algorithm which will be
covered later in this tutorial.
 tracking data location
A File may or may not be stored within only one block. It can be
stored in the non contiguous blocks on the disk. We need to keep track of
all the blocks on which the part of the files reside.

What is a File ?
A file can be defined as a data structure which stores the sequence of records.
Files are stored in a file system, which may exist on a disk or in the main
memory. Files can be simple (plain text) or complex (specially-formatted).

The collection of files is known as Directory. The collection of directories at the


different levels, is known as File System.
os File Management
Attributes of the File
1.Name
Every file carries a name by which the file is recognized in the file system. One
directory cannot have two files with the same name.
2.Identifier
Along with the name, Each File has its own extension which identifies the type
of the file. For example, a text file has the extension .txt, A video file can have
the extension .mp4.
3.Type
In a File System, the Files are classified in different types such as video files,
audio files, text files, executable files, etc.
4.Location
In the File System, there are several locations on which, the files can be stored.
Each file carries its location as its attribute.
5.Size
The Size of the File is one of its most important attribute. By size of the file, we
mean the number of bytes acquired by the file in the memory
6.Protection
The Admin of the computer may want the different protections for the
different files. Therefore each file carries its own set of permissions to the
different group of Users.
7.Time and Date
Every file carries a time stamp which contains the time and date on which the
file is last modified.

Operations on the File


A file is a collection of logically related data that is recorded on the secondary
storage in the form of sequence of operations. The content of the files are
defined by its creator who is creating the file. The various operations which can
be implemented on a file such as read, write, open and close etc. are called file
operations. These operations are performed by the user by using the
commands provided by the operating system. Some common operations are as
follows:

Operations on the File


1.Create operations
This operation is used to create a file in the file system. It is the most widely
used operation performed on the file system. To create a new file of a
particular type the associated application program calls the file system. This file
system allocates space to the file. As the file system knows the format of
directory structure, so entry of this new file is made into the appropriate
directory.
2. Open operation:
This operation is the common operation performed on the file. Once the file is
created, it must be opened before performing the file processing operations.
When the user wants to open a file, it provides a file name to open the
particular file in the file system. It tells the operating system to invoke the
open system call and passes the file name to the file system.
3. Write operation:
This operation is used to write the information into a file. A system call write is
issued that specifies the name of the file and the length of the data has to be
written to the file. Whenever the file length is increased by specified value and
the file pointer is repositioned after the last byte written.

4. Read operation
this operation reads the contents from a file. A Read pointer is maintained by
the OS, pointing to the position up to which the data has been read.
5. Re-position or Seek operation:
The seek system call re-positions the file pointers from the current position to
a specific place in the file i.e. forward or backward depending upon the user's
requirement. This operation is generally performed with those file
management systems that support direct access files.
6. Delete operation:
Deleting the file will not only delete all the data stored inside the file it is also
used so that disk space occupied by it is freed. In order to delete the specified
file the directory is searched. When the directory entry is located, all the
associated file space and the directory entry is released.
7. Truncate operation:
Truncating is simply deleting the file except deleting attributes. The file is not
completely deleted although the information stored inside the file gets
replaced.

8. Close operation:
When the processing of the file is complete, it should be closed so that all the
changes made permanent and all the resources occupied should be released.
On closing it deallocates all the internal descriptors that were created when
the file was opened.
9. Append operation:
This operation adds data to the end of the file.
10. Rename operation:
This operation is used to rename the existing file.

File System Structure


File System provide efficient access to the disk by allowing data to be stored,
located and retrieved in a convenient way. A file System must be able to store
the file, locate the file and retrieve the file.
Most of the Operating Systems use layering approach for every task including
file systems. Every layer of the file system is responsible for some activities.
The image shown below, elaborates how the file system is divided in different
layers, and also the functionality of each layer.
 When an application program asks for a file, the first request is directed
to the logical file system. The logical file system contains the Meta data
of the file and directory structure. If the application program doesn't
have the required permissions of the file then this layer will throw an
error. Logical file systems also verify the path to the file.
 Generally, files are divided into various logical blocks. Files are to be
stored in the hard disk and to be retrieved from the hard disk. Hard disk
is divided into various tracks and sectors. Therefore, in order to store
and retrieve the files, the logical blocks need to be mapped to physical
blocks. This mapping is done by File organization module. It is also
responsible for free space management.
 Once File organization module decided which physical block the
application program needs, it passes this information to basic file
system. The basic file system is responsible for issuing the commands to
I/O control in order to fetch those blocks.
 I/O controls contain the codes by using which it can access hard disk.
These codes are known as device drivers. I/O controls are also
responsible for handling interrupts.

6.2File Access Methods


Let's look at various ways to access files stored in secondary memory

Sequential Method

Most of the operating systems access the file sequentially. In other words, we
can say that most of the files need to be accessed sequentially by the operating
system.
In sequential access, the OS read the file word by word. A pointer is
maintained which initially points to the base address of the file. If the user
wants to read first word of the file then the pointer provides that word to the
user and increases its value by 1 word. This process continues till the end of
the file.

Modern word systems do provide the concept of direct access and indexed
access but the most used method is sequential access due to the fact that most
of the files such as text files, audio files, video files, etc need to be sequentially
accessed.

Direct Access
The Direct Access is mostly required in the case of database systems. In most
of the cases, we need filtered information from the database. The sequential
access can be very slow and inefficient in such cases.

Suppose every block of the storage stores 4 records and we know that the
record we needed is stored in 10th block. In that case, the sequential access
will not be implemented because it will traverse all the blocks in order to
access the needed record.

Direct access will give the required result despite of the fact that the operating
system has to perform some complex tasks such as determining the desired
block number. However, that is generally implemented in database
applications.
Allocation Methods
There are various methods which can be used to allocate disk space to the
files. Selection of an appropriate allocation method will significantly affect the
performance and efficiency of the system. Allocation method provides a way in
which the disk will be utilized and the files will be accessed.
 Contiguous Allocation
If the blocks are allocated to the file in such a way that all the logical blocks of
the file get the contiguous physical block in the hard disk then such allocation
scheme is known as contiguous allocation.
In the image shown below, there are three files in the directory. The starting
block and the length of each file are mentioned in the table. We can check in
the table that the contiguous blocks are assigned to each file as per its need.
Advantages
 It is simple to implement.
 We will get Excellent read performance.
 Supports Random Access into files.
Disadvantages
 The disk will become fragmented.
 It may be difficult to have a file grow.

 Linked List Allocation


Linked List allocation solves all problems of contiguous allocation. In linked list
allocation, each file is considered as the linked list of disk blocks. However, the
disks blocks allocated to a particular file need not to be contiguous on the disk.
Each disk block allocated to a file contains a pointer which points to the next
disk block allocated to the same file.
Advantages
 There is no external fragmentation with linked allocation.
 Any free block can be utilized in order to satisfy the file block requests.
 File can continue to grow as long as the free blocks are available.
 Directory entry will only contain the starting block address.
Disadvantages
 Random Access is not provided.
 Pointers require some space in the disk blocks.
 Any of the pointers in the linked list must not be broken otherwise the
file will get corrupted.
 Need to traverse each block.

Indexed Allocation Scheme


Instead of maintaining a file allocation table of all the disk pointers, Indexed
allocation scheme stores all the disk pointers in one of the blocks called as
indexed block. Indexed block doesn't hold the file data, but it holds the
pointers to all the disk blocks allocated to that particular file. Directory entry
will only contain the index block address.
Advant
ages
 Supports direct access
 A bad data block causes the lost of only that block.
Disadvantages
 A bad index block could cause the lost of entire file.
 Size of a file depends upon the number of pointers, a index block can
hold.
 Having an index block for a small file is totally wastage.
 More pointer overhead

6.3 Directory Structure


What is a directory?
Directory can be defined as the listing of the related files on the disk. The
directory may store some or the entire file attributes.
To get the benefit of different file systems on the different operating systems,
A hard disk can be divided into the number of partitions of different sizes. The
partitions are also called volumes or mini disks.
Each partition must have at least one directory in which, all the files of the
partition can be listed. A directory entry is maintained for each file in the
directory which stores all the information related to that file.

A directory can be viewed as a file which contains the Meta data of the bunch
of files.
Every Directory supports a number of common operations on the file:
1. File Creation
2. Search for the file
3. File deletion
4. Renaming the file
5. Traversing Files
6. Listing of files

1. Single Level Directory


The simplest method is to have one big list of all the files on the disk. The
entire system will contain only one directory which is supposed to mention all
the files present in the file system. The directory contains one entry per each
file present on the file system.
This

This type of directories can be used for a simple system.

Advantages
1. Implementation is very simple.
2. If the sizes of the files are very small then the searching becomes faster.
3. File creation, searching, deletion is very simple since we have only one
directory.
Disadvantages
1. We cannot have two files with the same name.
2. The directory may be very big therefore searching for a file may take so
much time.
3. Protection cannot be implemented for multiple users.
4. There are no ways to group same kind of files.
5. Choosing the unique name for every file is a bit complex and limits the
number of files in the system because most of the Operating System
limits the number of characters used to construct the file name.

2.Two Level Directory


In two level directory systems, we can create a separate directory for each
user. There is one master directory which contains separate directories
dedicated to each user. For each user, there is a different directory present at
the second level, containing group of user's file. The system doesn't let a user
to enter in the other user's directory without permission.
Characteristics of two level directory system
1. Each files has a path name as /User-name/directory-name/
2. Different users can have the same file name.
3. Searching becomes more efficient as only one user's list needs to be
traversed.
4. The same kind of files cannot be grouped into a single directory for a
particular user.
Every Operating System maintains a variable as PWD which contains the
present directory name (present user name) so that the searching can be done
appropriately.

3.Tree Structured Directory


In Tree structured directory system, any directory entry can either be a file or
sub directory. Tree structured directory system overcomes the drawbacks of
two level directory system. The similar kind of files can now be grouped in one
directory.
Each user has its own directory and it cannot enter in the other user's
directory. However, the user has the permission to read the root's data but he
cannot write or modify this. Only administrator of the system has the complete
access of root directory.
Searching is more efficient in this directory structure. The concept of current
working directory is used. A file can be accessed by two types of path, either
relative or absolute.
Absolute path is the path of the file with respect to the root directory of the
system while relative path is the path with respect to the current working
directory of the system. In tree structured directory systems, the user is given
the privilege to create the files as well as directories.

You might also like