Lecture 27 Any issues with finding case study references? Questions?

advertisement
Lecture 27

Any issues with finding case study references?

Reminder: Homework 6 due on Wednesday

Questions?
Monday, March 21
CS 470 Operating Systems - Lecture 27
1
Outline

Directory ADT


Directory structures
File system implementation

Disk and memory structures

Operation implementations

Allocation methods
Monday, March 21
CS 470 Operating Systems - Lecture 27
2
Directory ADT

Directory ADT organizes files. Usually consists
of two parts



Partition (also called minidisk or volume) is a
virtual disk. Could be one physical disk, part of a
physical disk, or more than one physical disk.
Symbol table mapping names to directory entries.
Like a table of contents for a partition. Each
directory entry is a list of files and/or directories.
What are some Directory operations?
Monday, March 21
CS 470 Operating Systems - Lecture 27
3
Directory Structures



There are various logical structures for
directories.
Single-level structure has only one directory
level and all files are under the root.
What are some limitations of this structure?
Monday, March 21
CS 470 Operating Systems - Lecture 27
4
Directory Structures

Two-level structure has a master file directory
(MFD) that maps username/account number of
a user file directory (UFD) of files owned by that
user.
Monday, March 21
CS 470 Operating Systems - Lecture 27
5
Directory Structures


Only the UFD is searched when a user program
performs a file operation. Solves the name
collision problem between users. What are
some limitations of this structure?
The generalized two-level structure is the
familiar tree structure. Users can create
subdirectories in their UFD. Names become
path names that can be absolute or relative.
Introduce new directory operations: current
directory, change directory. New issue: what
happens when try to delete a directory?
Monday, March 21
CS 470 Operating Systems - Lecture 27
6
Directory Structures

Sometimes users may want to share
subdirectories (i.e., have them mapped into
their UFDs). Acyclic-graph structure provides
this functionality. UNIX allows this through the
use of links. Links may be hard, creating a full
directory entry to the shared data, or soft,
creating a directory entry that is simply a path
name to the shared data.
Monday, March 21
CS 470 Operating Systems - Lecture 27
7
Directory Structures


Main issues are in directory traversal - an entry
may appear more than once, and in deletion who has the right to delete the shared data.
In UNIX, hard links are counted and a file is
removed from the physical disk only when there
are no hard links to it. Deleting a file simply
removes its directory entry and decrements the
link count. Soft links can become "dangling
pointers", if the named directory entry is
removed.
Monday, March 21
CS 470 Operating Systems - Lecture 27
8
File System Implementation



How is the physical storage of files organized?
Most file systems (FS) are on disks. Disks
have a natural efficient transfer size called a
block. Block sizes range from 32 bytes to 4KB.
A common size is 512 bytes.
Disks are good for file storage

Can rewrite data in place

Can randomly access blocks
Monday, March 21
CS 470 Operating Systems - Lecture 27
9
File System Implementation

Under the OS API, there are several layers to
get to the actual disk:
Monday, March 21
User access
Symbolic name
Logical filesystem
Symbolic name -> File control block
(FCB): logical address, directory, other
metadata, protection (Chapter 14)
File organization
module
Logical blocks -> Physical blocks, free
space manager (Chapter 11)
Basic FS
Calls to drivers, physical address may be
a VFS or <drive,cylinder,track,sector>
I/O Driver
Driver hide difference in actual hardware
(Chapter 13)
Device (e.g. disk)
Actually the controller to the device
(Chapter 12)
CS 470 Operating Systems - Lecture 27
10
File System Implementation

There are many file system types

ISO 9660 for CD-ROMs

U(nix)FS

FAT - FAT8, FAT12, FAT16, FAT32...

NTFS

ext(ended FS) 2/3/4

...
Monday, March 21
CS 470 Operating Systems - Lecture 27
11
File System Disk Structures


File systems have both on-disk and in-memory
data structures. Depend on particular OS and
FS.
Most commonly on disk:


Boot information, total number of blocks, number
and location of free blocks, directory structure, and
of course, the actual files.
Boot control block per volume - information to
boot OS from this volume. Typically the first block
of the volume. Also called boot block (UFS) and
partition boot sector (NTFS)
Monday, March 21
CS 470 Operating Systems - Lecture 27
12
File System Disk Structures

On-disk structures, cont'd



