Lecture 12: File Management

54
Lecture 12: File Management Lecture 12: File Management

description

Lecture 12: File Management. File Management. provides the file abstraction for data storage guarantees data validity (most of the time) performance: throughput and response time enforces protection. File-System Interface. File Concept Access Methods Directory Structure - PowerPoint PPT Presentation

Transcript of Lecture 12: File Management

Page 1: Lecture 12: File Management

Lecture 12: File ManagementLecture 12: File Management

Page 2: Lecture 12: File Management

10.2 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File ManagementFile Management

provides the file abstraction for data storage guarantees data validity (most of the time) performance: throughput and response time enforces protection

Page 3: Lecture 12: File Management

10.3 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File-System InterfaceFile-System Interface

File Concept Access Methods Directory Structure File-System Mounting File Sharing Protection

Page 4: Lecture 12: File Management

10.4 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File ConceptFile Concept

Contiguous logical address space Persistent - stored on non-volatile memory (storage) Identified by (external) name

pathname in UNIX

Page 5: Lecture 12: File Management

10.5 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File StructureFile Structure

None - sequence of words, bytes Simple record structure

Lines Fixed length Variable length

Complex Structures Formatted document Relocatable load file

Can simulate last two with first method by inserting appropriate control characters

Who decides: Operating system Program

Page 6: Lecture 12: File Management

10.6 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File AttributesFile 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

Page 7: Lecture 12: File Management

10.7 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File OperationsFile Operations

Create Write Read Reposition within file Delete Truncate Open(Fi) –open read/write session for Fi

File pointer: pointer to last read/write location, Close (Fi) – close read/write session

Page 8: Lecture 12: File Management

10.8 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Access MethodsAccess Methods

Sequential Accessread nextwrite next resetno read after last write

(rewrite) Direct Access

read nwrite nposition to n

read nextwrite next

rewrite nn = relative block number

Page 9: Lecture 12: File Management

10.9 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

DirectoriesDirectories

Set of files Used to organize files Translates external file names to internal file names (file labels, i-

nodes, file control blocks) Treated as a file but with special operations

Page 10: Lecture 12: File Management

10.10 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Operations Performed on DirectoryOperations Performed on Directory

Search for a file Create a file Delete a file List a directory Rename a file Traverse the file system

Page 11: Lecture 12: File Management

10.11 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Organize the Directory (Logically) to ObtainOrganize the Directory (Logically) to Obtain

Efficiency – locating a file quickly Naming – convenient to users

Two users can have same name for different files The same file can have several different names

Grouping – logical grouping of files by properties, (e.g., all Java programs, all games, …)

Page 12: Lecture 12: File Management

10.12 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Single-Level DirectorySingle-Level Directory

A single directory for all users

Naming problem

Grouping problem

Page 13: Lecture 12: File Management

10.13 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Two-Level DirectoryTwo-Level Directory

Separate directory for each user

Path name Can have the same file name for different user Efficient searching No grouping capability

Page 14: Lecture 12: File Management

10.14 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Tree-Structured DirectoriesTree-Structured Directories

Page 15: Lecture 12: File Management

10.15 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Tree-Structured Directories (Cont)Tree-Structured Directories (Cont)

Efficient searching

Grouping Capability

Current directory (working directory) cd /spell/mail/prog type list

Page 16: Lecture 12: File Management

10.16 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Tree-Structured Directories (Cont)Tree-Structured Directories (Cont)

Absolute or relative path name 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”

Page 17: Lecture 12: File Management

10.17 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Acyclic-Graph DirectoriesAcyclic-Graph Directories

Have shared subdirectories and files

Page 18: Lecture 12: File Management

10.18 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Acyclic-Graph Directories (Cont.)Acyclic-Graph Directories (Cont.)

Two different names (aliasing)

If dict deletes list dangling pointer

Solutions: Backpointers, so we can delete all pointers

Variable size records a problem Backpointers using a daisy chain organization Entry-hold-count solution

New directory entry type Link – another name (pointer) to an existing file Resolve the link – follow pointer to locate the file

Page 19: Lecture 12: File Management

10.19 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File System MountingFile System Mounting

A file system must be mounted before it can be accessed

A file system is mounted at a mount point (a directory)

Page 20: Lecture 12: File Management

10.20 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

(a) Existing. (b) Unmounted Partition(a) Existing. (b) Unmounted Partition

Page 21: Lecture 12: File Management

10.21 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Mount PointMount Point

Page 22: Lecture 12: File Management

