Bài giảng Hệ điều hành - Chương 9: File-System Interface và hiện thực

 Khái niệm cơ sở

 Các phương thức truy cập

 Cấu trúc thư mục

 File-system mounting

 Chia sẻ file

 Bảo vệ (protection)

pdf65 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Ngày: 22/10/2014 | Lượt xem: 2721 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Hệ điều hành - Chương 9: File-System Interface và hiện thực, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
.hcmut.edu.vn:/oscourse /home/osbook
– Khi file system đã được mount, mọi truy xuất đến file/thư mục trên
đó đều như bình thường, không phân biệt là local hay remote nữa.
8.25
Ví dụ mount remote file-system
/
home
paper osbook
/
oscourse
DFS DSM
Local Client Remote Server
export
mount
DFS DSM
/home/osbook/DSM
/oscourse/DSM
ditlab.hcmut.edu.vn
8.26
Bảo vệ (protection)
 Chủ nhân của một file phải được cung cấp khả năng kiểm soát,
điều khiển quá trình truy cập file
– Các tác vụ có thể thực hiện trên file?
– Những ai được quyền thực hiện thao tác trên file?
 Các kiểu truy xuất file
– Read
– Write
– Execute
– Append
– Delete
– List
 Để kiểm soát quá trình truy cập, cách tiếp cận thông thường là
gán kèm theo mỗi file một access-control list (ACL)
8.27
Access-control list và group
 Các chế độ truy cập: read, write, execute
 Ba nhóm user: owner, group, universe (hay public)
– User name và user identifier (user ID)
– Group name và group identifier (group ID)
 Ví dụ trong UNIX: có 3 field, mỗi field có 3 bits
– Field : read, write, execute
– Bit : r(4), w(2), x(1)
r w x
owner access 7  1 1 1
r w x
group access 6  1 1 0
r w x
public access 1  0 0 1
8.28
File-System Implementation
 Hiện thực hệ thống file
 Những phương pháp cấp phát (Allocation Methods)
 Hiện thực thư mục (Directory Implementation)
 Quản lý không gian trống (Free-Space Management)
 Sao lưu và phục hồi (Recovery)
8.29
Sơ đồ bố trí (layout) hệ thống file (1)
i-nodesPartition control block FCB’s
8.30
Sơ đồ bố trí (layout) hệ thống file (2)
 Partition control block:
– lưu số lượng block trong partition, kích thước block, số lượng free block
hiện thời và các con trỏ chỉ đến chúng,…
– lưu số lượng free FCB hiện thời và các con trỏ chỉ đến chúng,…
– Ví dụ, UNIX File System: “superblock”
 File control block (FCB): mỗi file được quản lý thông qua FCB
của nó
– lưu các thông tin về file , kể cả các con trỏ chỉ đến các data block của nó
– Ví dụ, UNIX File System: “i-node”
8.31
VFS–Virtual File System
disk
partition
disk
partition
ext2 file system FAT file system NFS file system
Ứng dụng
VFS
: gọi hàm/thủ tục
open, read, write, opendir,…
8.32
Hiện thực file
 Cấp phát không gian lưu trữ cho file/directory, mục tiêu:
– sử dụng không gian đĩa hữu hiệu
– truy cập file nhanh
 Các phương pháp cấp phát phổ biến
– Cấp phát liên tục (contiguous allocation)
– Cấp phát theo danh sách liên kết (linked list allocation)
– Cấp phát dùng chỉ mục (indexed allocation)
8.33
Cấp phát liên tục
 Seek time?
 Di chuyển đầu đọc?
 Có thể truy xuất ngẫu nhiên một block của file:
block nr = start + block offset
 Phân mảnh ngoại
 Vấn đề khi tạo file mới và khi cần thêm block
cho file
 Ứng dụng: ISO-9660 (CDROM)
8.34
Cấp phát theo danh sách liên kết (1)
-1
-1
pointer
data
layout của block
8.35
Cấp phát theo danh sách liên kết (2)
 Ưu điểm
– Dễ dàng thêm block cho file khi cần
– Quản lý không gian trống bằng danh 
sách
– Không có phân mảnh ngoại
 Nhược điểm
– Chỉ truy xuất hiệu quả đối với 
sequential-access file
– Tốn không gian lưu trữ các con trỏ
– Độ tin cậy: pointer trong block có thể bị
hỏng 
– Phân mảnh nội khi đơn vị cấp phát là
cluster (một hằng số các block)
8.36
Biến thể của cấp phát theo danh sách liên kết: FAT
 FAT (File Allocation Table)
– Mỗi block đĩa được tượng trưng bởi
một entry trong FAT
– Block với block nr i được tượng
trưng bởi entry với chỉ số (index) i
 Entry chứa block nr kế tiếp
