0% found this document useful (0 votes)
23 views44 pages

File System - CH 13&14

The document discusses file systems and directories. It defines a file as a named collection of related information stored on secondary storage. Files have attributes like name, size, location and protection level. The file system manages files and directories through operations like create, read, write, delete and open. Directories store metadata about files and can be organized in different structures like single-level, two-level tree and acyclic graph directories. This allows hierarchical organization of files and sharing of files/directories.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views44 pages

File System - CH 13&14

The document discusses file systems and directories. It defines a file as a named collection of related information stored on secondary storage. Files have attributes like name, size, location and protection level. The file system manages files and directories through operations like create, read, write, delete and open. Directories store metadata about files and can be organized in different structures like single-level, two-level tree and acyclic graph directories. This allows hierarchical organization of files and sharing of files/directories.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

Chapters 13 and 14:

File-System

Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
File Concept
 The operating system abstracts from the physical properties of its
storage devices to define a logical storage unit, the file.
 A file is a named collection of related information that is recorded on
secondary storage
 Types:
• Data
 Numeric
 Character
 Binary
• Program
 Contents defined by file’s creator
• Many types
 text file,
 source file,
 executable file

Operating System Concepts – 10th Edition 13.2 Silberschatz, Galvin and Gagne ©2018
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
 Many variations, including extended file attributes such as file checksum
 Information kept in the directory structure

Operating System Concepts – 10th Edition 13.3 Silberschatz, Galvin and Gagne ©2018
File info Window on Mac OS X

Operating System Concepts – 10th Edition 13.4 Silberschatz, Galvin and Gagne ©2018
Directory Structure
 A collection of nodes containing information about all files

 Both the directory structure and the files reside on disk

Operating System Concepts – 10th Edition 13.5 Silberschatz, Galvin and Gagne ©2018
File Operations
 File is an abstract data type
• Create
• Write – at write pointer location
• Read – at read pointer location
• Reposition within file - seek
• Delete
• Truncate

 To avoid searching the directory for the file entry, many systems require
to open the file first
• Open (Fi) – search the directory structure on disk for entry Fi, and move
the content of entry to memory (open file table)
• Close (Fi) – move the content of entry Fi in memory to directory structure
on disk

Operating System Concepts – 10th Edition 13.6 Silberschatz, Galvin and Gagne ©2018
Open Files
 Several pieces of data are needed to manage open files:
• Open-file table: tracks open files
• File pointer: pointer to last read/write location, per process that
has the file open
• File-open count: counter of number of times a file is open – to
allow removal of data from open-file table when last processes
closes it
• Disk location of the file: cache of data access information
• Access rights: per-process access mode information

Operating System Concepts – 10th Edition 13.7 Silberschatz, Galvin and Gagne ©2018
File Types – Name, Extension

Operating System Concepts – 10th Edition 13.8 Silberschatz, Galvin and Gagne ©2018
Access Methods
 A file is fixed length logical records
 Sequential Access
 Direct Access

Operating System Concepts – 10th Edition 13.9 Silberschatz, Galvin and Gagne ©2018
Disk Structure
 Disk can be subdivided into partitions
 Disks or partitions can be RAID protected against failure
 Disk or partition can be used raw – without a file system, or formatted
with a file system
 Partitions also known as minidisks, slices
 Entity containing file system is known as a volume
 Each volume containing a file system also tracks that file system’s info in
device directory or volume table of contents
 In addition to general-purpose file systems there are many special-
purpose file systems, frequently all within the same operating system or
computer

Operating System Concepts – 10th Edition 13.10 Silberschatz, Galvin and Gagne ©2018
A Typical File-system Organization

Operating System Concepts – 10th Edition 13.11 Silberschatz, Galvin and Gagne ©2018
Directory Structure
 A collection of nodes containing information about all files

 Both the directory structure and the files reside on disk

Operating System Concepts – 10th Edition 13.12 Silberschatz, Galvin and Gagne ©2018
Operations Performed on Directory
 The directory can be viewed as a symbol table that translates file
names into their directory entries
 Operations:
• Search for a file

• Create a file

• Delete a file

• List a directory

• Rename a file

• Traverse the file system

Operating System Concepts – 10th Edition 13.13 Silberschatz, Galvin and Gagne ©2018
Single-Level Directory
 A single directory for all users
 All files are contained in the same directory, which is easy to support and
understand

 Naming problem
• File names must be unique, even in multi-user environment

