Chapter 10 PowerPoint

advertisement
Operating System Concepts
chapter 10
CS 355
Operating Systems
Dr. Matthew Wright
File Concept
• A file is a named collection of related information that is recorded
on secondary storage.
• A file has a define structure, which we must know in order to
interpret its contents. Examples: text, image, executable, etc.
• Files have attributes, usually including the following:
– Name: human-readable file name
– Identifier: numeric identifier within the file system
– Type: some systems formally support different file types
– Location: address of the file in a storage device
– Size: number of bytes (or words, or blocks) in the file
– Protection: access-control information
– Time, date, and user identification: may be useful for
protection, security, and resource-monitoring
File Operations
• Since a file is an abstract data type, we should define the operations
that can be performed on files.
• The operating system provides system calls to perform these operations
– Create: the OS must find space in the file system and add an entry to
the directory
– Write: OS must find the location of a file and usually keeps a write
pointer that indicates where the next write will occur
– Read: OS must find the file and usually keeps a read pointer that
indicates where the next read will occur
– Reposition within a file: change the file position pointer to a given
value (i.e. seek a given location)
– Delete: release the space allocated to a file and update the directory
– Truncate: erase the contents of a file, but keep its attributes
File Operations
• To reduce directory searching, many systems require an open()
system call before a file is first used.
• The OS maintains an open-file table with information about all
open files.
• When a process finishes using a file, it calls a close() system
call.
• The open-file table contains the following information for each file:
– File pointer: stores the current read/write location within a file;
unique to a process accessing the file
– File-open count: the number of processes accessing the file
– Disk location of the file: to improve access speed, the location of
the file on disk is stored in memory
– Access rights: indicates what operations a process is allowed to
do to a file
File Locking
• The operating system may provide processes the ability to lock an
open file to prevent other processes from gaining access to it.
• Locks may be shared by several processes or exclusive to one
process.
• Locks may be mandatory or advisory
– Mandatory locks are enforced by the operating system
– Advisory locks are not enforced by the OS; it is up to application
programmers to ensure that locks are properly acquired and
released
• Windows systems generally use mandatory locking, while UNIX
systems generally use advisory locking.
• File locking in Java is accomplished via the lock() method of the
FileChannel object associated with a file.
File Types
• An operating system may be designed to recognize and support
various file types.
• File types are often stored in the file name, as a file extension (the
part of the file name following a period).
• The system may use the file extension to indicate the type of
operations that can be done to a file
• File extensions are often just hints, not guarantees that a certain
file is of a given type.
• Mac OS X stores a creator attribute with each file: the name of the
program that created the file, so that it can open files with the
correct application
• UNIX uses a magic number stored at the beginning of some files to
indicate the general type; users may add file extension hints, but
the OS does not use them
File Structure
• Some operating systems impose certain structure on files or
require that files conform to predetermined file types.
• For example, UNIX considers each file to be a sequence of 8-bit
bytes, though it does not impose an interpretation of the bytes.
• All operating systems must support some sort of executable file so
that users can run programs.
• Mac OS requires that files contain two parts: a resource fork
(containing user-specific information) and a data fork (containing
program code or data).
• Since disk I/O is performed in blocks of set size (e.g. 512 bytes),
the OS must pack logical records into physical blocks to be stored
on the disk.
Practice (10.2)
Why do some systems keep track of the type of a
file, while others leave it to the user and others
simply do not implement multiple file types?
Which system is “better”?
Practice (10.13)
What are the advantages and disadvantages of
recording the name of the creating program with
the file’s attributes (as is done in the Macintosh
Operating System)?
File Access
• Sequential Access: information is processed in order, one record
after another
• Direct Access: views a file as a numbered sequence of blocks that
may be accessed in any order
• Direct access can be extended to use an index to help find
locations within a file, which can reduce access time for finding
information in a large file.
Storage Structure
• Disk can be subdivided into partitions.
– Partitions also known as minidisks or slices.
– 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.
• Entity containing file system known as a volume.
– Each volume containing a file system also tracks that file system’s
info in a device directory or volume table of contents.
• As well as general-purpose file systems there are many specialpurpose file systems, frequently all within the same operating
system or computer.
Directory Overview
• A directory can be viewed as a symbol table that translates file
names into directory entries.
• The following operations are performed on directories:
– Search for a file
– Create a file
– Delete a file
– List the contents of a directory
– Rename a file
– Traverse the file system: access every directory and file within a
directory structure (e.g. for backup)
Directory Structure
Single-Level Directory
• Simplest structure
• Requires files to have unique names
• Provides no facility for grouping files
• Not suitable for organizing large number of files or for multiuser
systems
Directory Structure
Two-Level Directory
• Provides a master file directory (MFD) for the system and user file
directory (UFD) for each user
• Isolates one user’s files from other users (good for protection, bad
for collaboration)
Directory Structure
Tree-Structured Directory
• Allows users to create their own directories to organize files
• Each program must keep track of its current directory.
• Path names can
be absolute or
relative.
• A user could be
allowed access
to files of
another user.
Directory Structure
Acyclic-Graph Directory
• Allows subdirectories to be shared, existing in the file system in two (or
more) places at once.
• This could be implemented by
duplicating file information in
different directories, but such
an implementation may be
hard to keep consistent
• UNIX: implements shared files
and directories via links,
which are pointers to other
files or directories
• If a file is deleted, what
happens to any links pointing
to it?
Directory Structure
General Graph Directory
• Allowing links could produce cycles in the directory graph.
• How could we guarantee no cycles?
• If we allow
cycles, then
we must
design search
algorithms so
that no part
of the file
system is
searched
repeatedly.
Practice (10.4)
Could you simulate a multilevel directory structure
with a single-level directory structure in which
arbitrarily long names can be used?
If your answer is yes, explain how you can do so,
and contrast this scheme with the multilevel
directory scheme. If your answer is no, explain what
prevents your simulation’s success.
How would your answer change if file names were
limited to seven characters?
File-System Mounting
• Each volume must be mounted before it can be available to
processes on the system
• To mount a volume, the OS must be given the device name and
the mount point (the location within the file structure where the
new file system will be attached).
• What happens if a file system is mounted over a directory that
contains files?
• Example: Macintosh searches new devices for file system; if it finds
a file system, it automatically mounts it at root level
• Example: Windows maintains a two-level directory structure, with
devices and volumes assigned drive letters, though recent versions
allow a file system to be mounted at any point in the directory
tree.
File Sharing
• If a system supports multiple users, how does it provide protection
and sharing of files?
• Many systems associate an owner and group with each file and
directory.
– The owner is the user who can change attributes and has the
most control over the file.
– The group is a set of users who share access to the file.
– If a user requests an operation on a file, the OS determines
whether the user is the owner of the file or part of the group,
and thus whether the requested operation is permitted.
Remote File Systems
• In a distributed file system (DFS), remote directories are visible
from a local machine.
• The client-server model allows clients to mount remote file
systems from servers (e.g. H:\ drive at Huntington University).
• Standard operating system file calls are translated into remote
calls.
• Distributed Information Systems (distributed naming services)
such as LDAP, DNS, and Active Directory implement unified access
to information needed for remote computing
• Remote file systems add new failure modes, particularly due to
network failure or server failure.
• Recovery from failure can involve state information about status of
each remote request.
Consistency Semantics
• Consistency semantics specify how multiple users are to access a shared
file simultaneously.
• Similar to process synchronization algorithms from Chapter 6, but less
complex due to slow speed of disk I/O and network latency (for remote
file systems).
• Unix file system (UFS) implements:
– Writes to an open file visible are immediately to other users of the
same open file.
– Sharing file pointer to allow multiple users to read and write
concurrently.
• Andrew File System (AFS) implemented complex remote file sharing
semantics
– Writes to an open file by one user are not immediately visible to other
users who have the same file open.
– Once a file is closed, the changes to it are visible only in sessions
starting later; already open instances of the file do not change.
Protection
• Protection involves keeping files safe from improper access.
• Protection mechanisms limit the types of access that can be made.
• Operations that might be controlled include: read, write, execute,
append, delete, list attributes
• Access control is usually dependent on the identity of the user
– An access-control list (ACL) specifies the types of access allowed
for each user
– An ACL can be very long and difficult to manage
– A simpler solution is to grant permissions to categories of users,
such as owner, group, and universe.
– ACLs may be combined with owner/group/universe permissions.
Protection
• UNIX allows read, write, and execute privileges to be granted or
denied to each of owner, group, and universe.
• Windows provides protection options in the Security tab of the File
Properties dialog box.
• Protection could also be achieved by requiring passwords in order
to access files.
• Directories must be protected as well.
• If files may have numerous path names (when links exist), then a
given user may have different access rights to a particular file,
depending on the path name used.
Practice (10.8)
Consider a system that supports 5,000 users.
Suppose that you want to allow 4,990 of these
users to be able to access one file.
a) How would you specify this protection scheme
in UNIX?
b) Can you suggest another protection scheme
that can be used more effectively for this
purpose than the scheme provided by UNIX?
Practice (10.19)
What are some advantages and disadvantages of
associating with remote file systems (stored on
file servers) a different set of failure semantics
from that associated with local file systems?
Download