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