10.22 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File SharingFile Sharing

Sharing of files on multi-user systems is desirable

Sharing may be done through a protection scheme

On distributed systems, files may be shared across a network

Network File System (NFS) is a common distributed file-sharing method

Page 23: Lecture 12: File Management

10.23 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File Sharing – Multiple UsersFile Sharing – Multiple Users

User IDs identify users, allowing permissions and protections to be per-user

Group IDs allow users to be in groups, permitting group access rights

Page 24: Lecture 12: File Management

10.24 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File Sharing – Remote File SystemsFile Sharing – Remote File Systems

Uses networking to allow file system access between systems Manually via programs like FTP Automatically, seamlessly using distributed file systems Semi automatically via the world wide web

Client-server model allows clients to mount remote file systems from servers Server can serve multiple clients Client and user-on-client identification is insecure or

complicated NFS is standard UNIX client-server file sharing protocol CIFS is standard Windows protocol Standard operating system file calls are translated into remote

calls

Page 25: Lecture 12: File Management

10.25 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File Sharing – Failure ModesFile Sharing – Failure Modes

Remote file systems add new failure modes, due to network failure, server failure

Recovery from failure can involve state information about status of each remote request

Stateless protocols such as NFS include all information in each request, allowing easy recovery but less security

Page 26: Lecture 12: File Management

10.26 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File Sharing – Consistency SemanticsFile Sharing – Consistency Semantics

Consistency semantics specify how multiple users are to access a shared file simultaneously Similar to Ch 7 process synchronization algorithms

Tend to be less complex due to disk I/O and network latency (for remote file systems

Andrew File System (AFS) implemented complex remote file sharing semantics

Unix file system (UFS) implements: Writes to an open file visible immediately to other users of

the same open file Sharing file pointer to allow multiple users to read and write

concurrently AFS has session semantics

Writes only visible to sessions starting after the file is closed

Page 27: Lecture 12: File Management

10.27 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

ProtectionProtection

File owner/creator should be able to control: what can be done by whom

Types of access Read Write Execute Append Delete List

Page 28: Lecture 12: File Management

10.28 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Access Lists and GroupsAccess Lists and Groups

Mode of access: read, write, execute Three classes of users

RWXa) owner access 7 1 1 1RWXb) group access 6 1 1 0RWXc) public access 1 0 0 1

Ask manager to create a group (unique name), say G, and add some users to the group.

For a particular file (say game) or subdirectory, define an appropriate access.

owner group public

chmod 761 game

Attach a group to a file chgrp G game

Page 29: Lecture 12: File Management

10.29 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Protection MechanismsProtection Mechanisms files are OS objects: unique names and a finite set of operations that

processes can perform on them protection domain is a set of {object,rights}, where right is the

permission to perform one of the operations at every instant in time, each process runs in some protection domain in Unix, a protection domain is {uid, gid} protection domain in Unix is switched when running a program with

SETUID/SETGID set or when the process enters the kernel mode by issuing a system call

how to store all the protection domains ?

Page 30: Lecture 12: File Management

10.30 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Protection Mechanisms (cont’d)Protection Mechanisms (cont’d) Access Control List (ACL): associate with each object a list of all the protection domains that may access the object and how in Unix ACL is reduced to three protection domains: owner, group and others Capability List (C-list): associate with each process a list of objects that may be accessed along with the operations C-list implementation issues: where/how to store them (hardware, kernel, encrypted in user space) and how to revoke them

Page 31: Lecture 12: File Management

10.31 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

A Sample UNIX Directory ListingA Sample UNIX Directory Listing

Page 32: Lecture 12: File Management

10.32 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Secondary Storage ManagementSecondary Storage Management

Space must be allocated to files Must keep track of the space available for allocation

Page 33: Lecture 12: File Management

10.33 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

PreallocationPreallocation

Need the maximum size for the file at the time of creation Difficult to reliably estimate the maximum potential size of the file Tend to overestimated file size to avoid running out of space

Page 34: Lecture 12: File Management

10.34 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Methods of File Allocation (1)Methods of File Allocation (1)

Contiguous allocation Single set of blocks is allocated to a file at the time of creation A single entry in the file allocation table

Starting block and length of the file External fragmentation will occur

Page 35: Lecture 12: File Management

10.35 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 36: Lecture 12: File Management

10.36 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 37: Lecture 12: File Management

10.37 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Methods of File Allocation (2)Methods of File Allocation (2)

