Transcript File-System

Chapter 10: File-System
 10.1 File Concept
 10.2 Access Methods
 10.3 Directory Structure
 10.4 File-System Mounting
 10.5 File Sharing
 10.6 Protection
Operating System Principles
10.1
Silberschatz, Galvin and Gagne ©2005
Objectives
 To explain the function of file systems
 To describe the interfaces to file systems
 To discuss file-system design tradeoffs, including
access methods, file sharing, file locking, and
directory structures
 To discuss the semantics of sharing files among
multiple processes, users, and computers
 To explore file-system protection
Operating System Principles
10.2
Silberschatz, Galvin and Gagne ©2005
10.1 File Concept
 The operating system abstracts from the physical
properties of its storage to define a logical storage unit,
the file.
 Files are mapped by the OS onto physical, usually
nonvolatile, devices.
 Use Ultra-Editor to examine contents of a file
 File types:

Data, free form or formatted
numeric
 character
 binary


Program
source
 object

Operating System Principles
10.3
Silberschatz, Galvin and Gagne ©2005
File Structure
 None - sequence of words, bytes
 Simple record structure



Lines and Pages
Fixed length
Variable length
 Complex Structures



Formatted document
Relocatable load file
Executable
 Who decides:


Operating system
Program
Operating System Principles
10.4
Silberschatz, Galvin and Gagne ©2005
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 file types
 Location – pointer to the 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 secondary storage, like a disk
Operating System Principles
10.5
Silberschatz, Galvin and Gagne ©2005
File Operations
 File is an abstract data type with the following basic
operations

create

write


The system must keep a writer pointer. File info in the directory also
updated
read

The system must keep a read pointer.

reposition within file (known as file seek)

delete

truncate
 Other operations

append, rename, copy, get/set file attributes
Operating System Principles
10.6
Silberschatz, Galvin and Gagne ©2005
Open and Close Files
 Most file operations involve searching the directory for a
file

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
 The OS normally maintains two-level open-file tables,
per-process and system-wide
Operating System Principles
10.7
Silberschatz, Galvin and Gagne ©2005
Open and Close 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: 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 Principles
10.8
Silberschatz, Galvin and Gagne ©2005
Open File Locking
 Provided by some operating systems and file systems
 Mediates access to a file, like process synchronization

shared lock and exclusive lock
 Mandatory or advisory:

Mandatory – access is denied depending on locks held and
requested (Windows)

Advisory – processes can find status of locks and decide
what to do (Unix)
Operating System Principles
10.9
Silberschatz, Galvin and Gagne ©2005
File Locking Example – Java API
import java.io.*;
import java.nio.channels.*;
public class LockingExample {
public static final boolean EXCLUSIVE = false;
public static final boolean SHARED = true;
public static void main(String arsg[]) throws IOException {
FileLock sharedLock = null;
FileLock exclusiveLock = null;
try {
RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
// get the channel for the file
FileChannel ch = raf.getChannel();
// this locks the first half of the file - exclusive
exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE);
/** Now modify the data . . . */
// release the lock
exclusiveLock.release();
Operating System Principles
10.10
Silberschatz, Galvin and Gagne ©2005
File Locking Example – Java API (cont)
// this locks the second half of the file - shared
sharedLock = ch.lock(raf.length()/2+1, raf.length(), SHARED);
/** Now read the data . . . */
// release the lock
sharedLock.release();
} catch (java.io.IOException ioe) {
System.err.println(ioe);
}finally {
if (exclusiveLock != null)
exclusiveLock.release();
if (sharedLock != null)
sharedLock.release();
}
}
}
Operating System Principles
10.11
Silberschatz, Galvin and Gagne ©2005
Common File
Types
Unix: use magic
number to
indicate roughly
file types
Skip: p.428 第 2
段及第 3 段
Skip: 10.1.4
Operating System Principles
10.12
Silberschatz, Galvin and Gagne ©2005
Internal File Structure
 All disks is performed in units of one block
(physical record)
 Logical records may vary in length
 Packing a number of logical records into physical
blocks is the common solution

Example: UNIX defines all files to be streams of bytes.
Its logical record size is 1 byte.
 Packing can be done either by user’s application
or by the operating system

Internal fragmentation problem
Operating System Principles
10.13
Silberschatz, Galvin and Gagne ©2005
10.2 Access Methods
 Sequential Access (based on tape model)
