Operating Systems CMPSC 473 - PowerPoint PPT Presentation

Loading...

PPT – Operating Systems CMPSC 473 PowerPoint presentation | free to download - id: 491b3d-NWE3N



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Operating Systems CMPSC 473

Description:

Operating Systems CMPSC 473 I/O Management (1) November 19 2009 - Lecture 21 Instructor: Bhuvan Urgaonkar File-System Structure File structure Logical storage unit ... – PowerPoint PPT presentation

Number of Views:195
Avg rating:3.0/5.0
Slides: 146
Provided by: csePsuEd5
Learn more at: http://www.cse.psu.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Operating Systems CMPSC 473


1
Operating SystemsCMPSC 473
  • I/O Management (1)
  • November 19 2009 - Lecture 21
  • Instructor Bhuvan Urgaonkar

2
File-System Structure
  • File structure
  • Logical storage unit
  • Collection of related information
  • File system resides on secondary storage (disks)
  • File system organized into layers
  • File control block storage structure consisting
    of information about a file

3
Layered File System
4
A Typical File Control Block
5
In-Memory FS Structures
  • Opening a file
  • Reading a file

6
File-System Structure
  • File structure
  • Logical storage unit
  • Collection of related information
  • File system resides on secondary storage (disks)
  • File system organized into layers
  • File control block storage structure consisting
    of information about a file

7
Virtual File Systems
  • Virtual File Systems (VFS) provide an
    object-oriented way of implementing file systems.
  • VFS allows the same system call interface (the
    API) to be used for different types of file
    systems.
  • The API is to the VFS interface, rather than any
    specific type of file system.

8
Schematic View of Virtual File System
9
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

10
Allocation Methods
  • An allocation method refers to how disk blocks
    are allocated for files
  • Contiguous allocation
  • Linked allocation
  • Indexed allocation

11
Contiguous Allocation
  • Each file occupies a set of contiguous blocks on
    the disk
  • Simple only starting location (block ) and
    length (number of blocks) are required
  • Wasteful of space (dynamic storage-allocation
    problem)
  • Files cannot grow

12
Contiguous Allocation of Disk Space
13
Linked Allocation
  • Each file is a linked list of disk blocks blocks
    may be scattered anywhere on the disk.

14
Linked Allocation (Cont.)
  • Simple need only starting address
  • Free-space management system no waste of space
  • Mapping

Q
LA/508
R
Block to be accessed is the Qth block in the
linked chain of blocks representing the
file. Displacement into block R
4 File-allocation table (FAT) disk-space
allocation used by MS-DOS and OS/2.
15
Linked Allocation
16
File-Allocation Table
17
Indexed Allocation
  • Brings all pointers together into the index
    block.
  • Logical view

index table
18
Example of Indexed Allocation
19
Indexed Allocation (Cont.)
  • Need index table
  • Random access
  • Dynamic access without external fragmentation,
    but have overhead of index block.
  • Mapping from logical to physical in a file of
    maximum size of 256K words and block size of 512
    words. We need only 1 block for index table.

Q
LA/512
R
Q displacement into index table R
displacement into block
20
Indexed Allocation Mapping (Cont.)
  • Mapping from logical to physical in a file of
    unbounded length (block size of 512 words).
  • Linked scheme Link blocks of index table (no
    limit on size).

Q1
LA / (512 x 508)
R1
Q1 block of index table R1 is used as follows
Q2
R1 / 512
R2
Q2 displacement into block of index table R2
displacement into block of file
21
Indexed Allocation Mapping (Cont.)
  • Two-level index (maximum file size is 5123)

Q1
LA / (512 x 512)
R1
Q1 displacement into outer-index R1 is used as
follows
Q2
R1 / 512
R2
Q2 displacement into block of index table R2
displacement into block of file
22
Indexed Allocation Mapping (Cont.)
?
outer-index
file
index table
23
Combined Scheme UNIX (4K bytes per block)
24
Free-Space Management
  • Bit vector (n blocks)