Operating System Concepts – 10th Edition 13.14 Silberschatz, Galvin and Gagne ©2018
Two-Level Directory
 Separate directory for each user

 Path name
 Can have the same file name for different user
 Efficient searching
 User File Directory (UFD) and Master File Directory (MFD)
 When a user refers to a particular file, only his own UFD is
searched
 Users can access other files (if permitted) using their path names.
 Example: /user1/test

Operating System Concepts – 10th Edition 13.15 Silberschatz, Galvin and Gagne ©2018
Tree-Structured Directories
 Two-level directory can be generalized to a tree of arbitrary height
• This allows users to create their own subdirectories and to organize
their files accordingly
 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

Operating System Concepts – 10th Edition 13.16 Silberschatz, Galvin and Gagne ©2018
Tree-Structured Directories

• Current Directory
• Absolute and Relative path name
• Example: spell/mail/prt/first

Operating System Concepts – 10th Edition 13.17 Silberschatz, Galvin and Gagne ©2018
Acyclic-Graph Directories
 Have shared subdirectories and files which exist in the file system in two
(or more) places at once
 Example

Operating System Concepts – 10th Edition 13.18 Silberschatz, Galvin and Gagne ©2018
Acyclic-Graph Directories (Cont.)
 Important: a shared file (or directory) is not the same as two copies of
the file
• With a shared file, only one actual file exists, so any changes
made by one person are immediately visible to the other
 Implementation
• Create a new directory entry called a link, i.e., a pointer to
another file or subdirectory
• Duplicate all information about shared file or directory in both
sharing directories
 Problem: maintaining consistency when a file is modified

Operating System Concepts – 10th Edition 13.19 Silberschatz, Galvin and Gagne ©2018
General Graph Directory

• Problem: We want to avoid searching any component twice, for reasons


of correctness as well as performance.
• A poorly designed algorithm might result in an infinite loop

Operating System Concepts – 10th Edition 13.20 Silberschatz, Galvin and Gagne ©2018
General Graph Directory (Cont.)
 How do we guarantee no cycles?
• Allow only links to files not subdirectories
• Garbage collection
• Every time a new link is added use a cycle detection algorithm to
determine whether it is OK

Operating System Concepts – 10th Edition 13.21 Silberschatz, Galvin and Gagne ©2018
Current Directory
 Can designate one of the directories as the current (working) directory
• cd /spell/mail/prog
• type list
 Creating and deleting a file is done in current directory
 Example of creating a new file
• If in current directory is /mail
• The command
mkdir <dir-name>
• Results in:

• Deleting “mail”  deleting the entire subtree rooted by “mail”

Operating System Concepts – 10th Edition 13.22 Silberschatz, Galvin and Gagne ©2018
Protection
 File owner/creator should be able to control:
• What can be done
• By whom
 Types of access
• Read
• Write
• Execute
• Append
• Delete
• List

Operating System Concepts – 10th Edition 13.23 Silberschatz, Galvin and Gagne ©2018
Access Lists and Groups in Unix
 Mode of access: read, write, execute
 Three classes of users on Unix / Linux
RWX
a) owner access 7  111
RWX
b) group access 6  110
RWX
c) public access 1  001
 Ask manager to create a group (unique name), say G, and add some
users to the group.
 For a file (say game) or subdirectory, define an appropriate access.

 Attach a group to a file


chgrp G game

Operating System Concepts – 10th Edition 13.24 Silberschatz, Galvin and Gagne ©2018
A Sample UNIX Directory Listing

Operating System Concepts – 10th Edition 13.25 Silberschatz, Galvin and Gagne ©2018
Windows 7 Access-Control List Management

Operating System Concepts – 10th Edition 13.26 Silberschatz, Galvin and Gagne ©2018
Chapter 14: File System
Implementation

Operating System Concepts – 10h Edition Silberschatz, Galvin and Gagne ©2018
File-System Structure
 File structure
• Logical storage unit
• Collection of related information
 File system resides on secondary storage (disks)
• Provided user interface to storage, mapping logical to physical
• Provides efficient and convenient access to disk by allowing data to
be stored, located retrieved easily
 Disk provides in-place rewrite and random access
• I/O transfers performed in blocks of sectors (usually 512 bytes)
 File control block (FCB) – storage structure consisting of information
about a file
 Device driver controls the physical device
 File system organized into layers

Operating System Concepts – 10th Edition 13.28 Silberschatz, Galvin and Gagne ©2018
Layered File System

