270 likes | 391 Vues
This material outlines the essentials of hierarchical storage architecture and file management systems in operating systems. It explains how files serve as fundamental building blocks for data representation, storage locations, and management through attributes such as names, types, and access permissions. The document details methods for creating, accessing, deleting files, various allocation strategies, and space management, including contiguous, clustered, and indexed approaches. Understanding these core concepts enhances the effectiveness of filesystem interactions and data handling.
E N D
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems{week 14}
Hierarchical storage architecture very fast very small volatile managed as part of the filesystem non-volatile very slow very large
File management • A File Management System is a set of OS services that supports files and directories for user applications, OS programs, etc. • Data should be organized andavailable in a convenient andefficient manner • Files are the basicbuilding blocks
Files • A file is an abstraction that represents user data, OS data, an executable, a device, etc. • A file is simply a sequence of bytes • Actual storage location (via network?) andformat are transparent to users • Storage scheme on disk is also transparent • Typically involves cylinders, tracks, sectors, etc.
File attributes • File attributes include: • Human-readable symbolic name • Type (e.g. executable, directory, text, PDF, etc.) • Logical location (i.e. containing directory or path) • Physical location on disk • Size (in bytes) • Protection or security (i.e. permissions) • Timestamps (created, last modified, last accessed)
Pathnames • The pathname (or just path) of a file specifies the sequence of directoriesone must traverse to locatethe file • An absolute path startsat the root node • A relative path startsanywhere
Links • A link provides a shortcut to a file and may circumvent the given directory hierarchy • A hard link in Unix isindistinguishable fromthe original file • A symbolic link in Unixis merely a shortcut • A Windows shortcutis just a symbolic link
Creating and accessing files • File creation requires space allocation • Opening a file returns a handle or file descriptor • Read and write operationsuse the handle and anoffset (or file pointer) • The close operation simplydeletes the handle anddeallocates any memory
Deleting files • Deleting a file deallocates all disk spacemarked as in use by the file • But likely does not erase file contents • Deleted files are recoverable until the disk space is used for (and overwritten by) other file(s) • The delete operation also removes the corresponding entry in the containing directory
Access methods • An access method describes the mannerand mechanisms by which a process accesses the data in a file • Two common access methods: • Sequential access (open, read, write, close) • Random access (open, read, write, seek, close)
Contiguous disk space allocation (i) • In a contiguous disk space allocation scheme, files are allocated to contiguous blocks of disk space
A A A B B C C C D A A A C C C D B B B B A A A C C C B B B B D D A A A C C C B B B B D D Contiguous disk space allocation (ii) • Four files allocated contiguously to disk: • File B outgrows its space and is reallocated: • File D outgrows its space and is reallocated: • Defragmentation combines free disk space:
Clustered disk space allocation (i) • In a clustered disk space allocation scheme, files are allocated to clusters of disk space on an as needed basis
A A A B B C C C D A A A B B C C C D B B A A A B B C C C D B B D Clustered disk space allocation (ii) • Four files allocated contiguously to disk: • File B outgrows its space, so one or more new clusters are allocated: • File D outgrows its space, so one or more new clusters are allocated:
Clustered disk space allocation (iii) • File accesses may cross cluster boundaries,causing slower response times
Clustered disk space allocation (iv) • Using a linked approach,each cluster has apointer to the next cluster • Using an indexed approach, a singletable maintains pointers to eachindividual cluster
Managing free space • Managing free blocks (or free clusters) may follow the same scheme as for a single file • Linked scheme • Indexed approach • Bitmapped approach: • A bitmap is maintained in memory • Each bit corresponds to a block or cluster • A 0 indicates a free block • A 1 indicates the block is in use
File allocation table (i) • A file allocation table (FAT) maps logical filesto their physical addresses on a disk • A pure FAT would have anentry for each sector • To improve performance, clustersof contiguous sectors are used • Clusters range from 4 to 64 sectors
File allocation table (ii) • Microsoft FAT-32 filesystem maps to clusters • May require linked clusters to house entire FAT
Linux ext2 and ext3 • Linux uses indexed clusters
Unix inodes (i) • In Unix, file information is stored in an index node (I-node), which contains: • Mode and type of file • Number of links to the file • File owner’s userid and groupid • Size of file (in bytes) • Last access and last modified times • Number of blocks allocated to the file • Pointers to the first twelve blocks • Pointers to three additional blocks of pointers
cluster cluster … cluster cluster single indirect inode 1024 cluster … cluster double indirect inode 1024 inode 1024 … … triple indirect inode 10242 inode 1024 … … Unix inodes (ii) inode 12 1024 10242 10243
Virtual filesystem • A virtual filesystem provides transparent access to different filesystem types on multiple device types and disk partitions
Virtual machines (i) • A virtual machine is a layered approach that logically combines the kernel operating system and hardware • Creates the illusionof multiple processes,each executing on itsown virtual processorwith its own virtualmemory http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9002552
Virtual machines (ii) Virtual machine Non-virtual machine
Virtual machines (iii) • Java programs execute on a native Java Virtual Machine (JVM)
Virtual machines (iv) • Virtual machines provide complete protection of system resources • Each virtual machine is isolated fromall other virtual machines • which prohibits direct sharingof system resources • Virtual machines can be difficult to implementdue to the effort required to providean exact duplicate of each underlying machine