He thong File FAT- doc File+ROOT

X. HỆ THỐNG FILE FAT

-3 phiên bản: FAT12, FAT16, FAT32

-Chữ số chỉ kích thước ô bảng FAT tương ứng 12, 16 và 32 bit

1. ĐĨA LOGIC

-Đơn vị cấp phát không gian trên đĩa (khối logic) là cluster (lũy thừa 2 của số lượng sector)

-Boot sector:

+Sector đầu tiên của đĩa logic

+Chứa thông tin mô tả cấu trúc đĩa logic: kích thước sector, cluster, kích thước bảng FAT

+Chứa mã chương trình mồi để tải HĐH nếu đĩa logic là đĩa khởi động

-FAT: bảng chỉ số quản lý cấp phát khối cho file

-Thư mục gốc ROOT: Kích thước vùng này được xác định bằng số lượng tối đa khoản mục trong thư mục gốc và được ghi trong boot secter

-Vùng dữ liệu: chứa các file và thư mục của đĩa logic

Hình 1

BẢNG FAT

-Quản lý các cluster trên đĩa và các file theo nguyên tắc:

+Các khối thuộc cùng 1 file được liên kết thành 1 danh sách

+Con trỏ được chứa trong ô tương ứng của bảng FAT

-Mỗi ô trong bảng FAT tương ứng với một cluster trên đĩa, chứa 1 trong các thông tin:

+STT cluster tiếp theo trong danh sách các khối của file

+Dấu hiệu kết thúc nếu ô tương ứng với cluster cuối cùng của file

+Dấu hiệu đánh dấu cluster hỏng, không được sử dụng

+Dấu hiệu đánh dấu cluster dự phòng

+Bằng 0 nếu cluster trống, chưa cấp phát cho file nào

+Cluster đầu tiên của vùng dữ liệu được đánh STT là 2

+2 ô đầu tiên của bảng FAT không dùng để quản lý cluster

Hinh2

THƯ MỤC GỐC (ROOT)

-Mỗi thư mục được lưu trong bảng thư mục, thực chất là 1 file đặc biệt chứa các khoản mục của thư mục

-Mỗi khoản mục chứa thông tin về một file hoặc thư mục con của thư mục đang xét

-Với FAT12/16, thư mục trên cùng của đĩa được chứa trong 1 vùng đặc biệt gọi là thư mục gốc

-Các thư mục mức thấp hơn/ thư mục gốc của FAT32 được chứa trong vùng dữ liệu trên đĩa cùng với các file

-Mỗi thư mục gồm các khoản mục 32 byte xếp liền nhau

HÌnh 3

HÀM ĐỌC ĐĨA

-int absread(int drive, int nsects, long lsect, void *buffer)

+drive: ổ đĩa cần đọc, A: 0, B:1, C:2

+nsects: số sector cần đọc

+lsect: vị trí sector bắt đầu đọc

+buffer: vùng nhớ lưu nội dung thông tin cần đọc

ĐỌC FAT

-Vị trí sector bắt đầu: reserved sector (byte 14, 15 trong bootsector)

-Tổng số sector cần đọc: sectors per FAT (byte 22, 23)

-Nội dung bảng FAT đã được đọc ra vùng buf

-FAT16: ô FAT thứ n = buf+n*2

ĐỌC ROOT

-Vị trí sector bắt đầu: reserved sector + NoOfFATs * sectors per FAT

-Tổng số sector cần đọc: NoOfRootEntries * 32 /BytesPerSector

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #melody