File system. Introduction The file system consists of two distinct parts: a collection of files,...

46
File system

Transcript of File system. Introduction The file system consists of two distinct parts: a collection of files,...

Page 1: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File system

Page 2: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Introduction • The file system consists of two distinct parts: a collection of files,

each storing related data, and a directory structure, which organizes and provides information about all the files in the system.

• Some file systems have a third part, partitions, which are used to separate physically or logically large collections of directories.

• Computers can store information on several different storage media, such as magnetic disks, magnetic tapes, and optical disks.

• Files are mapped by the operating system onto physical devices. These storage devices are usually nonvolatile, so the contents are persistent through power failures and system reboots.

Page 3: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File structure • A file is a named collection of related information that is recorded

on secondary storage. (sequence of words, bytes)• From a user's perspective, a file is the smallest allotment of logical

secondary storage;• files represent programs (both source and object forms) and data.

Data files may be numeric, alphabetic, alphanumeric, or binary.• Files may be free form, such as text files, or may be formatted

rigidly. In general, a file is a sequence of bits, bytes, lines, or records, the meaning of which is defined by the file's creator and user.

• Many different types of information may be stored in a file- source programs, object programs, executable programs, numeric data, text, payroll records, graphic images, sound recordings, and so on.

Page 4: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File concepts • A file has a certain defined structure according to its type. • Simple record structure: lines, fixed length, variable length.• Complex structure: formatted document, relocatable load file• A text file is a sequence of characters organized into lines (and

possibly pages). • A source file is a sequence of subroutines and functions, each of

which is further organized as declarations followed by executable statements.

• An object file is a sequence of bytes organized into blocks understandable by the system's linker.

• An executable file is a series of code sections that the loader can bring into memory and execute.

• Operating system and application program decides the structure of file.

Page 5: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File attributesEvery file has certain attributes, which vary from one OS to another, but typically consist of these:

• Name: The symbolic file name is the only information kept in human-readable form

• Type: This information is needed for those systems that support different types.

• Location: This location is a pointer to a device and to the location of the file on that device.

• Size: The current size of the file (in bytes, words or blocks) and possibly the maximum allowed size are included in this attribute.

• Protection: Access control information determines who can do reading , writing, etc.

• Owner

• Time and date created: useful for security, protection and usage monitoring.

• Time and date last updated: useful for security, protection and usage monitoring.

• Read/write pointer value

File attributes are stored in the directory structure that also resides on secondary storage, as part of the directory entry for a file, e.g., in DOS, Windows, or in a separate data structure; in UNIX/Linux this structure is known as the inode (index node)for the file.

Page 6: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Directory Entry• A file is represented in a directory by its directory

entry. • Contents of a directory entry vary from system to

system. • For example, in DOS/Windows a directory entry

consists of file name and its attributes. • In UNIX/Linux, a directory entry consists of file

name and inode number. • inode number is used to access file’s inode. The

following diagrams show directory entries for DOS/Windows and UNIX/Linux systems.

Page 7: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

i-node

Page 8: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File operation• Various operations can be performed on files. Here are some of the

commonly supported operations. In parentheses are written UNIX/Linux system calls for the corresponding operations.

• Create (create)• Open (open)• Write (write)• Read(read)• Reposition within file (lseek)• Delete (unlink)• Truncate (creat)• Close (close)• Appending, renaming, copy

Page 9: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File Types: Extensions

• A common technique for implementing files is to include the type of the file as part of the file name. The name is split into two parts, a name and an extension, usually separated by a period character.

• The operating system uses the extension to indicate the type of the file and the type of operations that can be done on that file.

• In DOS/Windows only a file with .exe, .com, .bat extension can be executed.

Page 10: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,
Page 11: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File AccessFiles store information that can be accessed in several ways:• Sequential Access: Information in the file is processed in order, one record after

the other. A read operation reads the next potion of the file and automatically advances a file pointer which tracks the I/O location. Similarly, a write operation appends to the end of the file and advances to the end of the newly written material. Example: video tape

• Direct Access (random access): Another method is direct access (or relative access). A file is made up of fixed length logical records that allow programs to read and write records rapidly in no particular order. Exam. CD

• Semi random access: randomly go to any block and access files sequentially.

Page 12: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

• Sequential access– Read next– Write next– rewind– reset

• Direct access– Read n (n=relative block number)– Write n– Position to n

• Read next• Write next