0
1
2
n-1

0 ? blocki free 1 ? blocki occupied
biti
???
Block number calculation
(number of bits per word) (number of 0-value
words) offset of first 1 bit
25
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

26
Linked Free Space List on Disk
27
Efficiency and Performance
  • Efficiency dependent on
  • disk allocation and directory algorithms
  • types of data kept in files directory entry
  • Performance
  • disk cache separate section of main memory for
    frequently used blocks
  • free-behind and read-ahead techniques to
    optimize sequential access
  • improve PC performance by dedicating section of
    memory as virtual disk, or RAM disk

28
Page Cache
  • A page cache caches pages rather than disk blocks
    using virtual memory techniques
  • Memory-mapped I/O uses a page cache
  • Routine I/O through the file system uses the
    buffer (disk) cache
  • This leads to the following figure

29
I/O W/O a Unified Buffer Cache
30
Unified Buffer Cache
  • A unified buffer cache uses the same page cache
    to cache both memory-mapped pages and ordinary
    file system I/O

31
I/O Using a Unified Buffer Cache
32
Recovery
  • Consistency checking compares data in directory
    structure with data blocks on disk, and tries to
    fix inconsistencies
  • Use system programs to back up data from disk to
    another storage device (floppy disk, magnetic
    tape, other magnetic disk, optical)
  • Recover lost file or disk by restoring data from
    backup

33
(No Transcript)
34
(No Transcript)
35
CPU/Memory Sub-system
36
Moving-head Disk Mechanism
37
Overview of Mass Storage Structure
  • Magnetic disks provide bulk of secondary storage
    of modern computers
  • Drives rotate at 60 to 200 times per second
  • Transfer rate is rate at which data flow between
    drive and computer
  • Positioning time (random-access time) is time to
    move disk arm to desired cylinder (seek time) and
    time for desired sector to rotate under the disk
    head (rotational latency)
  • Head crash results from disk head making contact
    with the disk surface
  • Thats bad
  • Disks can be removable
  • Drive attached to computer via I/O bus
  • Busses vary, including EIDE, ATA, SATA, USB,
    Fibre Channel, SCSI
  • Host controller in computer uses bus to talk to
    disk controller built into drive or storage array

38
Disk Structure
  • Disk drives are addressed as large 1-dimensional
    arrays of logical blocks, where the logical block
    is the smallest unit of transfer.
  • The 1-dimensional array of logical blocks is
    mapped into the sectors of the disk sequentially.
  • Sector 0 is the first sector of the first track
    on the outermost cylinder.
  • Mapping proceeds in order through that track,
    then the rest of the tracks in that cylinder, and
    then through the rest of the cylinders from
    outermost to innermost.

