Bài giảng Hệ điều hành - Tổ chức hệ thống tập tin FAT - Trần Trung Dũng

•Gồm một số sector đầu tiên của phân vùng (partition), trong đó:

–Sector đầu tiên (Boot Sector):

•Chứa các thông số quan trọng của phân vùng

•Chứa một đoạn chương trình nhỏ để nạp HĐH khi khởi động máy

–Các sector còn lại (nếu có):

•Chứa các thông tin hỗ trợ cho việc xác định tổng số cluster trống & tìm kiếm cluster trống được hiệu quả

•Chứa một sector bản sao của Boot sector

ppt 29 trang xuanthi 30/12/2022 2140
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Tổ chức hệ thống tập tin FAT - Trần Trung Dũng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pptbai_giang_he_dieu_hanh_to_chuc_he_thong_tap_tin_fat_tran_tru.ppt

Nội dung text: Bài giảng Hệ điều hành - Tổ chức hệ thống tập tin FAT - Trần Trung Dũng

  1. • Giới thiệu hệ thống tập tin FAT • Vùng Boot Sector • Bảng thư mục gốc (RDET) • Bảng FAT • Vùng dữ liệu • Bảng thư mục con 2
  2. • Gồm một số sector đầu tiên của phân vùng (partition), trong đó: – Sector đầu tiên (Boot Sector): • Chứa các thông số quan trọng của phân vùng • Chứa một đoạn chương trình nhỏ để nạp HĐH khi khởi động máy – Các sector còn lại (nếu có): • Chứa các thông tin hỗ trợ cho việc xác định tổng số cluster trống & tìm kiếm cluster trống được hiệu quả • Chứa một sector bản sao của Boot sector 4
  3. Entry chính 32 bytes Entry phụ N 32 bytes Entry phụ 2 Entry phụ 1 Entry chính Entry chính 8
  4. Offset Số byte Ý nghĩa 0 1 Thứ tự của entry (bắt đầu từ 1) 1 A (10d) 5 ký tự UniCode – bảng mã UTF16 B (11d) 1 Dấu hiệu nhận biết (luôn là 0Fh) E (14d) C (12d) 6 ký tự kế tiếp 1C (28d) 4 2 ký tự kế tiếp 10
  5. • Phần tử thứ k trên bảng FAT (đánh số từ 0) cho biết trạng thái của cluster thứ k trên vùng dữ liệu (đánh số từ 2) → 2 phần tử đầu của bảng FAT không dùng Trạng thái của cluster Giá trị của phần tử k trên bảng FAT Ghi chú k trên vùng dữ liệu FAT12 FAT16 FAT32 Trống 0 0 0 = FREE Hư FF7 FFF7 0FFFFFF7 = BAD Cluster cuối của file FFF FFFF 0FFFFFFF = EOF Chứa nội dung file 2 FEF 2 FFEF 2 0FFFFFEF • FAT 12 quản lý được tối đa 4078 (FEEh) cluster • FAT 16 quản lý được tối đa 65518 (FFEEh) cluster • Nếu số cluster quá 65518 thì dùng FAT 32 12
  6. • Truy xuất theo FAT 12 (mỗi phần tử 1.5 bytes) Giá trị F0 FF FF 03 40 00 FF 7F FF AB CD EF Byte 0 1 2 3 4 5 6 7 8 9 A B Giá trị FF0 FFF 003 004 FFF FF7 DAB EFC Ptử FAT 0 1 2 3 4 5 6 7 – Phần tử chẵn: F0 FF → FF0 – Phần tử lẻ: FF FF → FFF • Công thức tương quan giữa phần tử thứ k và byte thứ i trên bảng FAT i = k * 14
  7. • Chứa thông tin các tập tin/ thư mục con của một thư mục • Nằm trên vùng dữ liệu, có cấu trúc hoàn toàn giống bảng thư mục gốc • Mỗi SDET luôn có 2 entry ‘.‘ và ‘ ‘ ở đầu bảng mô tả về chính thư mục này và thư mục cha của nó 16
  8. • Đọc nội dung tập tin (TYPE) – Xác định entry chính trong bảng thư mục (RDET/ SDET) chứa thông tin của tập tin dựa vào phần tên và phần mở rộng (lưu ý trường hợp tên dài) – Từ entry chính tìm được, ta có được chỉ số cluster/ phần tử FAT đầu tiên – Từ phần tử FAT đầu tiên này, vào bảng FAT, xác định các phần tử còn lại của tập tin, tương ứng có được các cluster của tập tin này → các sector của tập tin – Đọc các sector nội dung của tập tin 18
  9. • Tạo tập tin (COPY CON) – Tìm đủ số entry trống liên tiếp nhau trên bảng thư mục (RDET/ SDET) để chứa thông tin của tập tin (lưu ý trường hợp tên dài) – Kiểm tra trên bảng FAT xem còn đủ số cluster trống để chứa nội dung của tập tin không – Lưu thông tin của tập tin vào các entry trống tìm được – Ghi giá trị vào các phần tử FAT trống tìm được theo dạng danh sách liên kết, đồng thời lưu nội dung tập tin vào các cluster tương ứng (theo chỉ số sector) 20
  10. • Xóa tập tin (DELETE) – Xác định entry chính trong bảng thư mục (RDET/ SDET) chứa thông tin của tập tin dựa vào phần tên và phần mở rộng (lưu ý trường hợp tên dài) – Đặt giá trị E5h vào byte đầu tiên của entry chính và tất cả các entry phụ của tập tin (nếu có) – Từ entry chính tìm được, ta có được chỉ số cluster/ phần tử FAT đầu tiên. Vào bảng FAT, xác định được các phần tử còn lại của tập tin – Đặt tất cả các phần tử FAT của tập tin về giá trị 0 – Lưu ý, hoàn toàn không thay đổi gì phần nội dung của tập tin 22
  11. • Sao chép tập tin (COPY) – Tìm đủ số entry trống liên tiếp nhau trên bảng thư mục (RDET/ SDET) để chứa thông tin của tập tin đích (lưu ý trường hợp tên dài) – Kiểm tra trên bảng FAT xem còn đủ số cluster trống để chứa nội dung của tập tin đích không – Copy thông tin (các entry) của tập tin nguồn sang các entry tìm được của tập tin đích – Ghi giá trị vào các phần tử FAT trống tìm được theo dạng danh sách liên kết, đồng thời copy các sector nội dung tập tin nguồn vào các sector nội dung tương ứng tìm được của tập tin đích 24
  12. • Đổi tên tập tin/ thư mục (REN) – Xác định entry chính trong bảng thư mục (RDET/ SDET) chứa thông tin của tập tin/ thư mục dựa vào phần tên và phần mở rộng (lưu ý trường hợp tên dài) – Nếu tên tập tin không cần thêm các entry phụ • Cập nhật lại phần tên và phần mở rộng – Nếu tên tập tin cần thêm các entry phụ • Tìm đủ số entry trống liên tiếp nhau trên bảng thư mục (RDET/ SDET) để chứa thông tin của tập tin đích (lưu ý trường hợp tên dài) • Copy thông tin (các entry) của tập tin nguồn sang các entry tìm được của tập tin đích 26
  13. • Xét đĩa mềm 1.44MB (có 2880 sector), để các tập tin trên vol có thể truy xuất nhanh & an toàn hơn ta có thể cho SC = 4 (sector), SB = 1 (sector), SR = 32 (entry) = 2 (sector), nF = 2. Thay các giá trị trên vào đẳng thức SB + nF*SF +SR + SD = SV ta được 1 + 2SF +2 + SD = 2880 (sector), hay 2SF + SD = 2877 (sector) (*) (*) SD < 2877 (sector) = 719.25 (cluster) (vì SC = 4 sector). Loại FAT tối ưu nhất (về kích thước) là FAT12, vì SD < 4079 (cluster) - Giả sử SF = 1 (sector): (*) SD = 2875 (sector) = 718.75 (cluster) Vùng dữ liệu có 718 cluster, nên bảng FAT phải có 718 + 2 = 720 phần tử, do đó SF = (720*1.5)/512 = 2.1x (sector) Bảng FAT phải chiếm 3 sector – mâu thuẫn với giả thiết SF = 1. Vậy kích thước bảng FAT của vol này không thể là 1 sector - Giả sử SF = 2 (sector): tương tự, ta vẫn thấy mâu thuẫn, tức kích thước bảng FAT phải lớn hơn 2 sector. - Giả sử SF = 3 (sector): (*) SD = 2871 (sector) = 717.75 (cluster). Vùng dữ liệu có 717 cluster, nên bảng FAT phải có 717 + 2 = 719 phần tử, do đó SF = (719*1.5)/512 = 2.1x (sector) Bảng FAT phải chiếm 3 sector – phù hợp với giả thiết SF = 3. Vậy kích thước bảng FAT của vol này là 3 sector. 28