Page 13: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Sequential Access on a Direct-access File

Page 14: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Directory Structure

• Disks are split into one or more partitions, also known as minidisks in the IBM world or volumes in the PC .

• Typically, each disk on a system contains at least one partition, which is a low-level structure in which files and directories reside.

• Each partition contains information about files within it. This information is kept in entries in a device directory or volume table of contents.

• The device directory (more commonly known simply as a directory) records information-such as name, location, size, and type-for all files on that partition.

Page 15: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Directory structure and Operations

• Collection of directory entries.

The following directory operations are commonly supported in contemporary operating systems. Next to each operation are UNIX system calls or commands for the corresponding operation.

• Create — mkdir• Open — opendir• Read — readdir• Rewind — rewinddir• Close — closedir• Delete — rmdir• Change Directory — cd• List — ls• Search• Directory Structure

Page 16: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Directory Structure

When considering a design particular directory structure we need to consider the following issues:

• Efficient Searching• Naming – should be convenient to users– Two users can have same name for different files– The same file can have several different names

• Grouping – logical grouping of files by properties, (e.g., all Java programs, all games, ..)

Page 17: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

• Single level directory

• Two level directory

• Tree Directory

Page 18: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Tree Directory

Page 19: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

File system implementation• File system is interface between user and

secondary storage.• We now turn to some file system implementation

issues, in particular space allocation techniques and free space management methods. Here are the three commonly used methods for file space allocation.

• Contiguous allocation• Linked allocation• Indexed allocation

Page 20: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Contiguous allocation• The contiguous allocation method requires

each file to occupy a set of contiguous blocks on the disk. The directory entry for each file contains starting block number and file size (in blocks).

• These algorithms suffer from the problem of external fragmentation. As files are allocated or deleted, the free disk is broken into little pieces. This situation results in external fragmentation of disk (similar to external fragmentation of main memory due to segmentation). Disk defragmenter utility needs to be used for removing external fragmentation.

• Semi random method

Page 21: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Linked list allocation• Each file is a linked list of disk blocks: blocks may be scattered

anywhere on the disk.• The directory entry contains a pointer to the first and last blocks of

the file. • There is no external fragmentation with linked allocation, and any

free block on the free-space list can be used to satisfy a request. There is no wastage of space.

• A major disadvantage with linked allocation is that it can be used only for sequential access files. To find the ith block of a file, we must start at the beginning of that file and follow the pointers until we get back to the ith block.

• Consequently it is inefficient to support a direct access capability for linked allocation files.

Page 22: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

1. If linked is failed than can not recover files.2. Space overhead is high to maintain address of previous and next block.

Page 23: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Index allocation

• Each file has its own index block, which is an array of disk block addresses. The ith entry in the index block points to the ith block of the file. The directory contains the address of the index block. To read the ith block, we use the pointer in the ith index-block entry to find and read the desired block.

Page 24: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

• Indexed allocation supports direct access without suffering from external fragmentation.

• If index block is damaged then can not recover other associated blocks.

• Depending on the disk block size and file system size, a file may need more than one index block. In this case there are two ways of organizing index blocks:

• Linked scheme (linked list of index blocks)• Multi-level index scheme

Page 25: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,
Page 26: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

UNIX Space Allocation

• The UNIX file manager uses a combination of indexed allocation and linked lists for the index table.

• It maintains 10-15 direct pointers to file blocks, and three indirect pointers (one-level indirect, two-level indirect, and three-level indirect), all maintained in file’s inode.

• In a Unix-style file system, the inode is a data structure used to represent a file system object, which can be one of various things including a file or a directory. Each inode stores the attributes and disk block location(s) of the file system object's data.

Page 27: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,
Page 28: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Free-Space Management

• To keep track of free disk space, the system maintains a free-space list.

• The free space list records all free disk blocks-those not allocated to some file or directory.

• To create a file we search the free-space list for the required amount of space and allocate the space to the new file. This space is then removed from the free-space list.

• When a file is deleted, its disk space is added to the free space list.

Page 29: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Bit vector

• Frequently, the free space list is implemented as a bit map or bit vector.

• Each block is represented by 1 bit. If the block is free, the bit is 1;if it is allocated, the bit is 0.

• This approach is relatively simple and efficient in finding the first free block or n consecutive free blocks on the disk.

Page 30: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Linked list (free list)

• Another approach to free space management is to link together all the free disk blocks,

