0% found this document useful (0 votes)
96 views45 pages

Chapter 10: File-System Interface

The document discusses file systems and file operations. It describes the structure of files and directories, including attributes, operations, access methods and directory trees. It also covers mounting file systems and different directory structures like tree and acyclic graphs.

Uploaded by

anilkumar_krla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
96 views45 pages

Chapter 10: File-System Interface

The document discusses file systems and file operations. It describes the structure of files and directories, including attributes, operations, access methods and directory trees. It also covers mounting file systems and different directory structures like tree and acyclic graphs.

Uploaded by

anilkumar_krla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 45

Chapter 10: File-System Interface

Operating System Concepts with Java – 8th Edition 10.1 Silberschatz, Galvin and Gagne ©2009
Chapter 10: File-System Interface

 File Concept
 Access Methods
 Directory Structure
 File-System Mounting

Operating System Concepts with Java – 8th Edition 10.2 Silberschatz, Galvin and Gagne ©2009
File Concept

 A file is a named collection of related


information that is recorded on
secondary storage.
 Data can NOT be written to secondary
storage unless they are within a file.

Operating System Concepts with Java – 8th Edition 10.3 Silberschatz, Galvin and Gagne ©2009
File Structure

 A file has a certain defined structure which depends


on its types:
 A text file is a sequence of characters organized
into lines.
 A source file is a sequence of subroutines and
function.
 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.

Operating System Concepts with Java – 8th Edition 10.4 Silberschatz, Galvin and Gagne ©2009
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

Operating System Concepts with Java – 8th Edition 10.5 Silberschatz, Galvin and Gagne ©2009
File Operations

 File is an abstract data type


 Create
 Write
 Read
 Reposition within file
 Delete
 Truncate
 Open(Fi) – search the directory structure on disk for entry
Fi, and move the content of entry to memory
 Close (Fi) – move the content of entry Fi in memory to
directory structure on disk
Operating System Concepts with Java – 8th Edition 10.6 Silberschatz, Galvin and Gagne ©2009
Open Files
 Several pieces of data are needed to manage open
files:
 File pointer: pointer to last read/write location, per
process that has the file open
 File-open count: the counter tracks the number of
opens and closes, and reaches zero on the last
close. The system can then remove the entry.
 Disk location of the file: the info needed to locate
the file on disk.
 Access rights: per-process access mode
information so OS can allow or deny subsequent
I/O request

Operating System Concepts with Java – 8th Edition 10.7 Silberschatz, Galvin and Gagne ©2009
File Types – Name, Extension

Operating System Concepts with Java – 8th Edition 10.8 Silberschatz, Galvin and Gagne ©2009
Access Methods
 Sequential Access
read next
write next
reset
no read after last write
(rewrite)
 Direct Access
read n
write n
position to n
read next
write next
rewrite n
n = relative block number
Operating System Concepts with Java – 8th Edition 10.9 Silberschatz, Galvin and Gagne ©2009
Sequential-access File

Information in the file is processed in order, one after the


other.

Operating System Concepts with Java – 8th Edition 10.10 Silberschatz, Galvin and Gagne ©2009
Simulation of Sequential Access on Direct-access File

cp: current position

Operating System Concepts with Java – 8th Edition 10.11 Silberschatz, Galvin and Gagne ©2009
Example of Index and Relative Files

The index contains pointers to the various blocks. To find a


record in the file, we first search the index and then use the
pointer to access the file directly and to find the desired record.

Operating System Concepts with Java – 8th Edition 10.12 Silberschatz, Galvin and Gagne ©2009
Disk Structure

 Disk can be subdivided into partitions


 Disks or partitions can be redundant arrays of