Volume control block - contains partition/volume
details including number of blocks in partition, size
of blocks, free-block count and pointers, free FCB
count, etc. Also called superblock (UFS), master
file table (NTFS).
Directory structure per FS. UFS include names and
associated inode numbers. This is stored inside
the master file table in NTFS.
Per file FCB with file attributes. Called an inode in
UFS. NTFS stores in the master file table.
Monday, March 21
CS 470 Operating Systems - Lecture 27
13
File System Memory Structures

In-memory data structures are often used for
caching to improve efficiency. Data is loaded at
mount time and discarded at unmount.

Mount table - information about each mounted
volume

Directory-structure cache

System OFT - copy of FCB of each open file

Process local OFT
Monday, March 21
CS 470 Operating Systems - Lecture 27
14
Creating a File

Applications call the logical FS interface. The
LFS knows the format of the directory
structures. To create a file it does the following:

Allocates/obtains a new FCB

Reads the appropriate directory into memory

Updates directory with new file name and FCB

Writes directory back to disk
Monday, March 21
CS 470 Operating Systems - Lecture 27
15
Opening a File


If a file has been opened already, it has an
entry in the system OFT. Otherwise, the LFS

Reads in the appropriate directory into memory

Reads in the FCB and stores it in the system OFT
The rest of this operation does the following:


Sets entry in the process local OFT to point to the
system OFT entry and increment the open count
Return index of the entry in the process local OFT.
Called a file descriptor (UFS), file handle (Win)
Monday, March 21
CS 470 Operating Systems - Lecture 27
16
Reading from a File

To read from a file, the LFS

Follows the file entry in the process local OFT

Follows the entry in the system OFT

Reads the data blocks
Monday, March 21
CS 470 Operating Systems - Lecture 27
17
Closing a File

The close operations does the following

Removes the file entry in the process local OFT

Decrements the open count in the system OFT

If the open count becomes 0, writes the metadata
back to disk and removes the file entry from the
system OFT.
Monday, March 21
CS 470 Operating Systems - Lecture 27
18
Virtual File System


The VFS is an interface layer between the LFS
and an actual concrete FS. It is used to allow
applications to operate on any type of file
without knowing exactly what kind of file it is.
Typically, it is implemented as a table of
function pointers. For each FS type there is a
table indexed by LFS operation that points to
the function that does the actual FS operation.
Monday, March 21
CS 470 Operating Systems - Lecture 27
19
Virtual File System
Monday, March 21
CS 470 Operating Systems - Lecture 27
20
Allocation Methods

As with any resource, there are various ways to
allocate disk space into files. Want a method
that has



effective disk utilization
efficient access for a variety of operations; random
vs. sequential; read vs. write vs. append
Common methods are contiguous, linked, and
indexed
Monday, March 21
CS 470 Operating Systems - Lecture 27
21
Contiguous Allocation



Each file occupies contiguous blocks on the
disk. The directory entry is <fileID,
startBlockAddr, length>
What are the advantages of this organization?
What are the disadvantages of this
organization?
Monday, March 21
CS 470 Operating Systems - Lecture 27
22
Linked Allocation



File is a linked list of disk blocks. Directory
entry is <fileID, startBlockAddr, endBlockAddr>.
Must read the start block to find the next block
number.
What are the advantages of this organization?
What are the disadvantages of this
organization?
Monday, March 21
CS 470 Operating Systems - Lecture 27
23
Linked Allocation



To mitigate some of the disadvantages, can
use a file allocation table (FAT - used in
DOS). Directory entry is <fileID, startBlock#>
FAT is indexed by block number and links the
table entries rather than the blocks themselves.
Often the FAT is small enough to cache, so can
find out what block a random access it in
without reading disk.
Monday, March 21
CS 470 Operating Systems - Lecture 27
24
Indexed Allocation



Each file has an index block that is an array of
disk addresses to the blocks that make up the
file.
What are the advantages of this organization?
What are the disadvantages of this
organization?
Monday, March 21
CS 470 Operating Systems - Lecture 27
25
Indexed Allocation

Several ways to handle large files

Link index blocks

Multiple levels of indexing

UNIX UFS - most of the index block is direct
address, but second to last entry is two-level (i.e. it
points to another index block) and the last entry is
three-level. Good compromise: small files do not
pay for multi-level, but large files are supported.
Monday, March 21
CS 470 Operating Systems - Lecture 27
26
Indexed Allocation - UNIX UFS
Monday, March 21
CS 470 Operating Systems - Lecture 27
27
Related documents
Download