File Systems
Download
Report
Transcript File Systems
Paging Example
Assume a page size of 1K and a 15-bit
logical address space.
How many pages are in the system?
1
Answer: 2^5 = 32.
Assuming a 15-bit address space with 8 logical
pages. How large are the pages?
2
Answer: 2^5 = 32.
Assuming a 15-bit address space with 8 logical
pages. How large are the pages?
Answer: 2^12 = 4K. It takes 3 bits to reference 8
logical pages (2^3 = 8). This leaves 12 bits for the
page size thus pages are 2^12.
3
Consider logical address 1025 and the following
page table for some process P0. Assume a 15-bit
address space with a page size of 1K. What is the
physical address to which logical address 1025
will be mapped?
8
0
2
4
Consider logical address 1025 and the following
page table for some process P0. Assume a 15-bit
address space with a page size of 1K. What is
the physical address to which logical address
1025 maps?
8
Step 1. Convert to binary:
0
000010000000001
2
5
Consider logical address 1025 and the following
page table for some process P0. Assume a 15-bit
address space with a page size of 1K. What is
the physical address to which logical address
1025 maps?
8
0
2
Step2. Determine the logical page
number:
Since there are 5-bits allocated to the
logical page, the address is broken up as
follows:
00001
0000000001
Logical page number
offset within
page
6
Consider logical address 1025 and the following
page table for some process P0. What is the
physical address?
00001
8
0
2
Step 3. Use logical page
number as an index into
the page table.
00001 0000000001
7
Consider logical address 1025 and the following
page table for some process P0. What is the
physical address?
00001
8
0
Take physical page number from
the page table and concatenate the
offset.
So the physical address is byte 1.
2
000000000000001
8
Long-term Information Storage
1.
2.
3.
Must store large amounts of data
Information stored must survive the
termination of the process using it
Multiple processes must be able to
access the information concurrently. In
short:
9
Long-term Information Storage
Files:
Good!
10
Long-term Information Storage
Files:
No Files:
Good!
Bad!
11
File System
Operating system determines how files are:
Structured
Named
Accessed
Used
Protected
Implemented
Most important aspect to users is how files appear to
them: naming convention, available operations,
protection, etc. (Not implementation!!).
12
File Naming
Unix:
Case sensitive.
Allows, but does not require, extensions (e.g., prog.c).
Assigns no meaning to extensions.
Add as many extensions as desired (e.g., prog.back.stupid.c).
Does not allow spaces in name (unless “\ “) ;
Windows:
Not case sensitive.
Allows 1-3 character extensions.
Extensions have meaning (to other application codes, not to
the OS)
Allows spaces in file name.
13
File Naming
Typical file extensions.
14
File Structure
None - sequence of words, bytes
Simple record structure
Lines
Fixed length
Variable length
Complex Structures
Formatted document
Relocatable load file
15
File Structure
Three kinds of files
byte sequence (i.e., no structure).
record sequence
Tree (e.g., data base)
16
File Structure
Can simulate last two with first method by inserting
appropriate control characters
Who decides:
Operating system
Program (i.e., programs can support any model
they want)
Unix and Windows support only the sequence
of bytes functionality.
17
File Types: Text and Binary
An executable file (Unix)
18
File Access
Sequential access
read all bytes/records from the beginning
cannot jump around, could rewind or back up
convenient when medium was mag tape
Random access
bytes/records read in any order
essential for data base systems
read can be …
move file marker (seek), then read or …
read and then move file marker
19
File Attributes
Name – only information kept in human-readable
form
Identifier (file descriptor) – 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
20
File Attributes
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 (although
generally cached).
21
File Operations
Create
Write
Read
Reposition within file
Delete
Truncate
22
File Operations in Unix
int fd = open(Fi) – search the directory structure on disk for
entry Fi, and move the content of entry to memory
fd is a file descriptor (integer).
close (fd) – move the content of entry Fi in memory to
directory structure on disk
seek() // change pointer to current location in file.
read(fd, buf, num_bytes)
23
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
24
Open Files
Unix maintains an open-file table for each process
and for the whole system.
File descriptor is used as an index into the process open-file
table. Entries are items that have to do with that particular
process (e.g., file pointer, access rights, etc.).
A pointer to the system-wide open-file table is also in the
process open-file table.
System-wide open-file table holds processindependent information (e.g., location on disk, last
access time, file size, count of the number of
processes using the file).
25
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
26
Directory
A collection of data structures containing information about
files
Directory
Files
F1
F2
F3
F4
Fn
Both the directory structure and the files reside on disk
Backups of these two structures are kept on tapes
27
Operations Performed on Directory
Search for a file
Create a file
Delete a file
List a directory
Rename a file
Traverse the file system
28
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,
…)
29
Single-Level Directory
Naming problem
Grouping problem
30
Two-Level Directory
Separate directory for each user
Path name
Can have the same file name for different user
Efficient searching
No grouping capability
31
Tree-Structured Directories
32
Tree-Structured Directories (Cont)
Efficient searching
Grouping Capability
In Unix, a directory is a file that contains meta-data
about the files it contains.
33
Tree-Structured Directories (Cont)
Most OS support absolute and relative path names.
Unix has two pre-defined relative path names:
. Represents current directory
.. Represents parent directory
Current directory (working directory)
cd /spell/mail/prog or
cd .. (relative to CD)
34
Path Names
A UNIX directory tree
35
To Open dict the absolute path name is:
/usr/lib/dict.
36
Relative Path Name
Assume Current Directory is /usr/jim. Then .. is /usr,
. is /usr/jim
To access dict: ../lib/dict.
37
Unix: mkdir creates a new sub-directory below the
current working directory.
rmdir removes an entire directory (and all subdirectories).
rm deletes a file
If someone suggests that you try out a cool command called
rm –r * don’t do it!!
38
Shared Files (1)
File system containing a shared file
39
Links
This is termed a hard link. Both directory entry pointing to the same
inode.
(a) Situation prior to linking
(b) After the link is created
(c) After the original owner removes the file
40
Symbolic Links
Provide the path name of the target file in the linked
file.
Other processes do not have access to the inode (i.e.,
directory structure).
What happens when file deleted by owner?
41
Operations Performed on Directory
Search for a file
Create a file
Delete a file
List a directory
Rename a file
Traverse the file system
42
Implementing Directories (1)
(a) A simple directory fixed size entries
disk addresses and attributes in directory entry
(b) Directory in which each entry just refers to an i-node
43
44
File Control Block
45
Accessing a File
46
Allocation of File Blocks
Contiguous allocation
Linked-list allocation
FAT
Indexed (inodes).
47
Directory Structure with Contiguous
Allocation of File Blocks
48
Implementing Files: Contiguous
Allocation
(a) Contiguous allocation of disk space for 7 files
(b) State of the disk after files D and E have been removed
49
Linked-list Allocation
50
File Allocation Table
51
Entry 4 bytes. Blocks 1K. 20 Million Entries (not files!) == 80 MB for table.
52
Indexed Allocation
53
File Allocation Table
54
Unix inode
55
Unix Directory Entry
inode number
15
File Name
Tester
56
Unix File System
Unix File System: 1 inode for each
file/directory.
B
Boot area
S
Inode list
Data blocks
superblock
57
File
Attributes
File
Attributes
File
Attributes
File
Attributes
100
0
Disk block
addresses (NOT 1
inode addresses)
2
3
Open file /usr/pmd
58
File
Attributes
File
Attributes
100
800
400
0
1
File
Attributes
File
Attributes
180
253
769
127
2
3
Four inodes in a Unix system
Step 1: Fetch inode for root
directory (will be stored in
memory).
Open file /usr/pmd
59
File
Attributes
800
0
Step 1: Fetch inode for root
directory (will be stored in
memory).
File
Attributes
File
Attributes
180
253
769
127
2
3
1
inodes in a Unix system
Open file /usr/pmd
File
Attributes
100
400
60
File
Attributes
File
Attributes
100
800
400
0
File
Attributes
File
Attributes
180
253
769
127
2
3
1
inodes in a Unix system
Directory
Bin
1
usr
2
Open file /usr/pmd
Step 1: Fetch inode for root
directory (will be stored in
memory).
Disk block 100
Step 2. Fetch disk block 100
and search for file usr.
61
File
Attributes
File
Attributes
100
800
400
0
File
Attributes
File
Attributes
180
253
769
127
2
3
1
inodes in a Unix system
Directory
Bin
1
usr
2
Open file /usr/pmd
Step 1: Fetch inode for root
directory (will be stored in
memory).
Disk block 100
Step 2. Fetch disk block 100
and search for file usr.
Step 3. Fetch inode 2.
62
File
Attributes
100
File
Attributes
File
Attributes
253
800
400
0
127
1
2
3
inodes in a Unix system
Open file /usr/pmd
File
Attributes
180
769
Step 1: Fetch inode for root
directory (will be stored in
memory).
Step 2. Fetch disk block 100
and search for file usr.
Step 3. Fetch inode 2.
Retrieve disk block 180.
63
File
Attributes
File
Attributes
100
File
Attributes
File
Attributes
180
253
769
127
2
3
800
400
0
1
inodes in a Unix system
Open file /usr/pmd
pmd
3
B_Man
21
Jtm
34
Step 1: Fetch inode for root
directory (will be stored in
memory).
Step 2. Fetch disk block 100
and search for file usr.
Step 3. Fetch inode 2.
Retrieve disk block 180.
64
File
Attributes
File
Attributes
100
800
400
0
pmd
1
3
B_Man
21
Jtm
34
File
Attributes
File
Attributes
180
253
769
127
2
3
inodes in a Unix system
Open file /usr/pmd Step 1: Fetch inode for root
directory (will be stored in
memory).
Step 2. Fetch disk block 100
and search for file usr.
Step 3. Fetch inode 2.
Retrieve disk block 180.
Step 4. Retrieve inode 3. This
points to my home directory
starting at block 253.
65
Miscellaneous
If you lost credit for question 6.4 or 5.8 please see
me to get those points back.
Please check your email and notify me ASAP if your
records disagree with mine!
Some students still have not demoed project 2.
Please make arrangements with the TA to do so
today.
66
Grading
Test average:
Assignment average:
25% Prelim I, 25% Prelim II, and 50%
final exam.
75% BRAIN, 15% programming
assignments, and 10% homework.
Each will account for 50% of the final
grade.
67
Final Exam
New Material
Virtual Memory: Sections 9.1 up to but not including (UT)
9.2.2, 9.4 UT 9.5.2, 9.6 UT 9.7.2, 9.9.1 UT 9.9.4.
File Systems: 10.3 UT 10.4, 11.1 UT 11.4.4, 11.5 UT 11.6.
Also, there was material not in the Text but in slides:
Understand the differences between the Unix file system and
Windows file system. This includes differences in directory
entries, methods for keeping track of blocks belonging to a
file, and approaches to locating and opening a file.
68
Final Exam
Earlier Material
Make sure you understand the scheduling algorithms we discussed
(FIFO, SJF, SJF-preemptive, RR).
Please understand semaphores and the TestandSet instruction, how
they are used and what can be done with them!!
69
File Allocation Table
70
Unix inode
71
Unix Directory Entry
inode number
15
File Name
Tester
72
The UNIX File System
The steps in looking up /usr/ast/mbox
73
Disk Space Management (1)
Block size
Dark line (left hand scale) gives data rate of a disk
Dotted line (right hand scale) gives disk space efficiency
All files 2KB
74
Tracking Free Disk Blocks
Bit Vector
000111000000000111111000011
75
Linked-list
76