Chained allocation Allocation on basis of individual block Each block contains a pointer to the next block in the chain A single entry in the file allocation table

Starting block and length of file No external fragmentation Best for sequential files No accommodation for the principle of locality

Page 38: Lecture 12: File Management

10.38 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 39: Lecture 12: File Management

10.39 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 40: Lecture 12: File Management

10.40 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Methods of File Allocation (3)Methods of File Allocation (3)

Indexed allocation File allocation table contains a separate one-level index

for each file The index has one entry for each portion allocated to the

file The file allocation table contains block number for the

index

Page 41: Lecture 12: File Management

10.41 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 42: Lecture 12: File Management

10.42 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 43: Lecture 12: File Management

10.43 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File AllocationFile Allocation contiguous: a contiguous set of blocks is allocated to a file at the time of

file creation

consolidation to improve locality

chained allocation: each block contains a pointer to the next one in the chain

good for sequential files file size must be known at the time of file creation external fragmentation

indexed allocation: good both for sequential and direct access (UNIX)

Page 44: Lecture 12: File Management

10.44 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Free Space ManagementFree Space Management bitmap: one bit for each block on the disk

chained free portions: {pointer to the next one, length} index: treats free space as a file

good to find a contiguous group of free blocks small enough to be kept in memory

Page 45: Lecture 12: File Management

10.45 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

UNIX File SystemUNIX File System

Naming External/Internal names translation using directories

Lookup File blocks Disk blocks

Protection Free Space Management

Page 46: Lecture 12: File Management

10.46 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File NamingFile Naming

External names (used by the application) Pathname: /usr/users/file1

Internal names (used by the OS kernel) I-node: file number/index on disk

superblock

File system on disk

I-node area( one I-node per file)

File-block area

01

Page 47: Lecture 12: File Management

10.47 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

DirectoriesDirectories

Files that store translation tables (external names to internal names)

usr 23

Root directory(always I-node 2)

users 41

usr

file1 87

usr users

/usr/users/file1 corresponds to I-node 87

Page 48: Lecture 12: File Management

10.48 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File Content LookupFile Content Lookup

address table used to translate logical file blocks into disk blocks address table stored in the I-node

File withi-node 87

File System disk

0 1 2

45 65 85

address table456585

Page 49: Lecture 12: File Management

10.49 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Page 50: Lecture 12: File Management

10.50 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File ProtectionFile Protection

ACL with three protection domains (file owner, file owner group, others)

Access rights: read/write/execute Stored in the i-node

Page 51: Lecture 12: File Management

10.51 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

Free Space ManagementFree Space Management

Free I-nodes Marked as free on disk An array of 50 free i-nodes stored in the superblock

Free file blocks Stored as a list of 50- free block arrays First array stored in the superblock

Page 52: Lecture 12: File Management

10.52 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

In-Kernel File System Data StructuresIn-Kernel File System Data Structures

01 File system

on disk

OS Kernel

Buffer cache

I-node cachePer-OS Open File Table(offset in file, ptr to I-node)

Per-process Open File Table

PCBs

Application fd=open(pathname,mode); /* fd = index in Per-Proc OFT */for (..) read(fd,buf,size);close(fd);

Page 53: Lecture 12: File Management

10.53 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File System Metadata Consistency ProblemFile System Metadata Consistency Problem file system uses the buffer cache for performance reasons two copies of a disk block (buffer cache, disk) -> consistency problem if the system crashes before all the modified blocks are written back to disk the problem is critical especially for the blocks that contain control information (meta-data): directory blocks, i-node, free-list Solution:

write through meta-data blocks (expensive) or order of write-backs is important ordinary file data blocks written back periodically (sync) utility programs for checking block and directory consistency after crash

Page 54: Lecture 12: File Management

10.54 Silberschatz, Galvin and Gagne ©2005Operating System Concepts – 7th Edition, Jan 1, 2005

File System MetadataFile System MetadataConsistency Problem: ExamplesConsistency Problem: Examples

Example 1: create a new file Two updates: (1) allocate a free I-node; (2) create an entry in the directory (1) and (2) must be write-through (expensive) or (1) must be written-back before (2) If (2) is written back first and a crash occurs before (1) is written back the directory structure is inconsistent and cannot be recovered

Example 2: write a new block to a file Two updates: (1) allocate a free block; (2) update the address table of the I-node (1) and (2) must be write-through or (1) must be written-back before (2) If (2) is written back first and a crash occurs before (1) is written back the I-node structure is inconsistent and cannot be recovered