independent disks (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 known as a volume
 Each volume containing file system also tracks that file
system’s info in device directory or volume table of
contents

Operating System Concepts with Java – 8th Edition 10.13 Silberschatz, Galvin and Gagne ©2009
A Typical File-system Organization

Each volume that contains a file system must also contain


information about the files in the system. This information is
kept in entries in a device directory which records name,
location, size and type.

Operating System Concepts with Java – 8th Edition 10.14 Silberschatz, Galvin and Gagne ©2009
Operations Performed on Directory

 Search for a file


 Create a file
 Delete a file
 List a directory
 Rename a file
 Traverse the file system

Operating System Concepts with Java – 8th Edition 10.15 Silberschatz, Galvin and Gagne ©2009
Tree-Structured Directories

• Absolute path: begins at the root and follows a path down to the
specified file. root/spell/mail/prt/first
• Relative path: defines a path from the current directory. prt/first
given root/spell/mail as current path.

Operating System Concepts with Java – 8th Edition 10.16 Silberschatz, Galvin and Gagne ©2009
Tree-Structured Directories (Cont)

 Efficient searching
 Grouping Capability
 Current directory (working directory)
 pwd

 cd /spell/mail/prog

Operating System Concepts with Java – 8th Edition 10.17 Silberschatz, Galvin and Gagne ©2009
Tree-Structured Directories (Cont)
 Creating a new file is done in current directory
 Delete a file
rm <file-name>
 Creating a new subdirectory is done in current directory
mkdir <dir-name>
Example: if in current directory /mail
mkdir count

mail

prog copy prt exp count

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


Option1: do not delete a directory unless it is empty, such as MS-DOS
Option2: delete all files in that directory, such as UNIX rm command
with r option

Operating System Concepts with Java – 8th Edition 10.18 Silberschatz, Galvin and Gagne ©2009
Acyclic-Graph Directories
 Have shared subdirectories and files
 Only one file exists. Any changes made by one person are
immediately visible to the other.

Operating System Concepts with Java – 8th Edition 10.19 Silberschatz, Galvin and Gagne ©2009
Acyclic-Graph Directories (Cont.)

 New directory entry type


 Link – another name (pointer) to an existing file
 Resolve the link – follow pointer to locate the file

Operating System Concepts with Java – 8th Edition 10.20 Silberschatz, Galvin and Gagne ©2009
File System Mounting

 A file system must be mounted before it can


be accessed
 A unmounted file systemis mounted at a
mount point, the location within the file
structure where the file system is to be
attached. An empty directory.

Operating System Concepts with Java – 8th Edition 10.21 Silberschatz, Galvin and Gagne ©2009
(a) Existing. (b) Unmounted Partition

Operating System Concepts with Java – 8th Edition 10.22 Silberschatz, Galvin and Gagne ©2009
Mount Point

Operating System Concepts with Java – 8th Edition 10.23 Silberschatz, Galvin and Gagne ©2009
Chapter 11: File System Implementation

Operating System Concepts with Java – 8th Edition 10.24 Silberschatz, Galvin and Gagne ©2009
Chapter 11: File System Implementation

 File-System Structure
 File-System Implementation
 Directory Implementation
 Allocation Methods
 Free-Space Management

Operating System Concepts with Java – 8th Edition 10.25 Silberschatz, Galvin and Gagne ©2009
File-System Structure

 File structure
 Logical storage unit
 Collection of related information
 File system organized into layers
 File system resides on secondary storage (disks)
 Provides efficient and convenient access to disk by
allowing data to be stored, located retrieved easily
 File control block – storage structure consisting of
information about a file
 Device driver controls the physical device

Operating System Concepts with Java – 8th Edition 10.26 Silberschatz, Galvin and Gagne ©2009
Layered File System

Operating System Concepts with Java – 8th Edition 10.27 Silberschatz, Galvin and Gagne ©2009
File-System Implementation

 Boot control block contains info needed by


system to boot OS from that volume
 Volume control block contains volume details
 Directory structure organizes the files
 Per-file File Control Block (FCB) contains
many details about the file

Operating System Concepts with Java – 8th Edition 10.28 Silberschatz, Galvin and Gagne ©2009
A Typical File Control Block

Operating System Concepts with Java – 8th Edition 10.29 Silberschatz, Galvin and Gagne ©2009
In-Memory File System Structures
the necessary file system structures provided by the OS

refers to opening a file

refers to reading a file


Operating System Concepts with Java – 8th Edition 10.30 Silberschatz, Galvin and Gagne ©2009
Directory Implementation

 Linear list of file names with pointer to the data


blocks.
 simple to program
 time-consuming to execute

 Hash Table – linear list with hash data structure.


 decreases directory search time
 collisions – situations where two file names hash
to the same location
 fixed size

Operating System Concepts with Java – 8th Edition 10.31 Silberschatz, Galvin and Gagne ©2009
Allocation Methods

 An allocation method refers to how disk


blocks are allocated for files:
 Contiguous allocation
 Linked allocation
 Indexed allocation

Operating System Concepts with Java – 8th Edition 10.32 Silberschatz, Galvin and Gagne ©2009
Contiguous Allocation of Disk Space

• Each file occupies a set of contiguous


blocks on the disk
• Simple – only starting location (block #)
and length (number of blocks) are
required
• Random access
• Wasteful of space (dynamic storage-
allocation problem)
• Files cannot grow

Operating System Concepts with Java – 8th Edition 10.33 Silberschatz, Galvin and Gagne ©2009
Linked Allocation

 Each file is a linked list of disk blocks: blocks may be


scattered anywhere on the disk.

block = pointer

Operating System Concepts with Java – 8th Edition 10.34 Silberschatz, Galvin and Gagne ©2009
Linked Allocation

•Simple – need only


starting address
•Free-space management
system – no waste of space
•No random access

Operating System Concepts with Java – 8th Edition 10.35 Silberschatz, Galvin and Gagne ©2009
File-Allocation Table

File-allocation table (FAT) –


disk-space allocation used
by MS-DOS and OS/2.
Each block is indexed by block
number.

Operating System Concepts with Java – 8th Edition 10.36 Silberschatz, Galvin and Gagne ©2009
Indexed Allocation

 Brings all pointers together into the index block


 Logical view

index table

Operating System Concepts with Java – 8th Edition 10.37 Silberschatz, Galvin and Gagne ©2009
Example of Indexed Allocation

•Need index table


•Random access
•Dynamic access
without external
fragmentation, but
have overhead of
index block

Operating System Concepts with Java – 8th Edition 10.38 Silberschatz, Galvin and Gagne ©2009
Indexed Allocation – Mapping (Cont.)

outer-index

index table file

Operating System Concepts with Java – 8th Edition 10.39 Silberschatz, Galvin and Gagne ©2009
Combined Scheme: UNIX UFS (4K bytes per block)

Operating System Concepts with Java – 8th Edition 10.40 Silberschatz, Galvin and Gagne ©2009
Free-Space Management
 Bit vector (n blocks)

0 1 2 n-1

0  block[i] free


bit[i] =
1  block[i] occupied

Block number calculation

(number of bits per word) *


(number of 0-value words) +
offset of first 1 bit

Operating System Concepts with Java – 8th Edition 10.41 Silberschatz, Galvin and Gagne ©2009
Free-Space Management (Cont.)
 Bit map requires extra space
 Example:
block size = 212 bytes
disk size = 230 bytes (1 gigabyte)
n = 230/212 = 218 bits (or 32K bytes)
 Easy to get contiguous files
 Linked list (free list)
 Cannot get contiguous space easily
 No waste of space

Operating System Concepts with Java – 8th Edition 10.42 Silberschatz, Galvin and Gagne ©2009
Free-Space Management (Cont.)
 Need to protect:
 Pointer to free list
 Bit map
 Must be kept on disk
 Copy in memory and disk may differ
 Cannot allow for block[i] to have a situation where bit[i] =
1 in memory and bit[i] = 0 on disk
 Solution:
 Set bit[i] = 1 in disk
 Allocate block[i]
 Set bit[i] = 1 in memory

Operating System Concepts with Java – 8th Edition 10.43 Silberschatz, Galvin and Gagne ©2009
Linked Free Space List on Disk

Operating System Concepts with Java – 8th Edition 10.44 Silberschatz, Galvin and Gagne ©2009
End of Chapter 11

Operating System Concepts with Java – 8th Edition 10.45 Silberschatz, Galvin and Gagne ©2009

You might also like