File System Interface Chapter 11 File System Interface

  • Slides: 41
Download presentation
File System Interface

File System Interface

Chapter 11: File System Interface 1. File Concept 2. Access Methods 3. Directory Structure

Chapter 11: File System Interface 1. File Concept 2. Access Methods 3. Directory Structure 4. File Sharing 5. Protection 2

OBJECTIVES: Ø To explain the function of file systems Ø To describe the interfaces

OBJECTIVES: Ø To explain the function of file systems Ø To describe the interfaces to file systems Ø To discuss file-system design tradeoffs, including access methods, file sharing, file locking, and directory structures Ø To explore file-system protection 3

Background 4

Background 4

The file system consists of two distinct parts: 1. a collection of files, each

The file system consists of two distinct parts: 1. a collection of files, each storing related data. 2. a directory structure, which organizes and provides information about all the files in the system. 5

File Concept 6

File Concept 6

File Concept �A file is a named collection of related information that is recorded

File Concept �A file is a named collection of related information that is recorded on secondary storage. Ø Commonly, files represent : Ø programs Ø Data Ø (both source and object forms) and data. files may be numeric, alphabetic, alphanumeric, or binary. Files may be free form, such as text files, or may be formatted rigidly. Ø � The information in a file is defined by its creator. 7

File Concept (cont. ) Many different types of information may be stored in a

File Concept (cont. ) 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, …. . Ø A file has a certain defined structure, which depends on its type. o o 8 e. g: A text file is a sequence of characters organized into lines 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.

File Attributes � Name – only information kept in human-readable form � Identifier –

File Attributes � Name – only information kept in human-readable form � Identifier – unique tag (number) identifies file within file system � Type – needed for systems that support different types � Location – pointer to file location on device � Size – current file size � Protection – controls who can do reading, writing, executing � Time, date, and user identification – data for protection, security, and usage monitoring Information about files are kept in the directory structure, which is maintained on the disk � The size of the directory itself may be megabytes. � 9

File Operations � Basic File Operations: � Creating a file. � Writing a file.

File Operations � Basic File Operations: � Creating a file. � Writing a file. � Reading a file. � Repositioning within a file. � Deleting a file. � Truncating a file. 10

File Operations (Cont. ) Create Write Two steps are necessary to create a file.

File Operations (Cont. ) Create Write Two steps are necessary to create a file. To write a file, we make a system call specifying both the name of the file and the information to be written to the file. 1. space in the file system must be found for the file… how? 2. an entry for the new file must be made in the directory. 11 Ø Given the name of the file, the system searches the directory to find the file’s location. Ø The system must keep a write pointer to the location in the file where the next write is to take place. The write pointer must be updated whenever a write occurs.

File Operations (cont. ) Read To read from a file, we use a system

File Operations (cont. ) Read To read from a file, we use a system call that 1. specifies file name and where (in memory) the next block of the file should be put. 2. the directory is searched for the associated entry, 3. the system keeps a read pointer to the location in the file where the next read is to take place. 4. Once the read has taken place, the read pointer is updated 12 Delete To delete a file ØProvide name and search the directory for it Ø Having found it, we release all file space, so that it can be reused by other files, and erase the directory entry

File Operations (cont. ) Truncating a file Ø The user may want to erase

File Operations (cont. ) Truncating a file Ø The user may want to erase the contents of a file but keep its attributes. Rather than forcing the user to delete the file and then recreate it, Repositioning within a file. ØThe directory is searched for the appropriate entry, ØThe current-file-position pointer is repositioned to a given value. ØRepositioning within a file need this function allows all attributes not involve any actual I/O. to remain unchanged—except for ØThis file operation is also known file length—but lets the file be reset as a file seek. to length zero 13

File Operations (cont. ) � These six basic operations comprise the minimal set of

File Operations (cont. ) � These six basic operations comprise the minimal set of required file operations. � These primitive operations can then be combined to perform other file operations. � E. g. : � we can copy a file by creating a new file and then reading from the old and writing to the new. 14

File Types �A common technique for implementing file types is to include the type

