* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download L15_FS - Web Services Overview
Object storage wikipedia , lookup
Asynchronous I/O wikipedia , lookup
Lustre (file system) wikipedia , lookup
Design of the FAT file system wikipedia , lookup
File system wikipedia , lookup
File Allocation Table wikipedia , lookup
Disk formatting wikipedia , lookup
Computer file wikipedia , lookup
Lecture 15 File Systems File system overview Provide non-volitale storage for programs (the O.S. being the most important!) Order of magnitude more storage than memory Abstracts storage details from user Application writers can use read, write, ... Provide organizational operators Issues: File system structures Disk management Performance File system architecture User interface OS structures Open file structures Interface to get data What file system file/directories look like. Extended disk Buffer caching Virtual file systems Performance Buffer cache policy Disk structures Disk layout Blocks, sectors File layout Directories Permissions Files Typically, the minimum accessible unit File naming Can be constrained • Length (e.g. extensions in DOS) • Characters (e.g. “.” or “..” in UNIX) Only for the user • Names typically signify meaning (.jpg, .gif, etc…) – Convention/standards are used by machine • The machine sorts out the data by checking the validity of the byte stream – Example: “P6…” for PPM files File attributes The baggage that goes along with the data Typical file system operations File access File info get attributes, get_stat File management open, close, set attributes, seek mkdir, chdir, move, copy, rename, delete, link, etc.. Disk management df, mount, umount, etc… File naming mechanisms Hierarchical naming Attribute-based naming structures All files are hierarchically arranged in a tree structure Users move within levels of the file system Attempt to bring attributes to file names Examples: picture of car, image type, etc.. Hierarchical with indexing Windows XP uses hierarchical naming File system also indexes information as it is stored (some content indexed) Path types Relative Starts from current directory • Requires a current_directory to be stored somewhere Examples • ../foo • foo.c Absolute State entire path Example • C:/Program Files/Adobe • /var/tmp Disk allocation Each file occupies contiguous blocks on disk Advantages: • Simple to implement - just find empty space • Can randomly access file Disadvantages: • Wasteful of space (due to fragmentation) • If files grow, a copy must be made Linked allocation Each file is a linked list of disk blocks Method used in MS-DOS and Mac file systems Allocate space from beginning and link together segments of the file Advantages – simple, better utilization of space Disadvantages – no random access, overhead of linking Indexed allocation Break storage space into small fixed-size pieces, or blocks Allocate as many as needed to hold the file Store the disk block addresses for each of the blocks in the metadata record Advantages – random access, no external frag. Disadvantages – need index table, more seeks UNIX file system File systems structure Boot block superblock i-nodes data block data block … The file system in UNIX is an integral part of the operating system. Files are used for: Terminal handling /dev/tty*** Pipes “ls | more” Directories Sockets (for networking) The design of the UNIX file system allows the user to write code that has a uniform interface. UNIX file structures Superblock - tells the UNIX O.S. what the format of the disk is, the # of blocks, the number of i-nodes, etc... I-nodes - are the metadata data structures for files and directories Files - holds information such as owner, permissions, date of modification, where the data is Directories are just a special case of files that have the pairs <file-name, i-node #> stored in the file UNIX file system UNIX files consist of i-node and data blocks UNIX uses an indexed allocation scheme with 10 direct pointers to blocks 1 indirect pointer to blocks i-node 1 double indirect pointer to blocks 1 triple indirect pointer to blocks ... ... ... ... triple indirect pointer ... UNIX file system Several parameters determine how many (and of what size) files can be represented No. of bits in a disk address No. of bits in a virtual memory reference Disk block size Example: 10 direct, 1 1x indirect, 1 2x indirect, 1 3xindirect No. bits in disk address --> 16-bits No. of bits in virtual memory reference --> 32-bits Disk block size --> 1024 kbytes What is the maximum file size in this system? File size worksheet Some UNIX file system features mounting - allows other file systems (disks), whether local or remote to be “mounted into a uniform file system space / usr home var X11 bin mnt Connecting the file system to the O.S. To provide uniform access to data, UNIX has a level of indirection that is used for opening files Files Open File Table ... ... ... ... ... process 1 ... ... ... ... ... ... ... process n Each open file entry holds, permissions (R/W), file offset More interesting features All input and output in UNIX are handled through the open file table structure This is how UNIX can provide a single uniform interface for local or remote data access Pipes in UNIX are nothing more than A writing process that has its “stdout” linked to a “pipe” file (instead of a /dev/tty*** file) A reading process that has its “stdin” linked to a “pipe” file (instead of a /dev/tty*** file) The power of UNIX pipes