39
Disk Attachment
  • Host-attached storage accessed through I/O ports
    talking to I/O busses
  • SCSI itself is a bus, up to 16 devices on one
    cable, SCSI initiator requests operation and SCSI
    targets perform tasks
  • Each target can have up to 8 logical units (disks
    attached to device controller
  • FC is high-speed serial architecture
  • Can be switched fabric with 24-bit address space
    the basis of storage area networks (SANs) in
    which many hosts attach to many storage units
  • Can be arbitrated loop (FC-AL) of 126 devices

40
Cost
  • Main memory is much more expensive than disk
    storage
  • The cost per megabyte of hard disk storage is
    competitive with magnetic tape if only one tape
    is used per drive.
  • The cheapest tape drives and the cheapest disk
    drives have had about the same storage capacity
    over the years.
  • Tertiary storage gives a cost savings only when
    the number of cartridges is considerably larger
    than the number of drives.

41
Memory, Disk Price Trends Compared
42
Disk Scheduling
  • The operating system is responsible for using
    hardware efficiently for the disk drives, this
    means having a fast access time and disk
    bandwidth.
  • Access time has two major components
  • Seek time is the time for the disk are to move
    the heads to the cylinder containing the desired
    sector.
  • Rotational latency is the additional time waiting
    for the disk to rotate the desired sector to the
    disk head.
  • Minimize seek time
  • Seek time proportional to seek distance
  • Disk bandwidth is the total number of bytes
    transferred, divided by the total time between
    the first request for service and the completion
    of the last transfer.

43
Disk Scheduling (Cont.)
  • Several algorithms exist to schedule the
    servicing of disk I/O requests.
  • We illustrate them with a request queue (0-199).
  • 98, 183, 37, 122, 14, 124, 65, 67
  • Head pointer 53

44
FCFS
Illustration shows total head movement of 640
cylinders.
45
SSTF
  • Selects the request with the minimum seek time
    from the current head position.
  • SSTF scheduling is a form of SJF scheduling may
    cause starvation of some requests.
  • Illustration shows total head movement of 236
    cylinders.

46
SSTF (Cont.)
47
SCAN
  • The disk arm starts at one end of the disk, and
    moves toward the other end, servicing requests
    until it gets to the other end of the disk, where
    the head movement is reversed and servicing
    continues.
  • Sometimes called the elevator algorithm.
  • Illustration shows total head movement of 208
    cylinders.

48
SCAN (Cont.)
49
C-SCAN
  • Provides a more uniform wait time than SCAN.
  • The head moves from one end of the disk to the
    other. servicing requests as it goes. When it
    reaches the other end, however, it immediately
    returns to the beginning of the disk, without
    servicing any requests on the return trip.
  • Treats the cylinders as a circular list that
    wraps around from the last cylinder to the first
    one.

50
C-SCAN (Cont.)
51
C-LOOK
  • Version of C-SCAN
  • Arm only goes as far as the last request in each
    direction, then reverses direction immediately,
    without first going all the way to the end of the
    disk.

52
C-LOOK (Cont.)
53
Selecting a Disk-Scheduling Algorithm
  • SSTF is common and has a natural appeal
  • SCAN and C-SCAN perform better for systems that
    place a heavy load on the disk.
  • Performance depends on the number and types of
    requests.
  • Requests for disk service can be influenced by
    the file-allocation method.
  • The disk-scheduling algorithm should be written
    as a separate module of the operating system,
    allowing it to be replaced with a different
    algorithm if necessary.
  • Either SSTF or LOOK is a reasonable choice for
    the default algorithm.

54
I/O Hardware
  • Incredible variety of I/O devices
  • Two ways of communicating
  • Port
  • Bus (daisy chain or shared direct access)
  • Controller Electronics to operate a port/bus or
    a device
  • (more complex controllers host adapter)
  • SCSI controller as well as disk controllers in
    the next fig.
  • I/O instructions control devices
  • Devices have addresses, used by
  • Direct I/O instructions
  • Memory-mapped I/O

55
A Typical PC Bus Structure
56
Device I/O Port Locations on PCs (partial)
57
Communication between host and device
  • Employs registers on the port/controller
  • Typically four important registers
  • Data-in read by the host to get input
  • Data-out written by the host to send output
  • Status Bits readable by the host that indicate
    state of port
  • Has the current command been completed?
  • Has a device error occurred?
  • Is there data available to be read from Data-in
    register?
  • Control Writable by the host to start a command,
    select certain properties of the port (e.g.,
    speed)
  • Interaction between host and controller
  • Polling
  • Interrupts

58
Polling
  • Determines state of device
  • command-ready
  • busy
  • Error
  • Busy-wait cycle to wait for I/O from device

59
Interrupts
  • CPU Interrupt-request line triggered by I/O
    device
  • Interrupt handler receives interrupts
  • Maskable to ignore or delay some interrupts
  • Interrupt vector to dispatch interrupt to correct
    handler
  • Based on priority
  • Some nonmaskable
  • Interrupt mechanism also used for exceptions

60
Interrupt-Driven I/O Cycle
61
Intel Pentium Processor Event-Vector Table
62
Direct Memory Access
  • Used to avoid programmed I/O for large data
    movement
  • Requires DMA controller
  • Bypasses CPU to transfer data directly between
    I/O device and memory

63
Six Step Process to Perform DMA Transfer
DD tells DMA controller
64
Application I/O Interface
  • I/O system calls encapsulate device behaviors in
    generic classes
  • Device-driver layer hides differences among I/O
    controllers from kernel
  • Devices vary in many dimensions
  • Character-stream or block
  • Sequential or random-access
  • Sharable or dedicated
  • Speed of operation
  • read-write, read only, or write only

65
A Kernel I/O Structure
66
Characteristics of I/O Devices
67
Block and Character Devices
  • Block devices include disk drives
  • Commands include read, write, seek
  • Raw I/O or file-system access
  • Memory-mapped file access possible
  • Character devices include keyboards, mice, serial
    ports
  • Commands include get, put
  • Libraries layered on top allow line editing

68
Network Devices
  • Varying enough from block and character to have
    own interface
  • Unix and Windows NT/9x/2000 include socket
    interface
  • Separates network protocol from network operation
  • Includes select functionality
  • Approaches vary widely (pipes, FIFOs, streams,
    queues, mailboxes)

69
Clocks and Timers
  • Provide current time, elapsed time, timer
  • Programmable interval timer used for timings,
    periodic interrupts
  • ioctl (on UNIX) covers odd aspects of I/O such as
    clocks and timers

70
Blocking and Nonblocking I/O
  • Blocking - process suspended until I/O completed
  • Easy to use and understand
  • Insufficient for some needs
  • Nonblocking - I/O call returns as much as
    available
  • E.g., User interface that received keyboard input
    while processing and displaying data on the
    screen
  • One approach Implemented via multi-threading
  • Some threads do blocking I/O, while others
    continue executing
  • Other approach OS provides non-blocking call
  • Does not halt execution of application for an
    extended time, returns quickly with count of
    bytes read or written
  • Good e.g., select () system call for network I/O
  • Asynchronous - process runs while I/O executes
  • Returns immediately, recall event-driven
    programming
  • Difficult to use
  • I/O subsystem signals process when I/O completed

71
Two I/O Methods
Synchronous
Asynchronous
72
Kernel I/O Subsystem
  • Scheduling
  • Some I/O request ordering via per-device queue
  • Some OSs try fairness
  • Buffering - store data in memory while
    transferring between devices
  • To cope with device speed mismatch
  • To cope with device transfer size mismatch
  • To maintain copy semantics

73
Kernel I/O Subsystem
  • Caching - fast memory holding copy of data
  • Always just a copy
  • Key to performance
  • Spooling - hold output for a device
  • If device can serve only one request at a time
  • i.e., Printing
  • Device reservation - provides exclusive access to
    a device
  • System calls for allocation and deallocation
  • Watch out for deadlock

74
Error Handling
  • OS can recover from disk read, device
    unavailable, transient write failures
  • Most return an error number or code when I/O
    request fails
  • System error logs hold problem reports

75
I/O Protection
  • User process may accidentally or purposefully
    attempt to disrupt normal operation via illegal
    I/O instructions
  • All I/O instructions defined to be privileged
  • I/O must be performed via system calls
  • Memory-mapped and I/O port memory locations must
    be protected too

76
Use of a System Call to Perform I/O
Monitor privileged/kernel mode
77
Life Cycle of An I/O Request
78
Performance
  • I/O a major factor in system performance
  • Demands CPU to execute device driver, kernel I/O
    code
  • Context switches due to interrupts
  • Data copying
  • Network traffic especially stressful

79
Improving Performance
  • Reduce number of context switches
  • Reduce data copying
  • Reduce interrupts by using large transfers, smart
    controllers, polling
  • Use DMA
  • Balance CPU, memory, bus, and I/O performance for
    highest throughput

80
A Kernel I/O Structure
81
Characteristics of I/O Devices
82
Block and Character Devices
  • Block devices include disk drives
  • Commands include read, write, seek
  • Raw I/O or file-system access
  • Memory-mapped file access possible
  • Character devices include keyboards, mice, serial
    ports
  • Commands include get, put
  • Libraries layered on top allow line editing

83
Network Devices
  • Varying enough from block and character to have
    own interface
  • Unix and Windows NT/9x/2000 include socket
    interface
  • Separates network protocol from network operation
  • Includes select functionality
  • Approaches vary widely (pipes, FIFOs, streams,
    queues, mailboxes)

84
Clocks and Timers
  • Provide current time, elapsed time, timer
  • Programmable interval timer used for timings,
    periodic interrupts
  • ioctl (on UNIX) covers odd aspects of I/O such as
    clocks and timers

85
Blocking and Nonblocking I/O
  • Blocking - process suspended until I/O completed
  • Easy to use and understand
  • Insufficient for some needs
  • Nonblocking - I/O call returns as much as
    available
  • E.g., User interface that received keyboard input
    while processing and displaying data on the
    screen
  • One approach Implemented via multi-threading
  • Some threads do blocking I/O, while others
    continue executing
  • Other approach OS provides non-blocking call
  • Does not halt execution of application for an
    extended time, returns quickly with count of
    bytes read or written
  • Good e.g., select () system call for network I/O
  • Asynchronous - process runs while I/O executes
  • Returns immediately, recall event-driven
    programming
  • Difficult to use
  • I/O subsystem signals process when I/O completed

86
Two I/O Methods
Synchronous
Asynchronous
87
Kernel I/O Subsystem
  • Scheduling
  • Some I/O request ordering via per-device queue
  • Some OSs try fairness
  • Buffering - store data in memory while
    transferring between devices
  • To cope with device speed mismatch
  • To cope with device transfer size mismatch
  • To maintain copy semantics

88
Kernel I/O Subsystem
  • Caching - fast memory holding copy of data
  • Always just a copy
  • Key to performance
  • Spooling - hold output for a device
  • If device can serve only one request at a time
  • i.e., Printing
  • Device reservation - provides exclusive access to
    a device
  • System calls for allocation and deallocation
  • Watch out for deadlock

89
Error Handling
  • OS can recover from disk read, device
    unavailable, transient write failures
  • Most return an error number or code when I/O
    request fails
  • System error logs hold problem reports

90
I/O Protection
  • User process may accidentally or purposefully
    attempt to disrupt normal operation via illegal
    I/O instructions
  • All I/O instructions defined to be privileged
  • I/O must be performed via system calls
  • Memory-mapped and I/O port memory locations must
    be protected too

91
Use of a System Call to Perform I/O
Monitor privileged/kernel mode
92
Life Cycle of An I/O Request
93
Performance
  • I/O a major factor in system performance
  • Demands CPU to execute device driver, kernel I/O
    code
  • Context switches due to interrupts
  • Data copying
  • Network traffic especially stressful

94
Improving Performance
  • Reduce number of context switches
  • Reduce data copying
  • Reduce interrupts by using large transfers, smart
    controllers, polling
  • Use DMA
  • Balance CPU, memory, bus, and I/O performance for
    highest throughput

95
Optional content follows
96
File Concept
  • Contiguous logical address space
  • Types
  • Data
  • numeric
  • character
  • binary
  • Program

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

98
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

99
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

100
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 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

101
Open File Locking
  • Provided by some operating systems and file
    systems
  • Mediates access to a file
  • Mandatory or advisory
  • Mandatory access is denied depending on locks
    held and requested
  • Advisory processes can find status of locks and
    decide what to do

102
File Types Name, Extension
103
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

104
Sequential-access File
105
Simulation of Sequential Access on a
Direct-access File
106
Example of Index and Relative Files
107
Directory Structure
  • A collection of nodes containing information
    about all files

Directory
Files
F 1
F 2
F 3
F 4
F n
Both the directory structure and the files reside
on disk Backups of these two structures
traditionally kept on tapes, nowadays even on
disks (cheaper)
108
A Typical File-system Organization
109
Operations Performed on Directory
  • Search for a file
  • Create a file
  • Delete a file
  • List a directory
  • Rename a file
  • Traverse the file system

110
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,
    )