trong file, nếu file gồm nhiều
block
FAT
number of disk blocks - 1
8.37
Cấp phát dùng chỉ mục (1)
 Bảng index (index block)
– chứa địa chỉ các block của file
– thứ tự các địa chỉ trên trong bảng
cũng là thứ tự các block trong file
8.38
Cấp phát dùng chỉ mục (2)
 Ưu điểm
– Random và sequential access
– Không có phân mảnh ngoại
 Khuyết điểm
– Tốn không gian lưu trữ bảng index khi file có kích thước chỉ vài block
 Vấn đề: kích thước index block bao nhiêu là phù hợp?
– Giải quyết: multilevel index
8.39
i-node
 UNIX v7 i-node: 13 pointers
 Linux ext2 i-node: 15 pointers
i-node
8.40
Hiện thực thư mục
MS-DOS UNIX, Linux
 Thư mục được dùng để chứa bảng ánh xạ từ tên file (chuỗi ký tự ASCII) đến
thông tin cần thiết để định vị các block dữ liệu của file
 Tổ chức thư mục
– Danh sách tuyến tính (array hay linear list), bảng băm,…
first block nr
8.41
FAT
 Ví dụ
8.42
Hệ thống file FAT
 FAT dùng để chỉ bảng FAT và cũng dùng để chỉ hệ thống file
 Layout của một partition chứa hệ thống file FAT
Boot sector FAT Root directory Data blocks
8.43
Hiện thực tên file dài
 Giải quyết vấn đề tên file dài (Win98, 2000, XP, *NIX,...)
(a) In-line
(b) Heap
8.44
i-node (1)
Ví dụ
8.45
i-nodes (2)
 Layout của một partition chứa hệ thống file UNIX
8.46
i-node: chia sẻ file (1)
8.47
i-node: chia sẻ file (2)
8.48
Duyệt path name để lấy block nr của file
 Ví dụ: Xác định các block dữ liệu của file /a/b/c
8.49
Quản lý không gian trống
• Các phương pháp
 Bit vector (bit map)
 Linked list
 Grouping
 Counting
8.50
Phương pháp bit vector (bit map)
 Đơn giản và hiệu quả khi cần tìm
khối trống đầu tiên hoặc chuỗi khối
trống liên tục
– Thao tác trên bit
 Cần không gian lưu trữ. Ví dụ
– Kích thước block = 212 bytes
– Kích thước đĩa = 230 bytes
– n = 230/212 = 218 bit (32KB)Ví dụ:
bit vector 00111100…

block 0, 1 trống
block 2, 3, 4, 5 đã được cấp
block 6, 7 trống
…
…
0 1 2 n - 1
bit[ i ] =


 0 block i còn trống
1 block i đã được cấp
8.51
Phương pháp dùng linked list
 Phương pháp
– Liên kết các khối trống với nhau
– Chỉ cần giữ con trỏ đến khối nhớ
trống đầu tiên trên đĩa hoặc cache
trong bộ nhớ chính để tăng tốc
 Ít lãng phí không gian đĩa
• Dò biết khoảng không gian trống liên tục?
 Không hiệu quả: trong trường hợp xấu nhất phải
duyệt toàn bộ đĩa để tìm không gian trống liên tục
8.52
Grouping và counting (1)
 Phương pháp grouping
– Địa chỉ của n khối trống được lưu trong khối nhớ đầu tiên.
– Khối nhớ thứ n chứa địa chỉ của n khối nhớ trống kế tiếp.
 Phương pháp counting
– Tổ chức bảng chỉ mục, trong đó mỗi phần tử của bảng chứa địa chỉ trên
đĩa của khối trống đầu tiên trong nhóm khối trống liên tục kèm theo một
số đếm (cho biết số khối trống trong nhóm).
– Có thể cấp phát hoặc thu hồi đồng thời nhiều khối nhớ liên tục
8.53
Grouping và counting (2)
Counting
2 4
8 6
17 2
25 3
Grouping
Block 2 3, 4, 5
Block 5 8, 9, 10
Block 10 11, 12, 13
Block 13 17, 28, 25
Block 25 26, 27
Ví dụ
8.54
Open file structures
 Thuộc tính toàn cục (global attributes)
– Disk location, size
– Times
– Buffers
– Open count
– Lock(s)
 Thuộc tính riêng của process
– File pointer
– Access permissions
System
open file table
P1
P2
P3
8.55
UNIX: open file structure
User space
Kernel space
data
blocks i-nodes
open file
table
swappable
r/w
file
descriptor
file structure
table
in-core
i-nodes
resident
8.56
Sao lưu và phục hồi dữ liệu
 Kiểm tra sự nhất quán dữ liệu (consistency checker) – so sánh dữ liệu trong