• keeping a pointer to the first free block in a special location on the disk and caching it in memory. The first block contains a pointer to the next free disk block and so on.

• This scheme is not efficient. To traverse the list, we must read each block, which requires substantial I/O time. It cannot get contiguous space easily.

Page 31: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

• The following diagram shows an example of free space management by using the linked list approach.

Page 32: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Grouping• A modification of free-list approach is to store the

addresses of n free blocks in the first free block. The first n-1 blocks of these blocks are actually free. The last block contains addresses of the next n free blocks, and so on. The importance of this implementation is that the addresses of a large number of free blocks can be found quickly.

Counting• We keep the address of the first free block and the number

n of free contiguous blocks that follow the first block in each entry of a block. This scheme is good for contiguous allocation. Although each entry requires more space, the overall list will be shorter.

Page 33: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

HARD DISK

Page 34: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

HARD DISK

• Collection of tracks of same diameter is called cylinders.• 100 tracks means 100 cylinders.

Fixed arm

Intra track gapInter track gap

Page 35: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Access Time• Access time divides into three parts:

Seek Time + Rotation Latency + time to read /write data• Seek time: The seek time is the time for the disk arm to

move the heads to the cylinder containing the desired sector. Or time taken to reach desire track.

• The rotational latency (any direction): is the additional time waiting for the disk to rotate the desired sector to the disk head. Or the time to reach on desire sector of track. (arm is fixed).

• Access time should be minimum.• The disk bandwidth is the total number of bytes

transferred, divided by the total time between the first request for service and the completion of the last transfer.

Page 36: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

Disk Scheduling• We can improve both the access time and the

bandwidth by scheduling the servicing of disk I/O requests in a good order. Some of the popular disk-scheduling algorithms are:

• First-come-first-serve (FCFS)• Shortest seek time first (SSTF)• Scan• Look• Circular scan (C-Scan)• Circular look (C-Look)

Page 37: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

First Come First Served Scheduling• Consider for example a disk queue with requests for I/O to blocks on

cylinders98,183,37,122,14,124,65,67

in that order. We assume a disk with 200 cylinders, If the disk head is initially at cylinder 53 and the direction of movement is from left to right (i.e., from cylinder 0 to cylinder 199), it will first move from 53 to 98, then to 183, 37, 122, 14, 124, 65 and finally to 67.So Total head movement (seek distance): =(183-53)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65)=640 cylinders

Page 38: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,
Page 39: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

SSTF Scheduling

• It seems reasonable to service all the requests close to the current head position, before moving the head far away to service other requests.

• The SSTF algorithm selects the request with the minimum seek time from the current head position. Since seek time increases with the number of cylinders traversed by the head, SSTF chooses the pending request closest tothe current head position.

Page 40: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

• Total head movement (seek distance) : =(67-53)+(67-14)+(183-14)=236 cylinders

Page 41: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

SCAN• Before applying Scan to schedule requests, we need to know the

direction of head movement in addition to the head’s current position.

• In the Scan algorithm the disk arm starts at one end of the disk, and moves toward the other end, servicing requests as it reaches each cylinder, until it gets to the other end of the disk. At the other end, the direction of head movement is reversed and servicing continues. The head continuously scans back and forth across the disk.

• The Scan algorithm is sometimes called the elevator algorithm, since the disk arm behaves like an elevator in a building servicing all the requests (people at floors), going up and then reversing to service the requests going down.

Page 42: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

• Total head movement (seek distance) : =(53-0)+(183-0)=236 cylinders

Page 43: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

LOOK

• This algorithm is a version of SCAN. • In this algorithm the arm only goes as far as the

last request in each direction, then reverses direction immediately, serving requests while going in the other direction.

• That is, it looks for a request before continuing to move in a given direction.

• For the given request queue, the total head movement (seek distance) for the Look algorithm is 208.

Page 44: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,
Page 45: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

C-Scan and C-Look algorithms

• In the C-Scan and C-Look algorithms, when the disk head reverses its direction, it moves all the way to the other end, without serving any requests, and then reverses again and starts serving requests. In other words, these algorithms serve requests in only one direction.

Page 46: File system. Introduction The file system consists of two distinct parts: a collection of files, each storing related data, and a directory structure,

C-SCAN:(199-53)+(199-0)+ (37-0)= 382

C-LOOK:(183-53)+(183+14)+ (37-14)= 322