111
Single-Level Directory
  • A single directory for all users

Naming problem Grouping problem
112
Two-Level Directory
  • Separate directory for each user
  • Path name
  • Can have the same file name for different user
  • Efficient searching
  • No grouping capability

113
Tree-Structured Directories
114
Tree-Structured Directories (Cont)
  • Efficient searching
  • Grouping Capability
  • Current directory (working directory)
  • cd /spell/mail/prog
  • type list

115
Tree-Structured Directories (Cont)
  • Absolute or relative path name
  • Creating a new file is done in current directory
  • Delete a file
  • rm ltfile-namegt
  • Creating a new subdirectory is done in current
    directory
  • mkdir ltdir-namegt
  • Example if in current directory /mail
  • mkdir count

mail
prog
copy
prt
exp
count
Deleting mail ? deleting the entire subtree
rooted at mail
116
Acyclic-Graph Directories
  • Have shared subdirectories and files

117
Acyclic-Graph Directories (Cont.)
  • Two different names (aliasing)
  • If dict deletes list gt dangling pointer
  • Solutions
  • Backpointers, so we can delete all
    pointersVariable 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

118
General Graph Directory
119
General Graph Directory (Cont.)
  • How do we guarantee no cycles?
  • Allow only links to file not subdirectories
  • Garbage collection
  • Every time a new link is added use a cycle
    detection algorithm to determine whether it is OK

120
File System Mounting
  • A file system must be mounted before it can be
    accessed
  • A unmounted file system (i.e. (b)) is mounted at
    a mount point
  • (a) Existing partition
  • (b) Unmounted partition

121
Mount Point
122
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

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

124
File 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
  • Distributed Information Systems (distributed
    naming services) such as LDAP, DNS, NIS, Active
    Directory implement unified access to information
    needed for remote computing

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

126
File Sharing Consistency Semantics
  • Consistency semantics specify how multiple users
    are to access a shared file simultaneously
  • Similar to Ch 7, ed. 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

127
Protection
  • File owner/creator should be able to control
  • what can be done
  • by whom
  • Types of access
  • Read
  • Write
  • Execute
  • Append
  • Delete
  • List

128
Access Lists and Groups
  • Mode of access read, write, execute
  • Three classes of users
  • RWX
  • a) owner access 7 gt 1 1 1
  • b) group access 6 gt 1 1 0
  • c) public access 1 gt 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
129
A Sample UNIX Directory Listing
130
Log Structured File Systems
  • Log structured (or journaling) file systems
    record each update to the file system as a
    transaction
  • All transactions are written to a log
  • A transaction is considered committed once it is
    written to the log
  • However, the file system may not yet be updated
  • The transactions in the log are asynchronously
    written to the file system
  • When the file system is modified, the
    transaction is removed from the log
  • If the file system crashes, all remaining
    transactions in the log must still be performed