cấu trúc thư mục với các khối dữ liệu trên đĩa và sửa chữa các lỗi không nhất
quán dữ liệu giữa hai bên.
 Dùng chương trình hệ thống để sao lưu (backup) dữ liệu từ đĩa sang các thiết
bị lưu trữ phụ khác như đĩa mềm, đĩa quang, băng từ,... và phục hồi dữ liệu bị
mất từ bản sao lưu.
8.57
Day 3
Day 2
Các kiểu sao lưu dữ liệu
 Normal  Incremental
Data
Day 1 Data
Copied
Day 1
Day 2
Day 3
 Differential
Data
Copied
Day 1
Day 2
Day 3
8.58
Journaling file system
 Journaling file system
– Ghi nhận các lần cập nhật trên file system thành các giao tác (transaction)
– Mọi transaction đều phải được ghi nhận trong log file
– Một transaction được xem là hoàn tất (commit) đã được ghi nhận đầy
đủ trong log file (lúc này, file system có thể chưa được cập nhật)
– Khi file system được cập nhật với đầy đủ mọi tác vụ trong transaction thì
transaction sẽ được xóa đi trong log file.
– Nếu file system bị hỏng hệ điều hành dựa vào các transaction trong log
file để sửa chữa
 Tham khảo thêm Linux-ext3, JFS, NTFS
8.59
MỘT SỐ HỆ THỐNG QUẢN LÝ TẬP TIN
FAT (File Allocation Table)
 Đươïc sử duïng bơûi Ms-Dos, Windows.
 Theo phương phaùp baûng chỉ muïc.
 Coù 3 loaïi FAT : FAT12, FAT16, FAT32.
 Mỗi phaàn tử cuûa FAT quaûn lyù moät cluster.
 Phaàn tử đaàu tiên coù soá thứ tự laø2
 Thươøng bao goàm 2 baûng
 Đươïc định vị sau phaàn khơûi đoäng cuûa đĩa logic
8.60
FAT
FAT
0 X
1 X
2 EOF
3 13
4 2
5 9
6 8
7 FREE
8 Y
9 12
10 3
11 FREE
12 EOF
13 EOF
14 FREE
15 BAD
Kích thöôùc ñóa
Chöa caáp phaùt
Keát thuùc taäp tin
Khoái bò hoûng
Taäp tin A
Taäp tin B
Taäp tin C
6 8 4 2
5 96 12
10 3 13
8.61
FAT
0 Cluster coøn troáng
(0)002- (F)FEF Cluster chöùadöõ lieäucuûacaùc taäp tin
(F)FF0- (F)FF6 Daønhrieâng, khoângduøng
(F)FF7 Cluster hoûng
(F)FF8- (F)FFF Cluster cuoái cuøngcuûachuoãi
8.62
FAT12
Đĩa 1.44Mb sử duïng heä đieàu haønh MS-DOS
Boot Sector(1)
FAT 1(9)
FAT 2(9)
RDET(14)
DATA(2847)
Cluster 2
 1 Cluster = 1 sector
 Cluster 2 Sector logic 33
8.63
FAT12
Đĩa 1.44Mb sử duïng heä đieàu haønh MS-DOS
2
3
4
5
6
7
4
FF7
5
7
FF0
FFF
Kyù hieäu nhaän
dieän đĩa 1.44Mb
240 255 255 4 112 255 5 112 0 240 255 255
Giaù trị FAT
Giaù trị FAT lưu trưõ trong từng byte
từ byte 0
4 = 000000000100
FF7 = 111111110111
00000100 01110000 11111111
8.64
HỆ THỐNG TẬP TIN CỦA UNIX
 Đĩa logic
 Partition
 Block , 1 block = 1024 bytes
 Inode
 Kieåu
 Quyeàn truy xuaát
 Soá lươïng keát noái
Mã cuûa chuû nhân
 Kích thươùc taäp tin
 Ngaøy : caäp nhaät, thay đoåi, boå sung
8.65
HỆ THỐNG TẬP TIN CỦA UNIX
 Sơ đoà vị trí cuûa caùc I_node
Super block I_nodes
Data block
 Super block :
 Kích thươùc cuûa toaøn heä thoáng taäp tin
 Địa chỉ cuûa khoái dưõ lieäu đaàu tiên
 Soá lươïng vaø danh saùch block, I_node coøn troáng
 Ngaøy super block caäp nhaät

File đính kèm:

  • pdfBài giảng Hệ điều hành - Chương 9 File-System Interface và hiện thực.pdf
Tài liệu liên quan