File Types �A common technique for implementing file types is to include the type as part of the file name. � The name is split into two parts—a name and an extension, usually separated by a period character. E. G. : resume. doc, Server. java. � The system uses the extension to indicate the type of the file and the type of operations that can be done on that file. � Only a file with a. com, . exe, or. bat extension can be executed, � Application programs also use extensions to indicate file types in which they are interested. � 15 For example, the Microsoft Word expects its files to end with a (. docx) extension

File Types – Name, Extension 16

File Types – Name, Extension 16

File Structure � File types also can be used to indicate the internal structure

File Structure � File types also can be used to indicate the internal structure of the file. Two approaches � Who decides the internal file structure? ? Operating system or the application � APPROCH(1) : the operating system support multiple file structures � Disadvantages : � The resulting size of the operating system is huge. � � 17 If the operating system defines five different file structures, it needs to contain the code to support these file structures. When new applications require information structured in ways not supported by the operating system, severe problems may result.

File Structure (Cont. ) � APPROCH(2) : the operating system support minimum file structures

File Structure (Cont. ) � APPROCH(2) : the operating system support minimum file structures � This approach has been adopted in UNIX, MS-DOS, and others. � UNIX considers each file to be a sequence of 8 -bit bytes; no interpretation of these bits is made by the operating system. � This scheme provides maximum flexibility but little support. � Each application program must include its own code to interpret an input file as to the appropriate structure. � However, all operating systems must support at least one structure—that of an executable file—so that the system is able to load and run programs. 18

File Access Methods 19

File Access Methods 19

Access Methods 1. Sequential Access 2. Direct Access (or relative access) ü Information in

Access Methods 1. Sequential Access 2. Direct Access (or relative access) ü Information in the file is ü A file is made up of fixed length processed in order, one of logical records that allow record after the other. programs to read and write records rapidly in no particular ü This mode of access is by order. far the most common ü read next, write next ü reset 20 ü read n, write n , position to n ü read next, write next , n = relative block number

Simulation of Sequential Access on a Direct-access File 21

Simulation of Sequential Access on a Direct-access File 21

Directory and Disk Structure 22

Directory and Disk Structure 22

Directory Structure q. A storage device can be used in its entirety for a

Directory Structure q. A storage device can be used in its entirety for a file system. q It can also be subdivided into partitions (each partition can hold a file system) system q. Partitioning is useful for limiting the sizes of individual file systems, q. Partitions are also known as slices or (in the IBM world) minidisks. 23

Directory Structure (cont. . ) q. Any entity containing a file system is generally

Directory Structure (cont. . ) q. Any entity containing a file system is generally known as a volume. q. Each volume can be thought of as a virtual disk. q. Each volume that contains a file system must also contain information about the files in the system. This is the device directory (simply as that directory) 24

Directory Structure (cont. . ) �A collection of nodes containing information about all files

Directory Structure (cont. . ) �A collection of nodes containing information about all files Directory Files F 1 F 2 F 3 F 4 Fn • Both the directory structure and the files reside on disk • Backups of these two structures are kept on tapes 25

A Typical File-system Organization ØA storage device can be used in its entirety for

A Typical File-system Organization ØA storage device can be used in its entirety for a file system. ØA storage device can also be subdivided for finer-grained control. ØStorage devices can also be collected together into RAID sets that provide protection from the failure of a single disk. RAID = Redundant Array of Inexpensive Disks 26

A Typical File-system Organization 27

A Typical File-system Organization 27

Operations Performed on Directory � Search for a file � Create a file �

Operations Performed on Directory � Search for a file � Create a file � Delete a file � List a directory: � The ability to list the files in a directory and the contents of the directory entry for each file in the list. � Rename a file � Traverse the file system We may wish to access every directory and every file within a directory structure. � E. g. : For reliability, it is a good idea to save the contents and structure of the entire file system at regular intervals (i. e. backup copy in case of system failure) � 28

Directory Logical Structure � Schemes for defining the logical structure of a directory: Single-Level

Directory Logical Structure � Schemes for defining the logical structure of a directory: Single-Level Directory � Two-Level Directory � Tree-Structured Directories � � How to evaluate these schemes? ? Efficiency – OS ability to locate a file quickly (i. e. searching) � Naming facility– files naming must be convenient to users � Grouping facility- user ability to group existing files in to sub folders to organize them. � 29