131
The Sun Network File System (NFS)
  • An implementation and a specification of a
    software system for accessing remote files across
    LANs (or WANs)
  • The implementation is part of the Solaris and
    SunOS operating systems running on Sun
    workstations using an unreliable datagram
    protocol (UDP/IP protocol and Ethernet

132
NFS (Cont.)
  • Interconnected workstations viewed as a set of
    independent machines with independent file
    systems, which allows sharing among these file
    systems in a transparent manner
  • A remote directory is mounted over a local file
    system directory
  • The mounted directory looks like an integral
    subtree of the local file system, replacing the
    subtree descending from the local directory
  • Specification of the remote directory for the
    mount operation is nontransparent the host name
    of the remote directory has to be provided
  • Files in the remote directory can then be
    accessed in a transparent manner
  • Subject to access-rights accreditation,
    potentially any file system (or directory within
    a file system), can be mounted remotely on top of
    any local directory

133
NFS (Cont.)
  • NFS is designed to operate in a heterogeneous
    environment of different machines, operating
    systems, and network architectures the NFS
    specifications independent of these media
  • This independence is achieved through the use of
    RPC primitives built on top of an External Data
    Representation (XDR) protocol used between two
    implementation-independent interfaces
  • The NFS specification distinguishes between the
    services provided by a mount mechanism and the
    actual remote-file-access services

134
Three Independent File Systems
135
Mounting in NFS
Mounts
Cascading mounts
136
NFS Mount Protocol
  • Establishes initial logical connection between
    server and client
  • Mount operation includes name of remote directory
    to be mounted and name of server machine storing
    it
  • Mount request is mapped to corresponding RPC and
    forwarded to mount server running on server
    machine
  • Export list specifies local file systems that
    server exports for mounting, along with names of
    machines that are permitted to mount them
  • Following a mount request that conforms to its
    export list, the server returns a file handlea
    key for further accesses
  • File handle a file-system identifier, and an
    inode number to identify the mounted directory
    within the exported file system
  • The mount operation changes only the users view
    and does not affect the server side

137
NFS Protocol
  • Provides a set of remote procedure calls for
    remote file operations. The procedures support
    the following operations
  • searching for a file within a directory
  • reading a set of directory entries
  • manipulating links and directories
  • accessing file attributes
  • reading and writing files
  • NFS servers are stateless each request has to
    provide a full set of arguments (NFS V4 is just
    coming available very different, stateful)
  • Modified data must be committed to the servers
    disk before results are returned to the client
    (lose advantages of caching)
  • The NFS protocol does not provide
    concurrency-control mechanisms

138
Three Major Layers of NFS Architecture
  • UNIX file-system interface (based on the open,
    read, write, and close calls, and file
    descriptors)
  • Virtual File System (VFS) layer distinguishes
    local files from remote ones, and local files are
    further distinguished according to their
    file-system types
  • The VFS activates file-system-specific operations
    to handle local requests according to their
    file-system types
  • Calls the NFS protocol procedures for remote
    requests
  • NFS service layer bottom layer of the
    architecture
  • Implements the NFS protocol

139
Remote Procedure Calls
140
Schematic View of NFS Architecture
141
NFS Path-Name Translation
  • Performed by breaking the path into component
    names and performing a separate NFS lookup call
    for every pair of component name and directory
    vnode
  • To make lookup faster, a directory name lookup
    cache on the clients side holds the vnodes for
    remote directory names

142
NFS Remote Operations
  • Nearly one-to-one correspondence between regular
    UNIX system calls and the NFS protocol RPCs
    (except opening and closing files)
  • NFS adheres to the remote-service paradigm, but
    employs buffering and caching techniques for the
    sake of performance
  • File-blocks cache when a file is opened, the
    kernel checks with the remote server whether to
    fetch or revalidate the cached attributes
  • Cached file blocks are used only if the
    corresponding cached attributes are up to date
  • File-attribute cache the attribute cache is
    updated whenever new attributes arrive from the
    server
  • Clients do not free delayed-write blocks until
    the server confirms that the data have been
    written to disk

143
Example WAFL File System
  • Used on Network Appliance Filers distributed
    file system appliances
  • Write-anywhere file layout
  • Serves up NFS, CIFS, http, ftp
  • Random I/O optimized, write optimized
  • NVRAM for write caching
  • Similar to Berkeley Fast File System, with
    extensive modifications

144
The WAFL File Layout
145
Snapshots in WAFL
About PowerShow.com