read next
write next
reset to the beginning
no read after last write
 Direct Access (or relative access)
read n
write n
position to n
read next
write next
rewrite n
(n = relative block number)
Operating System Principles
10.14
Silberschatz, Galvin and Gagne ©2005
Some systems support only one of sequential access
and direct access for files.
Simulation of sequential access on a direct-access file
Simulation of direct access on a sequential-access file
is inefficient and clumsy
Operating System Principles
10.15
Silberschatz, Galvin and Gagne ©2005
Other Access Methods
Example of Index and Relative Files
Operating System Principles
10.16
Silberschatz, Galvin and Gagne ©2005
10.3 Directory Structure
 A disk may have several partitions. A partition may be
with a file system. Several partitions, maybe from many
disks, could form a volume that holds a file system.
 A collection of nodes containing information about all files
Directory
Files
F1
F2
F3
F4
Fn
• Both the directory structure and the files reside on disk
• Backups of these two structures are kept on tapes
Operating System Principles
10.17
Silberschatz, Galvin and Gagne ©2005
A Typical File-system Organization
Operating System Principles
10.18
Silberschatz, Galvin and Gagne ©2005
Operations Performed on Directory
 Search for a file
 Create a file
 Delete a file
 List a directory
 Rename a file
 Traverse the file system

for backup (to tape)
Operating System Principles
10.19
Silberschatz, Galvin and Gagne ©2005
Organize 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, …
Operating System Principles
10.20
Silberschatz, Galvin and Gagne ©2005
Single-Level Directory
 A single directory for all users
Naming problem
Grouping problem
Operating System Principles
10.21
Silberschatz, Galvin and Gagne ©2005
Two-Level Directory
 Separate directory for each user
 Can have the same file name for different user
 Isolation or Allow access to other’s files?
 If allowed, then use path name
 Efficient searching
 Use environment variable: search path
 No grouping capability
Operating System Principles
10.22
Silberschatz, Galvin and Gagne ©2005
Tree-Structured Directories
Operating System Principles
10.23
Silberschatz, Galvin and Gagne ©2005
Tree-Structured Directories
 Efficient searching
 Grouping Capability
 Current directory (working directory)

cd /spell/mail/prog
 type list
 Absolute or relative path name
 Creating a new file is done in current directory
 Delete a file
rm <file-name>
 Delete a directory

MS-DOS will not delete a directory unless it is empty
 Unix provides an option to delete all files and sub-directories
under a directory
Operating System Principles
10.24
Silberschatz, Galvin and Gagne ©2005
Tree-Structured Directories
 Creating a new subdirectory is done in current
directory
mkdir <dir-name>
Example: if current directory is /mail
mkdir count
mail
prog
copy prt exp count
In Unix “rm –f mail”  deleting the entire subtree rooted by “mail”
Operating System Principles
10.25
Silberschatz, Galvin and Gagne ©2005
Acyclic-Graph Directories
 Use link to have shared subdirectories and files
 Another approach: duplicate all information about
subdirectories and files in both sharing directories. But it is
hard to maintain consistency when a shared file is modified.
Operating System Principles
10.26
Silberschatz, Galvin and Gagne ©2005
Acyclic-Graph Directories
 New directory entry type

Link – another name (pointer) to an existing file

Resolve the link – follow pointer to locate the file
 Two different names (aliasing)

A file could have multiple absolute path names.

Traverse problem.
 If dict deletes all  dangling pointer. Solutions:

Just wait for users to find out. It is used with symbolic links:

Preserve the file until all references to it are deleted. Unix uses
this approach for hard links by keeping a reference count in the
file information block.
 Acyclic-graph could be maintained by prohibiting
multiple references to directories
SKIP: 10.3.7
Operating System Principles
10.27
Silberschatz, Galvin and Gagne ©2005
10.4 File System Mounting
 A file system must be mounted before it can be accessed
 A unmounted file system (i.e. Fig. 10-11(b)) is mounted at
a mount point
existing
Operating System Principles
unmounted volume
10.28
mount point
Silberschatz, Galvin and Gagne ©2005
Mount Point
1. The OS is first given the name of the device and the mount point
2. The OS verifies that the device contains a valid file system

Read the device directory and verify the directory format
3. The OS notes in the directory structure that a file system is
mounted at the specified mount point
4. If the volume is unmounted, the file system is restored to the
situation before mounting

OS may impose semantics to clarify functionality