Operating System Concepts – 10th Edition 13.29 Silberschatz, Galvin and Gagne ©2018
File-System Operations
 We have system calls at the API level, but how do we implement their
functions?
• On-disk and in-memory structures
 Boot control block contains info needed by system to boot OS from
that volume
• Needed if volume contains OS, usually first block of volume
 Volume control block (superblock, master file table) contains volume
details
• Total # of blocks, # of free blocks, block size, free block pointers or
array
 Directory structure organizes the files
• Names and inode numbers, master file table

Operating System Concepts – 10th Edition 13.30 Silberschatz, Galvin and Gagne ©2018
File Control Block (FCB)
 OS maintains FCB per file, which contains many details about the file
• Typically, inode number, permissions, size, dates
• Example

Operating System Concepts – 10th Edition 13.31 Silberschatz, Galvin and Gagne ©2018
Directory Implementation
 Linear list of file names with pointer to the data blocks
• Simple to program
• Time-consuming to execute
 Linear search time
 Could keep ordered alphabetically via linked list or use B+ tree
 Hash Table – linear list with hash data structure
• Decreases directory search time
• Collisions – situations where two file names hash to the same
location
• Only good if entries are fixed size, or use chained-overflow method

Operating System Concepts – 10th Edition 13.32 Silberschatz, Galvin and Gagne ©2018
Allocation Method
 An allocation method refers to how disk blocks are allocated for files:
• Contiguous
• Linked
 File Allocation Table (FAT) – MS DOS and Windows
• Indexed - Unix

Operating System Concepts – 10th Edition 13.33 Silberschatz, Galvin and Gagne ©2018
Contiguous Allocation Method
 An allocation method refers to how disk blocks are allocated for files:
 Each file occupies set of contiguous blocks
• Best performance in most cases
• Simple – only starting location (block #) and length (number of blocks)
are required
• Problems include:
 Finding space on the disk for a file,
 Knowing file size,
 External fragmentation, need for compaction off-line (downtime)
or on-line

Operating System Concepts – 10th Edition 13.34 Silberschatz, Galvin and Gagne ©2018
Contiguous Allocation (Cont.)

Operating System Concepts – 10th Edition 13.35 Silberschatz, Galvin and Gagne ©2018
Extent-Based Systems
 Many newer file systems (i.e., Veritas File System) use a modified
contiguous allocation scheme
 Extent-based file systems allocate disk blocks in extents
 An extent is a contiguous block of disks
• Extents are allocated for file allocation
• A file consists of one or more extents

Operating System Concepts – 10th Edition 13.36 Silberschatz, Galvin and Gagne ©2018
Linked Allocation
 Each file is a linked list of blocks
 File ends at nil pointer
 No external fragmentation
 Each block contains pointer to next block
 No compaction, external fragmentation
 Free space management system called when new block needed
 Improve efficiency by clustering blocks into groups but increases internal
fragmentation
 Reliability can be a problem
 Locating a block can take many I/Os and disk seeks

Operating System Concepts – 10th Edition 13.37 Silberschatz, Galvin and Gagne ©2018
Linked Allocation Example
 Each file is a linked list of disk blocks: blocks may be scattered anywhere on
the disk
 Scheme

Operating System Concepts – 10th Edition 13.38 Silberschatz, Galvin and Gagne ©2018
FAT Allocation Method
 Beginning of volume has table, indexed by block number
 Much like a linked list, but faster on disk and cacheable
 New block allocation simple

Operating System Concepts – 10th Edition 13.39 Silberschatz, Galvin and Gagne ©2018
File-Allocation Table

Operating System Concepts – 10th Edition 13.40 Silberschatz, Galvin and Gagne ©2018
Indexed Allocation Method
 Each file has its own index block(s) of pointers to its data blocks
 Logical view

index table

Operating System Concepts – 10th Edition 13.41 Silberschatz, Galvin and Gagne ©2018
Example of Indexed Allocation

Operating System Concepts – 10th Edition 13.42 Silberschatz, Galvin and Gagne ©2018
Indexed Allocation – Two-Level Scheme

Operating System Concepts – 10th Edition 13.43 Silberschatz, Galvin and Gagne ©2018
Combined Scheme : UNIX UFS
 4K bytes per block, 32-bit addresses

 More index blocks than can be addressed with 32-bit file pointer

Operating System Concepts – 10th Edition 13.44 Silberschatz, Galvin and Gagne ©2018

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy