4
5
Bảng chứa địa chỉ khối dữ liệu của File trong UNIX
Bảng chứa địa chỉ khối dữ liệu của file gồm 13 phần tử với 10 phần tử trực tiếp và 3
phần tử gián tiếp: Mỗi phần tử có độ dài 4 bytes, chứa một số hiệu của một khối nhớ trên
đĩa. Mỗi phần tử trực tiếp trỏ tới 1 khối dữ liệu thực sự chứa nội dung file. Phần tử gián tiếp
bậc 1 (single indirect) trỏ tới 1 khối nhớ ngoài. Khác với phần tử trực tiếp, khối nhớ ngoài
này không dùng để chứa dữ liệu của file mà lại chứa danh sách chỉ số các khối nhớ ngoài
và chính các khối nhớ ngoài này mới thực sự chứa nội dung file. Như vậy, nếu khối có độ
dài 1KB và một chỉ số khối ngoài có độ dài 4 bytes thì địa chỉ gián tiếp cho phép định vị
không gian trên đĩa lưu trữ dữ liệu của file tới 256KB (Không gian bộ nhớ ngoài trong
vùng dữ liệu phải dùng tới là 257KB). Tương tự đối với các phần tử gián tiếp mức cao hơn.
Cơ chế quản lý địa chỉ file như trên cho thấy có sự phân biệt giữa file nhỏ với file lớn.
File nhỏ có độ dài bé hơn và theo cách tổ chức như trên, phương pháp truy nhập sẽ cho
phép tốc độ nhanh hơn, đơn giản hơn do chỉ phải làm việc với các phần tử trực tiếp. Khi xử
lý, thuật toán đọc File tiến hành theo các cách khác nhau đối với các phần tử trực tiếp và
gián tiếp.
Cơ chế tổ chức lưu trữ nội dung Fle như đã trình bày cho phép độ dài file có thể lên tới
(2
24
+2
16
+ 2
8
+10) khối.
Vùng dữ liệu bao gồm các khối dữ liệu, mỗi khối dữ liệu được đánh chỉ số để phân
biệt. Khối trên vùng dữ liệu được dùng để chứa nội dung các file, nội dung các thư mục và
nội dung các khối định vị địa chỉ của các file. Chú ý rằng, chỉ số của khối dữ liệu được
chứa trong 32 bit và thông tin này xác định dung lượng lớn nhất của hệ thống file.
3.1.3. Một số thuật toán làm việc với inode
Hệ thống lời gọi hệ thống file
Khi làm việc với file thường thông qua lời gọi hệ thống. Một số lời gọi hệ thống thường
gặp như mở file open, đóng file close, đọc nội dung file read, ghi nội dung file write v.v.
Bảng dưới đây thống kê các lời gọi hệ thống làm việc với hệ thống file và phân loại
theo chức năng của mỗi lời gọi hệ thống (một lời gọi có thể được nhắc tới một số lần):
Thời điểm
sử dụng file
Sử dụng namei gán inode
thuộc
tính file
Vào-ra
file
Cấu trúc hệ
thống file
Quản
lý cây
open
creat
dup
pipe
close
open
creat
chdir
chroot
chown
chmod
stat
link
unlink
mknod
mount
umount
creat
mknod
link
unlink
chown
chmod
stat
read
write
cseek
mont
umount
chdir
chown
Thuật toán hệ thống file mức thấp
Namei
iget
iput
Ialloc
ifree
alloc
free
bmap
Thuật toán định vị buffer
getblk
brelse
Bread
breada
bwrite
Hình 3.2. Tổng thể về lời gọi hệ thống File