May disallow a mount over a directory containing files; or may
obscure the directory’s existing files until the file system is unmounted

May allow the same file system to be mounted repeatedly, at different
mount points; or it may allow only one mount per file system
Operating System Principles
10.29
Silberschatz, Galvin and Gagne ©2005
Mount Examples
 Macintosh searches for a file system on a disk first
encountered. If found, the file system is auto-mounted at
the root level
 Windows OS maintains an extended two-level directory
structure, with devices and volumes assigned drive letters.

Recent Windows allow a file system to be mounted
anywhere in the directory tree

Windows auto-discover all devices and mount all located file
systems at boot time
 Unix has explicit mount commands
Operating System Principles
10.30
Silberschatz, Galvin and Gagne ©2005
10.5 File 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
Operating System Principles
10.31
Silberschatz, Galvin and Gagne ©2005
File Sharing – Multiple Users
 File sharing, file naming, and file protection are important in
multiple-user systems

The system may allow a user to access other user’s
files by default or it may require specific access grant
 Most systems use the concept of file owner and group, as file
attributes, to implement file sharing and protection

User IDs identify users, allowing permissions and
protections to be per-user

Group IDs allow users to be in groups, permitting
group access rights
Operating System Principles
10.32
Silberschatz, Galvin and Gagne ©2005
File Sharing – Remote File Systems
 Uses networking to allow file system access between
systems

Manually via programs like FTP
 Both
anonymous and authenticated access

Automatically, seamlessly using distributed file
systems, in which remote directories are visible from a
local machine

Semi automatically via the world wide web, where a
browser is needed to access remote files, and separate
operations (a wrapper for ftp) are used to transfer files
Operating System Principles
10.33
Silberschatz, Galvin and Gagne ©2005
The Client-Server Model
 Client-server model allows clients to mount remote
file systems from servers

Server can serve multiple clients

Client, specified by a network name or IP address, and
user-on-client identification is insecure or complicated (by
encryption)

NFS is standard UNIX client-server file sharing protocol
 User’s
ID on the client and server must match
 Once
the remote file system is mounted, file operation
requests are sent on behalf of the user across the network to
the server via the DFS protocol
 Standard
operating system file calls are translated into
remote calls
Operating System Principles
10.34
Silberschatz, Galvin and Gagne ©2005
Distributed Information Systems
 Also known as distributed naming services
 LDAP, DNS, NIS (network information service, yellow
pages), Active Directory implement unified access to
information needed for remote computing
 In Windows CIFS (common internet file system),
network information is used with user authentication to
create a network login. A newer version is called active
directory.
 One distributed LDAP (lightweight directory-access
protocol) could be used by an organization to store all
user and resource information for all organization’s
computers. The result is secure single sign-on for
users.
Skip 10.5.2.3, 10.5.3
Operating System Principles
10.35
Silberschatz, Galvin and Gagne ©2005
10.6 Protection
 Reliability is to keep the computer system from physical
damage. (Chapter 12)
 Protection is to keep it from improper access.
 File owner/creator should be able to control:

what can be done

by whom
 Basic types of controlled access

Read

Write

Execute

Append

Delete

List
Operating System Principles
Other high-level functions, like copying and
editing files may be implemented by making
lower-level system calls
10.36
Silberschatz, Galvin and Gagne ©2005
Access Control Lists
 Mode of access: read, write, execute
 Three classes of users
a) owner access
7

b) group access
6

c) public access
1

rwx
111
rwx
110
rwx
001
 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
chmod
group
public
761
game
Attach a group to a file
chgrp
Operating System Principles
G
game
10.37
Silberschatz, Galvin and Gagne ©2005
Windows XP Access-control List Management
Operating System Principles
10.38
Silberschatz, Galvin and Gagne ©2005
A Sample UNIX Directory Listing
Operating System Principles
10.39
Silberschatz, Galvin and Gagne ©2005
Other Protection Approaches
 Associate a password with each file

Disadvantages
 The
number of passwords that a user needs to remember
 If only one password is used for all the files, then
protection is on an all-or-none basis
–
Some system allow the user to associate a password with a
directory
 Adding protection mechanisms to single-user OS is
difficult
 Directory protection

Control the creation and deletion of files in a directory

Control whether a user could check the existence of a
file in a directory. (Listing the contents of a directory)
Operating System Principles
10.40
Silberschatz, Galvin and Gagne ©2005