Nếu một file có kích thước là 50 sector, thì trong DOS file được chia thành 13 block (có 4 sector trong 1 block º cluster)can dien tucan dien tu còn trong windows98 file được chia thành 9 block (có 6 sector trong 1 block º cluster). Tức là, trong DOS file này được chứa ở 13 cluster trên đĩa (dãy các cluster chứa file gồm 13 phần tử) còn trong windows98 fie này được chứa trong 9 cluster (dãy các cluster chứa file gồm 9 phần tử). Điều này cho thấy file này sẽ được đọc nhanh hơn trong windows98, vì chỉ cần đọc 9 lần thay vì phải đọc 13 lần như trong DOS. Chưa kể, để đọc file các hệ điều hành phải phân tích bảng FAT để dò ra dãy các cluster chứa nội dung của file. Như vậy, hệ thống file của windows98 quản lý được một không gian đĩa lớn hơn và có tốc độ đọc file nhanh hơn, so với hệ thống file của DOSva mang trinh, do choi tinh duc, am dao gia, phau thuat tham my.
Để ghi một file vào đĩa, thì trong nhiều thao tác phải thực hi
ện hệ điều hành phải thực hiện việc đọc nội dung của các phần tử trong bảng FAT để tìm phần tử chứa giá trị 0, để ghi một block file vào cluster tương ứng trên vùng data. Trong khi đọc giá trị của các phần tử trong bảng FAT hệ điều hành có thể đọc được giá trị FF7h hoặc FFF7h, dấu hiệu của bad cluster, trong trường hợp này hệ điều hành sẽ không ghi file vào cluster tương ứng với phần tử này, và hệ điều hành sẽ tìm đọc một phần tử khác. Như vậy các bad cluster trên đĩa sẽ làm chậm tốc độ ghi file của hệ điều hành. Đây là một trong các hạn chế của các hệ thống file FAT. Các hệ thống file khác, NTFS chẳng hạn, khắc phục điều này bằng cách tạo ra một danh sách riêng để theo dõi các cluster bị bad và khi tìm cluster trống để ghi file hệ điều hành sẽ không đọc các phần tử trong bảng FAT tương ứng với các cluster này.
ện hệ điều hành phải thực hiện việc đọc nội dung của các phần tử trong bảng FAT để tìm phần tử chứa giá trị 0, để ghi một block file vào cluster tương ứng trên vùng data. Trong khi đọc giá trị của các phần tử trong bảng FAT hệ điều hành có thể đọc được giá trị FF7h hoặc FFF7h, dấu hiệu của bad cluster, trong trường hợp này hệ điều hành sẽ không ghi file vào cluster tương ứng với phần tử này, và hệ điều hành sẽ tìm đọc một phần tử khác. Như vậy các bad cluster trên đĩa sẽ làm chậm tốc độ ghi file của hệ điều hành. Đây là một trong các hạn chế của các hệ thống file FAT. Các hệ thống file khác, NTFS chẳng hạn, khắc phục điều này bằng cách tạo ra một danh sách riêng để theo dõi các cluster bị bad và khi tìm cluster trống để ghi file hệ điều hành sẽ không đọc các phần tử trong bảng FAT tương ứng với các cluster này.
Việc đọc nội dung của một phần tử trong FAT16 chỉ đơn giản là đọc nội dung của 2 byte (1 word), trong khi đó việc đọc nội dung của một phần tử trong FAT12 sẽ phức tạp hơn vì 1.5 byte không phải là kiểu dữ liệu chuẩn của ngôn ngữ máy và DOS. Do đó, DOS phải gộp 2 phần tử liên tiếp để có được 3 byte sau đó đọc hết 3 byte và phân tích để có được nội dung của 2 phần tử liên tiếp trong FAT12.
Ø Root Directory: Để quản lý thông tin của các file và các thư mục (thư mục con của thư mục gốc) đang được lưu trữ trên thư mục gốc của đĩa mềm hoặc đĩa logic trên đĩa cứng, hệ điều hành DOS sử dụng bảng thư mục gốc (root directory).
Bảng thư mục gốc gồm nhiều phần tử (entry/mục vào), số lượng phần tử trong bảng thư mục gốc được DOS quy định trước trong quá trình Format đĩa và được ghi tại word tại offset 11h trong boot sector, giá trị này không thể thay đổi. Do đó, tổng số file và thư mục con mà người sử dụng có thể chứa trên thư mục gốc của đĩa là có giới hạn. Đây là một hạn chế của DOS. Trong hệ thống file FAT32 và NTFS số phần tử trong bảng thư mục gốc không bị giới hạn, có thể thay đổi được và có thể được định vi tại một vị trí bất kỳ trên đĩa hoặc chứa trong một tập tin nào đó.
Mỗi phần tử trong bảng thư mục gốc dùng để chứa thông tin về một file hay thư mục nào đó đang được lưu trên thư mục gốc của đĩa. Khi có một file hoặc một thư mục nào đó được tạo ra trên thư mục gốc của đĩa thì hệ điều hành dùng một phần tử trong bảng thư mục gốc để chứa các thông tin liên quan của nó, khi một file hoặc thư mục bị xoá/ di chuyển khỏi thư mục gốc thì hệ điều hành sẽ thu hồi lại phần tử này để chuẩn bị cấp cho các file thư mục khác sau này.
Một phần tử trong thư mục gốc dài 32 byte, chứa các thông tin sau:
Offset
|
Nội dung
|
Độ lớn
|
00h
|
Tên chính của file (filename)
|
8 byte
|
08h
|
Phần mở rộng của tên File (.Ext)
|
3 byte
|
0Bh
|
Thuộc tính file (attribute)
|
1 byte
|
0Ch
|
Dự trữ, chưa được sử dụng (Unused)
|
10 byte
|
16h
|
Giờ thay đổi tập tin cuối cùng (time)
|
2 byte
|
18h
|
Ngày thay đổi tập tin cuối cùng (date)
|
2 byte
|
1Ah
|
Cluster đầu tiên của Flie (start cluster)
|
2 byte
|
1Ch
|
Kích thước của File (filesize)
|
4 byte
|
Bảng 4.5: Các trường trong một entry của bảng thư mục gốc
Hình vẽ 4.11 sau đây cho thấy rõ hơn về cấu trúc của một phần tử trong bảng thư mục gốc của DOS. Và byte thuộc tính của phần tử này:
· Sở dĩ DOS
i định tên file/tên thư mục dài không quá 8 kí tự và phần mở rộng tên file dài không quá 3 kí tự (tên theo chuẩn 8.3) vì DOS chỉ dùng 8 byte cho trường tên file (filename) và 3 byte cho trường tên mở rộng (.ext). Nếu người sử dụng tao file/ thư mục với tên không đủ 8 kí tự thì DOS tự động thêm vào các kí tự trắng để cho đủ 8 kí tự, ngược lại DOS tự động bỏ bớt các kí tự cuối chỉ giữ lại 8 kí tự đầu. Điều này cũng đúng cho phần mở rộng của tên fil can dien tucan dien tue.
i định tên file/tên thư mục dài không quá 8 kí tự và phần mở rộng tên file dài không quá 3 kí tự (tên theo chuẩn 8.3) vì DOS chỉ dùng 8 byte cho trường tên file (filename) và 3 byte cho trường tên mở rộng (.ext). Nếu người sử dụng tao file/ thư mục với tên không đủ 8 kí tự thì DOS tự động thêm vào các kí tự trắng để cho đủ 8 kí tự, ngược lại DOS tự động bỏ bớt các kí tự cuối chỉ giữ lại 8 kí tự đầu. Điều này cũng đúng cho phần mở rộng của tên fil can dien tucan dien tue.
Không có nhận xét nào:
Đăng nhận xét