Single-Level Directory � Basic Idea: A single directory for all files and users. �

Single-Level Directory � Basic Idea: A single directory for all files and users. � Pros. (++): The simplest structure 30

Single-Level Directory (Cont. ) � Cons. (--): � Naming problem: Since all files are

Single-Level Directory (Cont. ) � Cons. (--): � Naming problem: Since all files are in the same directory, they must have unique names. so it is difficult for user to find unique names for all files…why? ? number of files is big , specially when the system has more than one user. Some OS’s have restriction on files’ names (e. g. : The MS-DOS operating system allows only 11 -character file names; UNIX, in contrast, allows 255 characters. ) � Grouping problem : user can’t organize his files into sub folders � Efficiency : OS must search the whole directory for one file 31

Two-Level Directory � Basic Idea: create Separate directory for each user � Each user

Two-Level Directory � Basic Idea: create Separate directory for each user � Each user has his own user file directory (UFD). The UFD 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 � When a user refers to a particular file, only his own UFD is searched. � Two-level directory can be thought of as a tree of height 2. � Every file in the system has a unique path name. (a user name and a file name defines a path in the tree from the root (the MFD) to a leaf (the specified file)) 32

Two-Level Directory (Cont. ) � Pros. (++): �Can have the same file name for

Two-Level Directory (Cont. ) � Pros. (++): �Can have the same file name for different user…………. (naming facility) �Searching is more efficient than single-level scheme. To create or delete a file for a user, the OS searches only that user’s UFD…(efficiency) � � Cons. (--): �No grouping capability �Single user must create different names for all his files 33

Tree-Structured Directories � Basic � � � 34 Idea: extend the directory structure to

Tree-Structured Directories � Basic � � � 34 Idea: extend the directory structure to a tree of arbitrary height A tree is the most common directory structure. The tree has a root directory, and every file in the system has a unique path name. 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). In normal use, each process has a current directory. � The current directory should contain most of the files that are of current interest to the process. � When reference is made to a file, the current directory is searched. � If a file is needed that is not in the current directory, then the user usually must either specify a path name or change the current directory

Tree-Structured Directories (Cont. ) 35

Tree-Structured Directories (Cont. ) 35

Tree-Structured Directories (Cont. ) � Pros. (++): � Allows users to create their own

Tree-Structured Directories (Cont. ) � Pros. (++): � Allows users to create their own subdirectories and to organize their files accordingly. � Searching is faster because it performed in the current directory only � Naming becomes more easier for user (i. e. a user can have multiple files with the same name if they located in different directories) � Cons. (--): � More complex to implement 36

File Sharing & Protection 37

File Sharing & Protection 37

File Sharing � Sharing of files on multi-user systems is desirable � Sharing may

File Sharing � Sharing of files on multi-user systems is desirable � Sharing may be done through a protection scheme � To implement sharing and protection: � � The system must maintain more file and directory attributes than are needed on a single-user system. Most systems have evolved to use the concepts of owner and group. � The owner is the user who can change attributes and grant access and who has the most control over the file. � The group attribute defines a subset of users who can share access to the file. � The owner and group IDs of a given file (or directory) are stored with the other file attributes. � When a user requests an operation on a file, the user ID can be compared with the file attributes to allow or deny the access. 38

Protection � When information is stored in a computer system, we want to keep

Protection � When information is stored in a computer system, we want to keep it safe from physical damage (the issue of reliability) and improper access (the issue of protection). � Reliability is generally provided by duplicate copies of � Protection : files In a small single-user system, : we might provide protection by physically removing the storage media and locking them in a cabinet. � In a multiuser system: OS’s must provide controlled access by limiting the types of file access that can be made. � � Access is permitted or denied depending on several factors, one of which is the type of access requested. 39

Protection � Access Type: � Read � Write � Execute � Append: Write new

Protection � Access Type: � Read � Write � Execute � Append: Write new information at the end of the file. � Delete � List : List the name and attributes of the file. � Many systems recognize three classifications of users in connection with each file: � Owner : The user who created the file is the owner. � � � Group. A set of users who are sharing the file and need similar access Universe. All other users in the system constitute the universe The owner should be able to control what type of access can applied on the file and by whom 40

Thank you The End 41

Thank you The End 41