slide 13-1 copyright © 2004 pearson education, inc. operating systems: a modern perspective,...
TRANSCRIPT
![Page 1: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/1.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-1
Copyright © 2004 Pearson Education, Inc.
![Page 2: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/2.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-2
Copyright © 2004 Pearson Education, Inc.
13FileManagement
![Page 3: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/3.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-3
Copyright © 2004 Pearson Education, Inc.
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()
![Page 4: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/4.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-4
Copyright © 2004 Pearson Education, Inc.
• 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
![Page 5: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/5.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-5
Copyright © 2004 Pearson Education, Inc.
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?
![Page 6: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/6.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-6
Copyright © 2004 Pearson Education, Inc.
Information Structure
Records
Applications
Structured Record Files
Record-Stream Translation
Stream-Block Translation
Byte Stream Files
Storage device
![Page 7: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/7.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-7
Copyright © 2004 Pearson Education, Inc.
Byte Stream File Interface
fileID = open(fileName)close(fileID)read(fileID, buffer, length)write(fileID, buffer, length)seek(fileID, filePosition)
![Page 8: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/8.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-8
Copyright © 2004 Pearson Education, Inc.
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
![Page 9: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/9.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-9
Copyright © 2004 Pearson Education, Inc.
Structured Files
Records
Record-Block Translation
![Page 10: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/10.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-10
Copyright © 2004 Pearson Education, Inc.
Record-Oriented Sequential Files
Logical Record
fileID = open(fileName)close(fileID)getRecord(fileID, record)putRecord(fileID, record)seek(fileID, position)
![Page 11: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/11.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-11
Copyright © 2004 Pearson Education, Inc.
Record-Oriented Sequential Files
...H byte header k byte logical record
Logical Record
![Page 12: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/12.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-12
Copyright © 2004 Pearson Education, Inc.
Record-Oriented Sequential Files
...H byte header k byte logical record
...
FragmentPhysical Storage Blocks
Logical Record
![Page 13: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/13.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-13
Copyright © 2004 Pearson Education, Inc.
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);}
![Page 14: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/14.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-14
Copyright © 2004 Pearson Education, Inc.
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)
![Page 15: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/15.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-15
Copyright © 2004 Pearson Education, Inc.
Indexed Sequential File (cont)
Account #012345123456294376...529366...965987
Index
ik
j
index = i
index = k
index = j
Application structure
![Page 16: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/16.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-16
Copyright © 2004 Pearson Education, Inc.
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
![Page 17: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/17.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-17
Copyright © 2004 Pearson Education, Inc.
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
![Page 18: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/18.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-18
Copyright © 2004 Pearson Education, Inc.
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
![Page 19: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/19.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-19
Copyright © 2004 Pearson Education, Inc.
Low-level File System Architecture
b0 b1 b2 b3 bn-1 … …
Block 0
...
Sequential Device Randomly Accessed Device
![Page 20: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/20.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-20
Copyright © 2004 Pearson Education, Inc.
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
![Page 21: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/21.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-21
Copyright © 2004 Pearson Education, Inc.
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
![Page 22: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/22.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-22
Copyright © 2004 Pearson Education, Inc.
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
![Page 23: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/23.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-23
Copyright © 2004 Pearson Education, Inc.
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
![Page 24: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/24.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-24
Copyright © 2004 Pearson Education, Inc.
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
![Page 25: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/25.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-25
Copyright © 2004 Pearson Education, Inc.
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
![Page 26: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/26.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-26
Copyright © 2004 Pearson Education, Inc.
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
![Page 27: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/27.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-27
Copyright © 2004 Pearson Education, Inc.
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
![Page 28: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/28.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-28
Copyright © 2004 Pearson Education, Inc.
DOS FAT Files
DiskBlock
File Descriptor
DiskBlock
DiskBlock
…43
107254
File Access Table (FAT)
DiskBlock
DiskBlock
DiskBlock
…43
107
10743
254
254
File Descriptor
![Page 29: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/29.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-29
Copyright © 2004 Pearson Education, Inc.
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
![Page 30: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/30.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-30
Copyright © 2004 Pearson Education, Inc.
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
![Page 31: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/31.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-31
Copyright © 2004 Pearson Education, Inc.
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
![Page 32: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/32.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-32
Copyright © 2004 Pearson Education, Inc.
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
![Page 33: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/33.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-33
Copyright © 2004 Pearson Education, Inc.
Directories
• A set of logically associated files and sub directories
• File manager provides set of controls:– enumerate– copy– rename– delete– traverse– etc.
![Page 34: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/34.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-34
Copyright © 2004 Pearson Education, Inc.
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.
![Page 35: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/35.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-35
Copyright © 2004 Pearson Education, Inc.
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)
![Page 36: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/36.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-36
Copyright © 2004 Pearson Education, Inc.
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
![Page 37: Slide 13-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 13](https://reader035.vdocument.in/reader035/viewer/2022062511/551c4688550346a5458b47ef/html5/thumbnails/37.jpg)
Operating Systems: A Modern Perspective, Chapter 13
Slide 13-37
Copyright © 2004 Pearson Education, Inc.
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
…