Os Unit 5 - 1 - 1727324915779
Os Unit 5 - 1 - 1727324915779
Os Unit 5 - 1 - 1727324915779
Author C Append
Close
Compiled, machine
Object obj, o
language not linked
File type Usual extension Function
Commands to the
Batch bat, sh
command interpreter
For containing
Multimedia mpeg, mov, rm
audio/video information
It contains libraries of
Library lib, a ,so, dll
routines for programmers
Two-Level Directory
In this separate directories for each user is maintained.
Path name: Due to two levels there is a path name for every file to locate that
file.
Now, we can have the same file name for different users.
Searching is efficient in this method.
Tree-Structured Directory
The directory is maintained in the form of a tree. Searching is efficient and also
there is grouping capability. We have absolute or relative path name for a file.
File Allocation Methods
There are several types of file allocation methods. These are mentioned below.
Continuous Allocation
Linked Allocation(Non-contiguous allocation)
Indexed Allocation
Continuous Allocation
A single continuous set of blocks is allocated to a file at the time of file creation.
Thus, this is a pre-allocation strategy, using variable size portions. The file
allocation table needs just a single entry for each file, showing the starting block
and the length of the file. This method is best from the point of view of the
individual sequential file. Multiple blocks can be read in at a time to improve I/O
performance for sequential processing. It is also easy to retrieve a single block.
For example, if a file starts at block b, and the ith block of the file is wanted, its
location on secondary storage is simply b+i-1.
Disadvantages of Continuous Allocation
External fragmentation will occur, making it difficult to find contiguous
blocks of space of sufficient length. A compaction algorithm will be necessary
to free up additional space on the disk.
Also, with pre-allocation, it is necessary to declare the size of the file at the
time of creation.
Linked Allocation(Non-Contiguous Allocation)
Allocation is on an individual block basis. Each block contains a pointer to the
next block in the chain. Again the file table needs just a single entry for each file,
showing the starting block and the length of the file. Although pre-allocation is
possible, it is more common simply to allocate blocks as needed. Any free block
can be added to the chain. The blocks need not be continuous. An increase in file
size is always possible if a free disk block is available. There is no external
fragmentation because only one block at a time is needed but there can be internal
fragmentation but it exists only in the last disk block of the file.
Disadvantage Linked Allocation(Non-contiguous allocation)
Internal fragmentation exists in the last disk block of the file.
There is an overhead of maintaining the pointer in every disk block.
If the pointer of any disk block is lost, the file will be truncated.
It supports only the sequential access of files.
Indexed Allocation
It addresses many of the problems of contiguous and chained allocation. In this
case, the file allocation table contains a separate one-level index for each file:
The index has one entry for each block allocated to the file. The allocation may
be on the basis of fixed-size blocks or variable-sized blocks. Allocation by blocks
eliminates external fragmentation, whereas allocation by variable-size blocks
improves locality. This allocation technique supports both sequential and direct
access to the file and thus is the most popular form of file allocation.
Disk Free Space Management
Just as the space that is allocated to files must be managed, so the space that is
not currently allocated to any file must be managed. To perform any of the file
allocation techniques, it is necessary to know what blocks on the disk are
available. Thus we need a disk allocation table in addition to a file allocation
table. The following are the approaches used for free space management.
1. Bit Tables: This method uses a vector containing one bit for each block on the
disk. Each entry for a 0 corresponds to a free block and each 1 corresponds to
a block in use.
For example 00011010111100110001
In this vector every bit corresponds to a particular block and 0 implies that that
particular block is free and 1 implies that the block is already occupied. A bit
table has the advantage that it is relatively easy to find one or a contiguous
group of free blocks. Thus, a bit table works well with any of the file
allocation methods. Another advantage is that it is as small as possible.
2. Free Block List: In this method, each block is assigned a number sequentially
and the list of the numbers of all free blocks is maintained in a reserved block
of the disk.
Advantages of File System
Organization: A file system allows files to be organized into directories and
subdirectories, making it easier to manage and locate files.
Data protection: File systems often include features such as file and folder
permissions, backup and restore, and error detection and correction, to protect
data from loss or corruption.
Improved performance: A well-designed file system can improve the
performance of reading and writing data by organizing it efficiently on disk.
Disadvantages of File System
Compatibility issues: Different file systems may not be compatible with each
other, making it difficult to transfer data between different operating systems.
Disk space overhead: File systems may use some disk space to store
metadata and other overhead information, reducing the amount of space
available for user data.
Vulnerability: File systems can be vulnerable to data corruption, malware,
and other security threats, which can compromise the stability and security of
the system.
Advantages:
Both the Sequential and Direct Accesses are supported by this. For direct
access, the address of the kth block of the file which starts at block b can
easily be obtained as (b+k).
This is extremely fast since the number of seeks are minimal because of
contiguous allocation of file blocks.
Disadvantages:
This method suffers from both internal and external fragmentation. This
makes it inefficient in terms of memory utilization.
Increasing file size is difficult because it depends on the availability of
contiguous memory at a particular instance.
2. Linked List Allocation
In this scheme, each file is a linked list of disk blocks which need not
be contiguous. The disk blocks can be scattered anywhere on the disk.
The directory entry contains a pointer to the starting and the ending file
block. Each block contains a pointer to the next block occupied by the file.
The file ‘jeep’ in following image shows how the blocks are randomly
distributed. The last block (25) contains -1 indicating a null pointer and
does not point to any other block.
Advantages:
This is very flexible in terms of file size. File size can be increased easily
since the system does not have to look for a contiguous chunk of memory.
This method does not suffer from external fragmentation. This makes it
relatively better in terms of memory utilization.
Disadvantages:
Because the file blocks are distributed randomly on the disk, a large number of
seeks are needed to access every block individually. This makes linked
allocation slower.
It does not support random or direct access. We can not directly access the
blocks of a file. A block k of a file can be accessed by traversing k blocks
sequentially (sequential access ) from the starting block of the file via block
pointers.
Pointers required in the linked allocation incur some extra overhead.
3. Indexed Allocation
In this scheme, a special block known as the Index block contains the pointers to
all the blocks occupied by a file. Each file has its own index block. The ith entry
in the index block contains the disk address of the ith file block. The directory
entry contains the address of the index block as shown in the image:
Advantages:
This supports direct access to the blocks occupied by the file and therefore
provides fast access to the file blocks.
It overcomes the problem of external fragmentation.
Disadvantages:
The pointer overhead for indexed allocation is greater than linked allocation.
For very small files, say files that expand only 2-3 blocks, the indexed
allocation would keep one entire block (index block) for the pointers which is
inefficient in terms of memory utilization. However, in linked allocation we
lose the space of only 1 pointer per block.
For files that are very large, single index block may not be able to hold all the
pointers.
Following mechanisms can be used to resolve this:
1. Linked scheme: This scheme links two or more index blocks together for
holding the pointers. Every index block would then contain a pointer or the
address to the next index block.
2. Multilevel index: In this policy, a first level index block is used to point to
the second level index blocks which inturn points to the disk blocks occupied
by the file. This can be extended to 3 or more levels depending on the
maximum file size.
3. Combined Scheme: In this scheme, a special block called the Inode
(information Node) contains all the information about the file such as the
name, size, authority, etc and the remaining space of Inode is used to store the
Disk Block addresses which contain the actual file as shown in the image
below. The first few of these pointers in Inode point to the direct blocks i.e
the pointers contain the addresses of the disk blocks that contain data of the
file. The next few pointers point to indirect blocks. Indirect blocks may be
single indirect, double indirect or triple indirect. Single Indirect block is the
disk block that does not contain the file data but the disk address of the blocks
that contain the file data. Similarly, double indirect blocks do not contain the
file data but the disk address of the blocks that contain the address of the
blocks containing the file data.
Advantages –
Simple to understand.
Finding the first free block is efficient. It requires scanning the words (a
group of 8 bits) in a bitmap for a non-zero word. (A 0-valued word has all
bits 0). The first free block is then found by scanning for the first 1 bit in
the non-zero word.
2. Linked List – In this approach, the free disk blocks are linked together i.e. a
free block contains a pointer to the next free block. The block number of the
very first disk block is stored at a separate location on disk and is also cached
in memory.
3. In Figure-2, the free space list head points to Block 5 which points to Block 6,
the next free block and so on. The last free block would contain a null pointer
indicating the end of free list. A drawback of this method is the I/O required
for free space list traversal.
4. Grouping – This approach stores the address of the free blocks in the first free
block. The first free block stores the address of some, say n free blocks. Out of
these n blocks, the first n-1 blocks are actually free and the last block contains
the address of next free n blocks. An advantage of this approach is that the
addresses of a group of free disk blocks can be found easily.
5. Counting – This approach stores the address of the first free disk block and a
number n of free contiguous disk blocks that follow the first block. Every
entry in the list would contain:
1. Address of first free disk block
2. A number n
Here are some advantages and disadvantages of free space management
techniques in operating systems:
Advantages:
Disadvantages:
Raid Controller
1. RAID-0 (Stripping)
Blocks are “stripped” across disks.
RAID-0
Raid-0
Evaluation
Reliability: 0
There is no duplication of data. Hence, a block once lost cannot be recovered.
Capacity: N*B
The entire space is being used to store data. Since there is no duplication, N
disks each having B blocks are fully utilized.
Advantages
1. It is easy to implement.
2. It utilizes the storage capacity in a better way.
Disadvantages
1. A single drive loss can result in the complete failure of the system.
2. Not a good choice for a critical system.
2. RAID-1 (Mirroring)
More than one copy of each block is stored in a separate disk. Thus, every
block has two (or more) copies, lying on different disks.
Raid-1
Here Disk 3 contains the Parity bits for Disk 0, Disk 1, and Disk 2. If data loss
occurs, we can construct it with Disk 3.
Advantages
1. Data can be transferred in bulk.
2. Data can be accessed in parallel.
Disadvantages
1. It requires an additional drive for parity.
2. In the case of small-size files, it performs slowly.
5. RAID-4 (Block-Level Stripping with Dedicated Parity)
Instead of duplicating data, this adopts a parity-based approach.
Raid-4
Raid-4
Assume that in the above figure, C3 is lost due to some disk failure. Then, we
can recompute the data bit stored in C3 by looking at the values of all the
other columns and the parity bit. This allows us to recover lost data.
Evaluation
Reliability: 1
RAID-4 allows recovery of at most 1 disk failure (because of the way parity
works). If more than one disk fails, there is no way to recover the data.
Capacity: (N-1)*B
One disk in the system is reserved for storing the parity. Hence, (N-1) disks
are made available for data storage, each disk having B blocks.
Advantages
1. It helps in reconstructing the data if at most one data is lost.
Disadvantages
1. It can’t help in reconstructing when more than one data is lost.
6. RAID-5 (Block-Level Stripping with Distributed Parity)
This is a slight modification of the RAID-4 system where the only difference
is that the parity rotates among the drives.
Raid-5
Raid-6
Advantages
1. Very high data Accessibility.
2. Fast read data transactions.
Disadvantages
1. Due to double parity, it has slow write data transactions.
2. Extra space is required.
Advantages of RAID
Data redundancy: By keeping numerous copies of the data on many disks,
RAID can shield data from disk failures.
Performance enhancement: RAID can enhance performance by distributing
data over several drives, enabling the simultaneous execution of
several read/write operations.
Scalability: RAID is scalable, therefore by adding more disks to the array, the
storage capacity may be expanded.
Versatility: RAID is applicable to a wide range of devices, such as
workstations, servers, and personal PCs
Disadvantages of RAID
Cost: RAID implementation can be costly, particularly for arrays with large
capacities.
Complexity: The setup and management of RAID might be challenging.
Decreased performance: The parity calculations necessary for some RAID
configurations, including RAID 5 and RAID 6, may result in a decrease in
speed.
Single point of failure: RAID is not a comprehensive backup solution, while
offering data redundancy. The array’s whole contents could be lost if the
RAID controller malfunctions.
Conclusion
In Conclusion, RAID technology in database management systems distributes
and replicates data across several drives to improve data performance and
reliability. It is a useful tool in contemporary database setups since it is essential
to preserving system availability and protecting sensitive data.