Operating Systems{week 15a}
Rensselaer Polytechnic InstituteCSCI-4210 – Operating SystemsDavid Goldschmidt, Ph.D.
Hierarchical storage architecture
very small
very large
very fast
very slow
volatile
non-volatile
managed aspart of thefilesystem
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 and
available 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 starts
at the root node A relative path starts
anywhere
Links
A link provides a shortcut to a file and may circumvent the given directory hierarchy A hard link in Unix is
indistinguishable fromthe original file
A symbolic link in Unixis merely a shortcut
A Windows shortcut is 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 operations
use 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
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:
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
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
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:
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 (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 an entry
for each sector (e.g. 512 bytes) To improve performance, clusters
of contiguous sectors are used Clusters range from 4 to 64 sectors
(e.g. 2,048 to 32,768 bytes)
File allocation table (ii)
Microsoft FAT-32 filesystem maps to clusters May require linked clusters to house
entire FAT
Microsoft NTFS (i)
Microsoft’s New Technology File System (NTFS) introduced as part of Windows NT Each partition has a Master File Table
(MFT):
Microsoft NTFS (ii)
Storage allocation in NTFS is based on runs,which are sequential consecutive blocks This reduces the number of pointers
required
NTFS also supports: File compression File encryption Journaling (similar to transaction
logging)
Linux ext2 and ext3
Similar to NTFS, 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
Unix inodes (ii)
inode12
1024
10242
10243
clustercluster
cluster
…
cluster
cluster
cluster
inode1024
single indirect
…
inode1024
double indirect
inode1024
inode1024
… …
…
inode10242
triple indirect
…