Upload
ahmed-johnson
View
22
Download
0
Tags:
Embed Size (px)
DESCRIPTION
13. File Management. WriteFile(). CreateFile(). ReadFile(). CloseHandle(). SetFilePointer(). Fig 13-2: The External View of the File Manager. Application Program. mount(). write(). open(). close(). read(). lseek(). File Mgr. Device Mgr. Memory Mgr. File Mgr. Device Mgr. - PowerPoint PPT Presentation
Citation preview
Slide 13-1
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Slide 13-2
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
13FileManagement
Slide 13-3
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Fig 13-2: The External View of the File Manager
Hardware
ApplicationProgram
ApplicationProgram
Fil
e M
gr
Dev
ice
Mgr
Mem
ory
Mgr
Pro
cess
Mgr
UNIXF
ile
Mgr
Dev
ice
Mgr
Mem
ory
Mgr
Pro
cess
Mgr
Windows
open()read()
close()
write()
lseek()
CreateFile()ReadFile()CloseHandle()
SetFilePointer()
WriteFile()mount()
Slide 13-4
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
• Persistent storage• Shared device
Why Programmers Need Files
HTMLEditor
HTMLEditor
<head>…</head><body>…</body>
WebBrowser
WebBrowser
• Structured information• Can be read by any applic
• Accessibility• Protocol
<head>…</head><body>…</body>
<head>…</head><body>…</body>
foo.html
FileManager
FileManager
FileManager
FileManager
Slide 13-5
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
File Management• File is a named, ordered collection of
information• The file manager administers the collection
by:– Storing the information on a device– Mapping the block storage to a logical view– Allocating/deallocating storage– Providing file directories
• What abstraction should be presented to programmer?
Slide 13-6
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Information Structure
Records
Applications
Structured Record Files
Record-Stream Translation
Stream-Block Translation
Byte Stream Files
Storage device
Slide 13-7
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Byte Stream File Interface
fileID = open(fileName)close(fileID)read(fileID, buffer, length)write(fileID, buffer, length)seek(fileID, filePosition)
Slide 13-8
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Low Level Files
Stream-Block Translation
b0 b1 b2 bi......
fid = open(“fileName”,…);…read(fid, buf, buflen);…close(fid);
int open(…) {…}int close(…) {…}int read(…) {…}int write(…) {…}int seek(…) {…}
Storage device response to commands
Slide 13-9
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Structured Files
Records
Record-Block Translation
Slide 13-10
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Record-Oriented Sequential Files
Logical Record
fileID = open(fileName)close(fileID)getRecord(fileID, record)putRecord(fileID, record)seek(fileID, position)
Slide 13-11
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Record-Oriented Sequential Files
...H byte header k byte logical record
Logical Record
Slide 13-12
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Record-Oriented Sequential Files
...H byte header k byte logical record
...
FragmentPhysical Storage Blocks
Logical Record
Slide 13-13
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Electronic Mail Examplestruct message {/* The mail message */ address to; address from; line subject; address cc; string body;};struct message *getRecord(void) { struct message *msg; msg = allocate(sizeof(message)); msg->to = getAddress(...); msg->from = getAddress(...); msg->cc = getAddress(...); msg->subject = getLine(); msg->body = getString(); return(msg);}
putRecord(struct message *msg) { putAddress(msg->to); putAddress(msg->from); putAddress(msg->cc); putLine(msg->subject); putString(msg->body);}
Slide 13-14
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Indexed Sequential File
• Suppose we want to directly access records
• Add an index to the file
fileID = open(fileName)close(fileID)getRecord(fileID, index)index = putRecord(fileID, record)deleteRecord(fileID, index)
Slide 13-15
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Indexed Sequential File (cont)
Account #012345123456294376...529366...965987
Index
ik
j
index = i
index = k
index = j
Application structure
Slide 13-16
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
More Abstract Files
• Inverted files– System index for each datum in the file
• Databases– More elaborate indexing mechanism– DDL & DML
• Multimedia storage– Records contain radically different types– Access methods must be general
Slide 13-17
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Implementing Low Level Files
• Secondary storage device contains:– Volume directory (sometimes a root directory
for a file system)– External file descriptor for each file– The file contents
• Manages blocks– Assigns blocks to files (descriptor keeps track)– Keeps track of available blocks
• Maps to/from byte stream
Slide 13-18
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Disk Organization
Blk0Blk0 Blk1
Blk1 Blkk-1Blkk-1
BlkkBlkk Blkk+1
Blkk+1 Blk2k-1Blk2k-1
Track 0, Cylinder 0
Track 0, Cylinder 1
BlkBlk BlkBlk BlkBlk Track 1, Cylinder 0
BlkBlk BlkBlk BlkBlk Track N-1, Cylinder 0
BlkBlk BlkBlk BlkBlk Track N-1, Cylinder M-1
…
…
…
…
…
…
…
…
Boot Sector Volume Directory
Slide 13-19
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Low-level File System Architecture
b0 b1 b2 b3 bn-1 … …
Block 0
...
Sequential Device Randomly Accessed Device
Slide 13-20
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
File Descriptors•External name•Current state•Sharable•Owner•User•Locks•Protection settings•Length•Time of creation•Time of last modification•Time of last access•Reference count•Storage device details
Slide 13-21
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
An open() Operation
• Locate the on-device (external) file descriptor
• Extract info needed to read/write file• Authenticate that process can access the file • Create an internal file descriptor in primary
memory• Create an entry in a “per process” open file
status table• Allocate resources, e.g., buffers, to support
file usage
Slide 13-22
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
File Manager Data Structures
External File Descriptor
Open FileDescriptor
Copy info from external to the open file descriptor
1
Process-FileSession
Keep the state of the process-file session
2
Return a reference to the data structure
3
Slide 13-23
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Opening a UNIX File
fid = open(“fileA”, flags);…read(fid, buffer, len);
0 stdin1 stdout2 stderr3 ...
Open File Table
File structure
inode
Internal File Descriptor
On-Device File Descriptor
Slide 13-24
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Block Management
• The job of selecting & assigning storage blocks to the file
• For a fixed sized file of k blocks– File of length m requires N = m/k blocks
– Byte bi is stored in block i/k
• Three basic strategies:– Contiguous allocation– Linked lists– Indexed allocation
Slide 13-25
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Contiguous Allocation
• Maps the N blocks into N contiguous blocks on the secondary storage device
• Difficult to support dynamic file sizes
Head position 237…First block 785Number of blocks 25
File descriptor
Slide 13-26
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Linked Lists• Each block contains a header with
– Number of bytes in the block– Pointer to next block
• Blocks need not be contiguous
• Files can expand and contract
• Seeks can be slowFirst block…
Head: 417...
Length
Byte 0
Byte 4095...
Length
Byte 0
Byte 4095...
Length
Byte 0
Byte 4095...
Block 0 Block 1 Block N-1
Slide 13-27
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Indexed Allocation
• Extract headers and put them in an index
• Simplify seeks
• May link indices together (for large files)
Index block…
Head: 417...
Byte 0
Byte 4095...
Byte 0
Byte 4095...
Byte 0
Byte 4095...
Block 0
Block 1
Block N-1
Length
Length
Length
Slide 13-28
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
DOS FAT Files
DiskBlock
File Descriptor
DiskBlock
DiskBlock
…43
107254
File Access Table (FAT)
DiskBlock
DiskBlock
DiskBlock
…43
107
10743
254
254
File Descriptor
Slide 13-29
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
UNIX FilesDatamode
owner…Direct block 0Direct block 1…Direct block 11Single indirectDouble indirectTriple indirect
inode
Data
Data
Index
Data
DataIndexIndex
IndexData
Data
Index
Index
IndexIndex
Index
Data
Data
Slide 13-30
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Unallocated Blocks
• How should unallocated blocks be managed?
• Need a data structure to keep track of them– Linked list
• Very large
• Hard to manage spatial locality
– Block status map (“disk map”)• Bit per block
• Easy to identify nearby free blocks
• Useful for disk recovery
Slide 13-31
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Marshalling the Byte Stream
• Must read at least one buffer ahead on input
• Must write at least one buffer behind on output
• Seek flushing the current buffer and finding the correct one to load into memory
• Inserting/deleting bytes in the interior of the stream
Slide 13-32
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Full Block Buffering
• Storage devices use block I/O• Files place an explicit order on the bytes• Therefore, it is possible to predict what is likely to
be read after bytei
• When file is opened, manager reads as many blocks ahead as feasible
• After a block is logically written, it is queued for writing behind, whenever the disk is available
• Buffer pool – usually variably sized, depending on virtual memory needs– Interaction with the device manager and memory
manager
Slide 13-33
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Directories
• A set of logically associated files and sub directories
• File manager provides set of controls:– enumerate– copy– rename– delete– traverse– etc.
Slide 13-34
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Directory Structures
• How should files be organized within directory?– Flat name space
• All files appear in a single directory
– Hierarchical name space• Directory contains files and subdirectories
• Each file/directory appears as an entry in exactly one other directory -- a tree
• Popular variant: All directories form a tree, but a file can have multiple parents.
Slide 13-35
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
Directory Implementation
• Device Directory– A device can contain a collection of files– Easier to manage if there is a root for every file
on the device -- the device root directory
• File Directory– Typical implementations have directories
implemented as a file with a special format– Entries in a file directory are handles for other
files (which can be files or subdirectories)
Slide 13-36
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
UNIX mount Command
/
bin usr etc foo
bill nutt
abc
/
blah
cde xyz
FS
/
bin usr etc foo
bill nutt
abc
/
blah
cde xyz
mount FS at foo
FS
Slide 13-37
Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13
VFS-based File Manager
File System IndependentPart of File Manager
File System IndependentPart of File Manager
Exports OS-specific API
Virtual File System SwitchVirtual File System Switch
MS-DOS Part ofFile Manager
MS-DOS Part ofFile Manager
ISO 9660 Part ofFile Manager
ISO 9660 Part ofFile Manager
ext2 Part ofFile Manager
ext2 Part ofFile Manager
…
A File Management System is a set of OS services that supports files and directories for user applications, OS programs, etc. Data should be organized and
available in a convenient andefficient manner
Files are the basicbuilding blocks
File attributes include: Human-readable symbolic name Type (e.g. executable, directory, text, PDF, etc.) Logical location (i.e. containing directory or
path) Physical location on disk Size (in bytes) Protection or security (i.e. permissions) Timestamps (created, last modified, last
accessed)
The pathname (or just path) of a file specifies the sequence of directoriesone must traverse to locatethe file An absolute path starts
at the root node A relative path starts
anywhere
A link provides a shortcut to a file and may circumvent the given directory hierarchy A hard link in Unix is
indistinguishable fromthe original file
A symbolic link in Unixis merely a shortcut
A Windows shortcut is just a symbolic link
File creation requires space allocation Opening a file returns a handle or file
descriptor Read and write operations
use the handle and anoffset (or file pointer)
The close operation simplydeletes the handle anddeallocates any memory
Deleting a file deallocates all disk spacemarked as in use by the file But likely does not erase file contents Deleted files are recoverable until the disk
space is used for (and overwritten by) other file(s)
The delete operation also removes the corresponding entry in the containing directory
In a contiguous disk space allocation scheme, files are allocated to contiguous blocks of disk space
In a clustered disk space allocation scheme, files are allocated to clusters of disk space on an as needed basis
A file allocation table (FAT) maps logical filesto their physical addresses on a disk A pure FAT would have an entry
for each sector (e.g. 512 bytes) To improve performance, clusters
of contiguous sectors are used Clusters range from 4 to 64 sectors
(e.g. 2,048 to 32,768 bytes)
In Unix, file information is stored in an index node (I-node), which contains: Mode and type of file Number of links to the file File owner’s userid and groupid Size of file (in bytes) Last access and last modified times Number of blocks allocated to the file Pointers to the first twelve blocks Pointers to three additional blocks of
pointers
inode12
1024
10242
10243
clustercluster
cluster
…
cluster
cluster
cluster
inode1024
single indirect
…
inode1024
double indirect
inode1024
inode1024
… …
…
inode10242
triple indirect
…
A virtual filesystem provides transparent access to different filesystem types on multiple device types and disk partitions
A virtual machine is a layered approach that logically combines the kernel operating system and hardware Creates the illusion
of multiple processes,each executing on itsown virtual processorwith its own virtualmemory
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9002552
Virtual machines provide complete protection of system resources Each virtual machine is isolated from
all other virtual machines▪ which prohibits direct sharing
of system resources Virtual machines can be difficult to
implementdue to the effort required to providean exact duplicate of each underlying machine