Hệ thống Long File Name: Trường thứ tự
l Cho biết trật tự các phần tử LFN
l Mỗi phần tử LFN chứa 13 ký tự Unicode
l Phần tử đầu tiên có giá trị trường thứ tự bằng 1
l Phần tử cuối sẽ dùng bít số 6 để đánh dấu
l Chỉ dùng tối đa 20 phần tử
l Sau ký tự cuối cùng là 0x00 0x00.
l Các ký tự không sử dụng có giá trị 0xFF 0xFF
l Bít số 7 (0x80) cho biết phần tử tương ứng đã bị xóa
Kết luận
① Hệ thống file
① Khái niệm file
② Cấu trúc thư mục
② Cài đặt hệ thống file
① Cài đặt thư mục
② Các phương pháp phân phối vùng lưu trữ
③ Quản lý vùng lưu trữ tự do
③ Tổ chức thông tin trên đĩa từ
① Cấu trúc vật lý của đĩa
② Cấu trúc logic của đĩa
④ Hệ thống FAT
① Boot sector
② Bảng FAT (File Allocation Table)
③ Thư mục gốc
195 trang |
Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 392 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ điều hành - Chương 4: Quản lý hệ thống file - Đỗ Quốc Huy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ần tử tương ứng trong thư mục
l Liệt kê thư mục: Liệt kê files và nội dung phần tử tương ứng
trong thư mục
l Đổi tên file: Thay đổi tên file, vị trí trong cấu trúc thư mục
l Duyệt hệ thống file: Truy nhập tất cả thư mục và nội dung tất cả
các files trong thư mục (backup dữ liệu lên băng từ)
Chương 4: Quản lý hệ thống file
1. Hệ thống file
1.2 Cấu trúc thư mục
Thư mục một mức
l Cấu trúc đơn giản nhất, các file nằm trong cùng một thư mục
l Số người dùng và số file lớn, khả năng trùng tên file cao
l Mỗi người dùng một thư mục riêng
Thư mục một mức
Chương 4: Quản lý hệ thống file
1. Hệ thống file
1.2 Cấu trúc thư mục
l Mỗi người sử dụng có một thư mục riêng, khi làm việc với
file chỉ duyệt thư mục riêng
l Khi log in, hệ thống sẽ kiểm tra và cho phép người sử dụng
làm việc với thư mục riêng
l Khi thêm một người dùng
l Hệ thống tạo phần tử mới trong Master file directory
l Tạo ra User file directory
l Giả quyết v/đề trùng tên; Hiệu quả khi người dùng độc lập
l Khó khăn khi muốn dùng chung file
Thư mục cấu trúc cây
Chương 4: Quản lý hệ thống file
1. Hệ thống file
1.2 Cấu trúc thư mục
l Tồn tại một đường dẫn (tương đối/tuyệt đối) đến một file
l Thư mục con là file được xử lý đặc biệt (bit đánh dấu)
l Các thao tác tạo/xóa/duyệt... t/hiện trên thư mục hiện thời
l Xóa thư mục con ⇒ Xóa hết các cây con của nó
Thư mục dùng chung
Chương 4: Quản lý hệ thống file
1. Hệ thống file
1.2 Cấu trúc thư mục
l Người dùng có thể link đến một file của người dùng khác
l Khi duyệt thư mục (backup) file có thể duyệt nhiều lần
l Xóa file: liên kết/ nội dung (người tạo file /liên kết cuối)
①Hệ thống file
②Cài đặt hệ thống file
③Tổ chức thông tin trên đĩa từ
④Hệ thống FAT
Chương 4 Quản lý hệ thống file
lCài đặt thư mục
lCác phương pháp phân phối vùng lưu trữ
lQuản lý vùng lưu trữ tự do
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.1 Cài đặt thư mục
Phương pháp
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.1 Cài đặt thư mục
① Danh sách tuyến tính với con trỏ tới các khối dữ liệu
l Đơn giản cho lập trình
l Tốn thời gian khi thực hiện các thao tác với thư mục
l Phải duyệt toàn bộ danh sách ⇐ Dùng cây nhị phân?
② Bảng băm - Bảng băm với danh sách tuyến tính
l Giảm thời gian duyệt thư mục
l Đòi hỏi có một hàm băm hiệu quả
l Vấn đề đụng độ ← hàm băm trả về cùng một kết
quả với 2 tên file khác nhau
l Vấn đề kích thước cố định → Tăng kích thước phải
tính toán lại những phần đã tồn tại
Danh sách tuyến tính
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.1 Cài đặt thư mục
Bảng băm
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.1 Cài đặt thư mục
Bảng băm
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.1 Cài đặt thư mục
lCài đặt thư mục
lCác phương pháp phân phối vùng lưu trữ
lQuản lý vùng lưu trữ tự do
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.1 Cài đặt thư mục
Mục đích
l Tăng hiệu năng truy nhập tuần tự
l Dễ dàng truy nhập ngẫu nhiên tới file
l Dễ dàng quản lý file
Phương pháp
l Phân phối liên tục (Continuous Allocation)
l Phân phối liên kết (Linked List Allocation)
l Phân phối chỉ mục (Indexed Allocation)
Các phương pháp
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Phân phối liên tục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau
Phân phối liên tục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau
Phân phối liên tục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau
Phân phối liên tục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau
Phân phối liên tục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
l File có độ dài n và bắt đầu ở khối b sẽ chiếm các khối b, b +
1, . . . , b + n − 1
l Hai khối b và b + 1 liên tiếp nhau
⇒ Không phải dịch chuyển đầu từ khi đọc (trừ sector cuối)
⇒ Tốc độ truy nhập nhanh
l Cho phép truy nhập trực tiếp khối i của file
⇒ truy nhập khối b + i − 1 trên thiết bị lưu trữ
l Lựa chọn vùng trống khi có yêu cầu lưu trữ?
l Các chiến lược First-Fit /Worst Fit /Best Fit
l Hiện tượng phân đoạn ngoài
l Khó khăn khi muốn tăng kích thước của file
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: File được phân phối các khối nhớ không liên tục.
Cuối mỗi khối là con trỏ, trỏ tới khối tiếp theo
File def gồm 5 khối: 5, 6, 8, 9, 11
Phân phối liên kết
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
l Chỉ áp dụng hiệu quả cho các file truy nhập tuần tự
l Để truy nhập khối thứ n, phải duyệt qua n − 1 khối trước đó
l Các khối không liên tục, phải định vị lại đầu từ
l Tốc độ truy nhập chậm
l Các khối trong file được liên kết bởi con trỏ. Nếu con trỏ lỗi?
l Bị mất dư liệu do mất liên kết tới khối
l Liên kết tới khối không có dữ liệu hoặc khối của file khác
l Giải quyết: Sử dụng nhiều con trỏ trong mỗi khối ⇒Tốn nhớ
l Áp dụng: FAT
l Được sử dụng như danh sách liên kết
l Gồm nhiều phần tử, mỗi phần tử ứng với một khối
l Mỗi phần tử trong FAT, chứa khối tiếp theo của file
l Khối cuối cùng có giá trị đặc biệt (FFFF)
l Khối bị hỏng có giá trị (FFF7)
l Khối chưa sử dụng có giá trị (0)
l Trường vị trí trong bản ghi file, chứa khối đầu tiên của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: Mỗi file có một khối chỉ mục chính (index block)
chứa danh sách các khối dữ liệu của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: Mỗi file có một khối chỉ mục chính (index block)
chứa danh sách các khối dữ liệu của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: Mỗi file có một khối chỉ mục chính (index block)
chứa danh sách các khối dữ liệu của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: Mỗi file có một khối chỉ mục chính (index block)
chứa danh sách các khối dữ liệu của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: Mỗi file có một khối chỉ mục chính (index block)
chứa danh sách các khối dữ liệu của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
Nguyên tắc: Mỗi file có một khối chỉ mục chính (index block)
chứa danh sách các khối dữ liệu của file
Phân phối chỉ mục
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
l Phần tử thứ i của khối chỉ mục trỏ tới khối thứ i của file
l Đọc khối i dùng con trỏ được khi tại p/tử i của khối chỉ mục
l Tạo file, các phần tử của khối chỉ mục có giá trị null (-1)
l Cần thêm khối i, địa chỉ khối được cấp, được đưa vào p/tử i
l Nhận xét
l Không gây hiện tượng phân đoạn ngoài
l Cho phép truy nhập trực tiếp
l Cần khối chỉ mục: file có k/thước nhỏ, vẫn cần 2 khối
l Khối cho dữ liệu
l Khối chi khối chỉ mục (chỉ dùng 1 phần tử)
Giải quyết: Giảm kích thước khối ⇒ Giảm phí tổn bộ nhớ ⇒ Vấn
đề về kích thước file có thể lưu trữ.
l Sơ đồ liên kết
l Liên kết các khối chỉ mục lại
l P/tử cuối của khối chỉ mục trỏ tới khối chỉ mục khác nếu cần
l Index nhiều mức
l Dùng một khối chỉ mục trỏ tới các khối chỉ mục khác
Sơ đồ kết hợp (UNIX)
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
l 12 direct block trỏ
tới data block
l Single indirect
block chứa địa chỉ
khối direct block
l Double indirect
block chứa địa chỉ
khối Single indirect
block
l Triple indirect block
chứa địa chỉ khối
Double indirect
lCài đặt thư mục
lCác phương pháp phân phối vùng lưu trữ
lQuản lý vùng lưu trữ tự do
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2.3 Quản lý vùng lưu trữ tự do
Phương pháp
Chương 4: Quản lý hệ thống file
2. Cài đặt hệ thống file
2. 2 Các phương pháp phân phối vùng lưu trữ
l Bit vector
l Mỗi block thể hiện bởi 1 bit (1: free; 0: allocated)
l Dễ dàng tìm ra n khối nhớ liên tục
l Cần có lệnh cho phép làm việc với bit
l Danh sách liên kết (link list)
l Lưu giữ con trỏ tới khối đĩa trống đầu tiên
l Khối nhớ này chứa con trỏ trở tới khối đĩa trống tiếp theo
l Không hiệu quả khi duyệt danh sách
l Nhóm (Grouping)
l Lưu trữ địa chỉ n khối tự do trong khối tự do đầu tiên
l n − 1 khối đầu tự do, khối n chứa đ/chỉ của n khối tự do tiếp
l Ưu điểm: Tìm vùng nhớ tự do nhanh chóng
l Bộ đếm (Counting)
l Do các khối nhớ liên tục được c/cấp và g/phóng đồng thời
l Nguyên tắc: Lưu địa chỉ khối nhớ tự do đầu tiên và kích thước vùng
nhớ liên tục trong DS quản lý vùng trống
l Hiệu quả khi bộ đếm lớn hơn 1
①Hệ thống file
②Cài đặt hệ thống file
③Tổ chức thông tin trên đĩa từ
④Hệ thống FAT
Chương 4 Quản lý hệ thống file
lCấu trúc vật lý của đĩa
lCấu trúc logic của đĩa
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
44 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Đĩa mềm 5!"
45 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Đĩa mềm 3!#
Mặt 0Rãnh Sector
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Cấu trúc vật lý đĩa mềm
l Rãnh đĩa (Track): Các vòng tròn đồng tâm
l Được đánh số 0, 1,. . . từ ngoài vào trong
l Mặt đĩa. Mỗi mặt đĩa được đọc bởi một đầu đọc (Header)
l Các đầu từ được đánh số 0, 1
l Cung từ (Sector)
l Được đánh số 1, 2,. . .
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #0
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #1
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #2
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #3
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #4
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #5
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #6
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #7
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #8
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #9
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #10
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #15
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
Sector → #16
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Định vị thông tin trên đĩa mềm
l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa
l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector
l Ví dụ: Boot Sector của đĩa mềm: Sector
l Sector được xác định qua số hiệu sector (tọa độ 1 chiều)
l Vị trí tương đối so với sector đầu tiên của đĩa
#0 #1 #2
#8 #9
Mô hình thiết bị lưu trữ (Disk)
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Đĩa cứng
49 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Đĩa cứng
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Cấu trúc vật lý đĩa cứng
Cấu trúc
l Gồm nhiều mặt đĩa, được đánh số
từ 0,1
l Các rãnh cùng bán kính tạo nên
cylinder, được đánh số từ 0, 1,..
l Các sector trên mỗi mặt của mỗi
cylinder, được đánh số từ 1,2,...
Định vị thông tin
l Tọa độ 3 chiều (H, C, S)
l Tọa độ 1 chiều: Số hiệu sector
l Nguyên tắc như với đĩa mềm: Sector→Header→Cylinder
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Truy nhập sector trên đĩa
l Sector: đơn vị thông tin máy tính dùng để làm việc với đĩa từ
l Có thể truy nhập (đọc/ghi/format/...) tới từng sector
l Truy nhập sử dụng ngắt BIOS 13h (chức năng 2, 3, 5,...)
l Không phụ thuộc hệ điều hành
l Sector được xác định theo địa chỉ
l Truy nhập sử dụng lời gọi hệ thống
l Ngắt của hệ điều hành
l Ví dụ: MSDOS cung cấp ngắt 25h/26h cho phép
đọc/ghi các sector theo địa chỉ tuyến tính
l Sử dụng hàm WIN32 API
l CreateFile()/ReadFile()/WriteFile()...
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Sử dụng ngắt 13h
Thanh ghi Ý nghĩa
AH 2h:Đọc sector; 3h: Ghi Sector
AL Số sector cần đọc
Các sector phải trên cùng một mặt, một rãnh
DH Số hiệu mặt đĩa
DL Số hiệu ổ đĩa.
0h:A; 80h: Đĩa cứng thứ nhất; 81h Đĩa cứng thứ 2
CH Số hiệu Track/Cylinder (Sử dụng 10 bit, trong đó lấy 2 bit cao
của CL)
CL Số hiệu sector (chỉ sử dụng 6 bit thấp)
ES:BX Trỏ tới vùng đệm, nơi sẽ chứa dữ liệu đọc đươc (khi AH=2h)
hoặc dữ liệu ghi ra đĩa (Khi AH=3h)
CarryFlag CF=0 không có lỗi; CL chứa số sector đọc được
CF=1 Có lỗi, AH chứa mã lỗi
WinXP hạn chế sử dụng ngắt 13h để truy nhập trực tiếp
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Sử dụng ngắt 13h (Ví dụ)
#include
#include
int main(int argc, char *argv[]){
union REGS regs;
struct SREGS sregs;
int Buf[512];
int i;
regs.h.ah = 0x02;
regs.h.al = 0x01;
regs.h.dh = 0x00;
regs.h.dl = 0x80;
regs.h.ch = 0x00;
regs.h.cl = 0x01;
regs.x.bx = FP_OFF(Buf);
sregs.es = FP_SEG(Buf);
int86x(0x13,®s,®s,&sregs);
for(i=0;i<512;i++) printf("%4X",Buf[i]);
return 0;
}
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Sử dụng WIN32 API
l HANDLE CreateFile(. . .): Mở file/thiết bị vào ra
l LPCTSTR lpFileName, ⇒ Tên file/thiết bị vào ra
l ” "\\?\\\\\.\\C : ” Phân vùng / Ổ đĩa C
l ”\\\\.\\PhysicalDrive0” Ổ đĩa cứng thứ nhất
l DWORD dwDesiredAccess,⇒ Thao tác với thiết bị
l DWORD dwShareMode,⇒ Cho phép dùng chung
l LPSECURITY_ATTRIBUTES lpSecurityAttributes (NULL),
l DWORD dwCreationDisposition,⇒ Hành động thực hiện
l DWORD dwFlagsAndAttributes, ⇒ Thuộc tính
l HANDLE hTemplateFile (NULL)
l BOOL ReadFile(. . .)
l HANDLE hFile,⇒File muốn đọc
l LPVOID lpBuffer, ⇒ Vùng đệm chứa dữ liệu
l DWORD nNumberOfBytesToRead,⇒, số byte cần đọc
l LPDWORD lpNumberOfBytesRead,⇒ số byte đọc được
l LPOVERLAPPED lpOverlapped (NULL)
l BOOL WriteFile(. . .) ⇒Tham số tương tự ReadFile()
#include
#include
int main(int argc, char *argv[] ) {
HANDLE hDisk;
BYTE Buf[512];
int byteread,i;
hDisk=CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
OPEN_EXISTING,0,NULL);
i f (hDisk==INVALID_HANDLE_VALUE) printf("Loi thiet b i " ) ;
else {
ReadFile(hDisk,Buf,512,&byteread,NULL);
for(i=0;i<512;i++) printf("%4X",Buf[i]);
CloseHandle(hDisk);
}
return 0;
}
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Sử dụng WIN32 API (Ví dụ)
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.1 Cấu trúc vật lý của đĩa
Kết quả thực hiện
lCấu trúc vật lý của đĩa
lCấu trúc logic của đĩa
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3. 2.Cấu trúc logic của đĩa
MBR
Sector ẩn Phân vùng1
Phân vùng2
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Cấu trúc logic
l Đĩa mềm: Mỗi hệ điều hành có một chiến lược quản lý riêng
l Đĩa cứng (Có dung lượng lớn)
l Được chia thành nhiều phân vùng (Partitions, Volumes,..)
l Mỗi vùng là tập hợp các Cylinder liên tiếp nhau
l Người dùng ấn định kích thước (Ví dụ dùng: fdisk)
l Mỗi phân vùng có thể được quản lý bởi một HĐH riêng
l HĐH format phân vùng theo định dạng được sử dụng
l Tồn tại nhiều hệ thống khác nhau: FAT, NTFS, EXT3,...
l Trước tất cả các phân vùng là các sector bị che
l Master Boot Record (MBR): Sector đầu tiên của đĩa
Sector ẩn với phân vùng 2
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Master Boor Record
1. Chương trình nhận biết
l Đọc bảng phân chương để biết
l Vị trí các phân vùng
l Phân vùng tích cực (chứa HĐH)
l Đọc và thực hiện sector đầu tiên của
phân vùng tích cực
2. Bảng phân chương (64bytes)
l Gồm 4 phần tử, mỗi phần tử 16 bytes
l Mỗi phần tử chứa thông tin một vùng
Vị trí, kích thước, hệ thống chiếm giữ
3. Chữ ký hệ thống (luôn là 55AA)
l Sector quan trọng nhất của đĩa
l Sector đầu tiên trên đĩa (Số hiệu 0 hoặc địa chỉ )
l Cấu trúc gồm 3 phần
Stt Ofs Size Ý nghĩa
1 0 1B Phân vùng tích cực? 80h nếu đúng; 0: Data
Đ
ịa
c
hỉ
đầ
u
2 1 1B Số hiệu mặt đĩa đầu của phân vùng
3
2 1W Số hiêu sector và cylinder đầu của phân vùng
4 4 1B
Mã nhận diện hệ thốn. 05/0F: Partition mởrộng
06:Big Dos; 07:NTFS; 0B: FAT32,..
đ/
c
cu
ối
5 5 1B Số hiệu đầu đọc cuối
6 6 1W Số hiệu sector và cylinder cuối của phân vùng.
(Số hiệu sector chỉ dùng 6 bit thấp)
7 8 1DW Đia chỉ đầu, tính theo số hiệu sector
8 12 1DW Số sector trong phân vùng
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Cấu trúc một phần tử bảng phân chương
00 01 01 00 07 FE 3F F8 3F 00 00 00 7A 09 3D 00
80 00 01 F9 0B FE BF 30 B9 09 3D 00 38 7B 4C 00
00 00 81 EB 0F FE FF FF 2B 1D B7 00 72 13 7A 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
55 AA
Giải mã
Boot
Vi trí đầu Vi trí cuối
#sector Số sectorHdr Cyl Sec HdR Cyl Sec
No 1 0 1 254 248 63 63 4000122
Yes 0 249 1 254 560 63 4000185 5012280
No 0 747 1 254 1023 63 12000555 8000370
- 0 0 0 0 0 0 0 0
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Ví dụ 1
62 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Ví dụ 2
MBR MBR
l Khi trường nhận diện có giá trị 05 hoặc 0F, partition tương ứng là
partition mở rộng
l Partition mở rộng được tổ chức như một đĩa cứng vật lý
l Sector đầu tiên là MBR, chứa thông tin về các phân vùng trong
partition mở rộng này
l Các phần tử trong partition mở rộng có thể là partition rộng
l Cho phép tạo hơn 4 ổ đĩa logic
80 07
00 0B
00 0F
Sys#SectorAct Size
00 0B
00 05
Sys#SectorAct Size
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Bảng phân chương mở rộng
Bảng phân chương mở rộngBảng phân chương
Phân vùng 1 Phân vùng mở rộng
64 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Ví dụ về bảng phân chương mở rộng 1
65 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Ví dụ về bảng phân chương mở rộng 2
66 / 107
Chương 4: Quản lý hệ thống file
3. Tổ chức thông tin trên đĩa từ
3.2.Cấu trúc logic của đĩa
Ví dụ về bảng phân chương mở rộng 3
①Hệ thống file
②Cài đặt hệ thống file
③Tổ chức thông tin trên đĩa từ
④Hệ thống FAT
Chương 4 Quản lý hệ thống file
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
Các hệ thống file
Tồn tại nhiều hệ thống file khác nhau
l Hệ thống FAT
l FAT 12/ FAT16 dùng cho MSDOS
l FAT32 dùng từ WIN98
l 12/16/32: Số bit dùng để định danh cluster
l Hệ thống NTFS
l Sử dụng trong WINNT, WIN2000
l Dùng 64 bit để xác định một cluster
l Ưu việt hơn FAT trong bảo mật, mã hóa, nén dữ liệu,...
l Hệ thống EXT3
l Sử dụng trong Linux
l Hệ thống CDFS
l Hệ thống quản lý file trong CDROM
l Hạn chế về độ sâu cây thư mục và kích thước tên
l Hệ thốngs UDF
l Phát triển từ CDFS cho DVD-ROM, hỗ trợ tên file dài
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
l Boot sector
l Bảng FAT (File Allocation Table)
l Thư mục gốc
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
Cấu trúc phân vùng cho FAT
FAT12/16
l Số cluster lớn nhất FAT12: 212 − 18; FAT16 : 216 − 18
l K/thước max: FAT12: 32MB; FAT16: 2GB/4GB (32K/64K Cluster)
FAT32
l Chỉ dùng 28 bit ⇒ Số cluster lớn nhất 228 − 18
l K/thước max: 2TB/8GB/16TB (8KB/32KB/64KB Cluster)
Cấu trúc logic của hệ thống FAT
Vùng hệ thống Vùng dữ liệu
Jmp xx
Bảng Tham số
Chương trình mồi
55AA
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Cấu trúc
l Sector đầu tiên của phân vùng
l Cấu trúc gồm 3 phần
l Bảng tham số đĩa (BPB: Bios Parameter Block)
l Chương trình mồi (Boot strap loader)
l Chữ ký hệ thống (luôn là 55AA)
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Cấu trúc bảng tham số đĩa - Phần chung
Stt Ofs Kt Giá trị mẫu Ý nghĩa
1 0 3B EB 3C 90 Nhảy đến đầu chương trình mồi
2 3 8B MSDOS5.0 Tên hệ thống file đã format đĩa
3 11 1W 00 02 K/thước 1 sector, thường là 512
4 13 1B 40 Số sector cho một cluster (32K-Cluster)
5 14 1W 01 00 Số scts đứng trước FAT/Số scts để dành
6 16 1B 02 Số bảng FAT
7 17 1W 00 02 Số phần tử của ROOT. FAT32: 00 00
8 19 1W 00 00 Tổng số sector trên đĩa (< 32M) hoặc 0000
9 21 1B F8 Khuôn dạng đĩa (F8:HD, F0: Đĩa1.44M)
10 22 1W D1 09 Số sector cho một bảng FAT(209)
11 24 1W 3F 00 Số sector cho một rãnh (63)
12 26 1W 40 00 Số đầu đọc ghi (64)
13 28 1DW 3F 00 00 00 Số sector ẩn- Sectors trước volume (63)
14 32 1DW 41 0C 34 00 Tổng số sector trên đĩa (3411009)
Ví dụ:
73 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Cấu trúc bảng tham số đĩa - Phần dành cho FAT12/FAT16
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
3 Bytes đầu: Nhảy đến đầu chương trình mồi
Jmp+3C
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
OEName: MSDOS5.0
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
8 Bytes
Tên hệ thống file đã format đĩa
Kích thước sector: 512
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
1 Word
K/thước 1 sector
2 sector cho 1 cluster
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Số sector cho một cluster
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Có 6 sector đứng trước bảng FAT thứ nhất
Số sector đứng trước FAT
Có 2 bảngFAT
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Số phần tử của ROOT
Có tối đa 512 phần tử trong thư mục gốc
Đĩa lớn hơn 32MB
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Tổng số sector trên đĩa
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Mã nhận diện khuôn dạng đĩa: F8
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Số sector cho một bảng FAT:245
Số sector cho một rãnh:63
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Số đầu đọc ghi: 255
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Số sector ẩn: 63
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Tổng số sector của Volume: 125889(≈64MB)
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Số hiệu ổ đĩa vật lý: 00 00
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Bootsector mở rộng: 29h
Volume serial number: 70D4-EAA6
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Nhãn đĩa: NO NAME
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Kiểu FAT: FAT16
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Bắt đầu của chương trình mồi
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ giải mã bảng tham số đĩa của FAT16
Stt Ofs Kt Giá tri mẫu Ý nghĩa
15 36 1DW C9 03 00 00 Tổng số sector cho bảng FAT
16 40 1W 00 00 Flags: #FAT chính(Không dùng )
17 42 1W 00 00 Version: Phiên bản FAT32 (Không dùng )
18 44 1DW 02 00 00 00 Số hiệu cluster bắt đầu của ROOT
19 48 1W 01 00 #sector chứa File System information
20 50 1W 06 00 Số hiệu sector dùng backup Bootsector
21 52 12B 00 . . . 00 Để dành
22 64 1B 00 Số hiệu ổ đĩa vật lý 0: ổ A; 80h: ổ C
23 65 1B 00 Để dành/Byte cao cho trường #Driver
24 66 1B 29 Boot sector mở rộng. Luôn có giá trị 29h
25 67 1DW 62 0E 18 66 Volumn Serial number
26 71 11B NO NAME Volumn Label: Nhãn đĩa (Ko s/dụng )
27 82 8B FAT32 Để dành, thường là đoạn text miêu tả
dạng FAT
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Cấu trúc bảng tham số đĩa - Phần dành cho FAT32
76 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Ví dụ Boot sector của một hệ thống dùng FAT32
77 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Kết quả giải mã hệ thống FAT32 bằng chương trình
Stt Ofs Size Ý nghĩa
1 0 1DW Chữ ký thứ nhất của FSInfo sector. Giá trị các
byte theo thứ tự: 52h 52h 61h 41h
2 4 480B Không rõ, thường chứa giá trị 00
3 484 1DW Chữ ký của File System Information Sector. Giá
trị các byte theo thứ tự: 72h 72h 41h 61h
4 488 1DW Số cluster tự do. -1 nếu không xác định
5 492 1DW Số hiệu của cluster vừa mới được cung cấp
6 496 12B Để dành
7 508 2B Không xác định, thường bằng 0
8 510 2B Chữ ký Bootsector. Có giá trị 55 AA
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
File System Information Sector
l Thường là Sector thứ 2 của Volume
l Ngay sau Boot sector (Sector số hiệu 1)
l Cấu trúc
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
File system information sector của một volume dùng FAT32
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
File system information sector của một volume dùng FAT32
Stt Ofs Kt Giá tri mẫu Ý nghĩa
Nhảy đến đầu chương trình mồi
Tên hệ th6ng file đã format đĩa
Bytes perSector
Sectors per Cluster (4K-Cluster )
Reserved sectors. Allways zero
Allways 0 (FAT: Số bảng FAT)
Allways 0 (FAT: Sốp/tử của ROOT)
Not used by NTFS (FAT:K/thước đĩa)
Media Type
Allway 0 (FAT:Sectors cho FAT)
Sector per Track (63 )
Number of Head (255 )
Hidden sectors (63)
1 0 3B EB 52 90
2 3 8B NTFS
3 11 1W 00 02
4 13 1B 08
5 14 1W 00 00
6 16 1B 00
7 17 1W 00 00
8 19 1W 00 00
9 21 1B F8
10 22 1W 00 00
11 24 1W 3F 00
12 26 1W FF 00
13 28 1DW 3F 00 0000
14 32 1DW 00 00 0000
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Cấu trúc bảng tham số đĩa cho hệ thống NTFS 1
Not used by NTFS (FAT: ∑ sectors )
Stt Ofs Kt Giá tri mẫu Ý nghĩa
15 36 1DW 80 00 80 00 Not used by NTFS(FAT:Tổng số sec-
tors cho FAT)
16 40 1LCN 2B 92 00 02 Total sectors (LCN:LONGLONG )
00 00 00 00 (33591851 )
17 48 1LCN 00 00 0C 00 Logical cluster number for MFT
00 00 00 00 (786432 )
18 56 1LCN 22 09 20 00 Logical #cluster for MFT mirroring
00 00 00 00 (2099490 )
19 64 1DW F6 00 00 00 Clusters per file record segment (246)
20 68 1DW 01 00 00 00 Clusters per index block (1)
21 72 1LCN A6 CA D7 C6 Volume serial number
00 D8 6C 24 246C-D800-C6D7-CAA6
22 80 1DW 00 00 00 00 Checksum
23 84 - Bootstrap loader
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Cấu trúc bảng tham số đĩa cho hệ thống NTFS 2
82 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Boot sectors của một đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
83 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.1 Boot sector
Giải mã bảng tham số của đĩa dùng NTFS
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
l Boot sector
l Bảng FAT (File Allocation Table)
l Thư mục gốc
FAT được sử dụng để quản lý các khối nhớ (blocks/clusters) trong vùng
dữ liệu của bộ nhớ lưu trữ
l Khối nhớ đang sử dụng
l Phân phối cho từng file/thư mục
l Khối nhớ tự do
l Khối nhớ bị hỏng
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Mục đích
DATA
#2 #3 #4 #5 #6 #7 #8 #9
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Phương pháp
FAT gồm nhiều phần tử
l Mỗi phần tử có thể 12bit, 16bit, 32bit
l Mỗi phần tử ứng với 1 khối (cluster) trên vùng dữ liệu
l 2 phần tử đầu (0,1) có ý nghĩa đặc biệt
l Khuôn dạng đĩa, Bit shutdown, Bit diskerrror
l Phần tử thứ 2 ứng với cluster đầu của phần Data
FAT[(32)16]12 Ý nghĩa
[(0000)0]000h Cluster tương ứng tự do
[(0000)0]001h Giá trị không sửdụng
[(0000)0]002h
→[(0FFF)F]FEFh
Cluster đang được sử dụng. Giá trị đóng vai trò
con trỏ, trỏ tới cluster tiếp theo củafile
[(0FFF)F]FF0h Các giá trị để dành, chưa được sử dụng
→[(0FFF)F]FF6h
[(0FFF)F]FF7h Đánh dấu cluster tương ứng bị hỏng
[(0FFF)F]FF8h→
→[(0FFF)F]FFFh
Cluster đang đc sử dụng và là cluster cuối cùng
của file (EOC:End Of Cluster chain). Thực tế
thường dùng giá trị [(0FFF)F]FFFh
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Cài đặt
Mỗi phần tử của bảng FAT mang một giá trị đặc trưng cho tính chất của
cluster tương ứng
Root entry
#12 #13 #14 #15 #16 #17 #18 #19 #20 #21
ABC TXT A Time Date 008 Size
FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Special
values 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21 FFF
#2 #3 #4 #5 #6 #7 #8 #9 #10 #11
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Liên kết các cluster
DATA
Root entry
values
Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21 FFF
DATA
#2 #3 #4 #5 #6 #7 #8 #9 #10 #11
#12 #13 #14 #15 #16 #17 #18 #19 #20 #21
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Liên kết các cluster
ABC TXT A Time Date 008 Size
FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Root entry
values
Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21FFF
DATA
#2 #3 #4 #5 #6 #7 #8 #9 #10 #11
#12 #13 #14 #15 #16 #17 #18 #19 #20 #21
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Liên kết các cluster
ABC TXT A Time Date 008 Size
FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Root entry
values
Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21FFF
DATA
#2 #3 #4 #5 #6 #7 #8 #9 #10 #11
#12 #13 #14 #15 #16 #17 #18 #19 #20 #21
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Liên kết các cluster
ABC TXT A Time Date 008 Size
FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Root entry
values
Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21 FFF
DATA
#2 #3 #4 #5 #6 #7 #8 #9 #10 #11
#12 #13 #14 #15 #16 #17 #18 #19 #20 #21
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Liên kết các cluster
ABC TXT A Time Date 008 Size
FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Ví dụ: Đọc một sector của FAT32
#include
#include
int main(int argc, char *argv[]){
HANDLE hDisk;
BYTE Buf[512]; DWORD FAT[128];
WORD FATAddr; DWORD byteread, i;
hDisk = CreateFile("\\\\.\\F:", GENERIC_READ,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
OPEN_EXISTING,0,NULL);
ReadFile(hDisk,Buf,512,&byteread,NULL);
memcpy(&FATAddr,&Buf[14],2);//Offset 14 Sector truoc FAT
SetFilePointer(hDisk,FATAddr * 512, NULL,FILE_BEGIN);
ReadFile(hDisk,FAT,512,&byteread,NULL);
for(i=0;i<128;i++) printf(" %08X ",FAT[i]);
CloseHandle(hDisk);
return 0;
}
A Root entry
90 / 107
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.2 Bảng FAT
Ví dụ: Sector đầu của một FAT32
FAT
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
l Boot sector
l Bảng FAT (File Allocation Table)
l Thư mục gốc
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Cấu trúc thư mục gốc
l Bảng gồm các bản ghi file
l Mỗi bản ghi có kích thước 32 bytes
l Chứa các thông tin liên quan tới một file/thư mục/ nhãn
đĩa
l Hệ thống FAT12/FAT16
l Thư mục gốc nằm ngay sau các bảng FAT
l Kích thước = Số phần tử tối đa trong thư mục gốc * 32
l Hệ thống FAT32
l Vị trí được xác định dựa vào BPB
l Trường 18: Số hiệu cluster đầu của ROOT
l Kích thước không xác định
l Hỗ trợ tên file dài (LFN: Long File Name)
l Một file có thể sử dụng nhiều hơn một phần tử
Stt Ofs Size Ý nghĩa
1 0 8B Tên file
2 8 3B Phần mở rộng
3 11 1B Thuộc tính của file
4 12 10B Không dùng với FAT12/FAT16. Sử dụng với FAT32
4.1 12 1B Để dành
4.2 13 1B Thời điểm tạo file, theo đơn vị 10ms
4.3 14 1W Thời điểm tạo file (giờ - phút - giây )
4.4 16 1W Ngày tạo file (tạo bởi ứng dụng hoặc bởi copy sang )
4.5 18 1W Ngày truy nhập cu6i
4.6 20 1W Số hiệu cluster bắt đầu của file(FAT32: Phần cao)
5 22 1W Thời gian cập nhật cuối cùng
6 24 1W Ngày cập nhật cuối (không y/cầu sau ngày tạo file)
7 26 1W Số hiệu cluster bắt đầu của file (FAT32: Phần thấp)
8 28 1DW Kích thước tính bằng byte
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Cấu trúc một phần tử
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Cấu trúc một phần tử :Tên file
l Chuỗi ASCII chứa tên file. Các ký tự là chữ in
l Không chấp nhận khoảng trống ở giữa
l Các câu lệnh copy, del,... không nhận biết tên có dấu trắng
l Nếu ít hơn 8 ký tự, được chèn các ký tự trống cho đủ 8
l Ký tự đầu có thể mang ý nghĩa đặc biệt
l 00h: Phần tử đầu tiên của phần chưa dùng đến
l E5h (ký tự "δ"): File tương ứng với phần tử này đã bị xóa.
l 2Eh (ký tự "."): Đây là thư mục con
l Trường số hiệu cluster bắt đầu chỉ đến chính nó
l Cấu trúc như thư mục con giống như thư mục gốc: gồm các
phần tử 32bytes
l 2Eh2Eh (ký tự ".."): Đây là thư mục cha của thư mục hiện tại
l Trường số hiệu cluster bắt đầu chỉ đến thư mục cha
l Nếu cha là gốc, #cluster bắt đầu bằng zero (FAT12/16)
l Thư mục con nằm trên phần Data, được quản lý như một file ⇒
File của các bản ghi file
l FAT12/16: Thư mục gốc ở vị trí xác định; FAT32: Thư mục gốc
cũng nằm trong phần data
Name
DATA
A Clst
V 00
Sub-1 D
File-A A
Sub-2 D
ROOT
D...
File-F A
D
Sub-11 D
File-B AS
ub
-d
ire
ct
or
y
F F
F
F
.Sub-directory
FDD..
File-E A F
. D.. D
File-C A
AFile-D
Sub-directory
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Thư mục con
Name
DATA
A Clst
V 00
Sub-1 D
File-A A
Sub-2 D
ROOT
. D
.. D
F ry File-F A
Sub-directo
Sub-11 D
File-B A
Sub-directory. D
.. D
File-E A
F
F
. D.. D
File-C A
F
F
F
DATA
Sub-1
File-F
Sub-11
File-C
File-D
File-B
File-A
Sub-2
File-E
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Thư mục con
Sub-directory
Ví dụ: Byte thuộc tính 0Fh: 0 0 0 0 1 1 1 1
⇒ Có các thuộc tính Volume label+System+Hidden+Readonly
Ghi chú: Giá tri byte thuộc tính 0x0F không sử dụng trong
MS-DOS ⇒ Dùng để đánh dấu là phần tử Long File Name
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Cấu trúc một phần tử : Trường thuộc tính
0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0
Ví dụ: 15 giờ 34 phút 45 giây
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Cấu trúc một phần tử
Có giá trị :7C56
Ví dụ: 17 tháng 5 năm2011
Có giá trị : 3EB1
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Cấu trúc một phần tử : Trường ngày tháng
...
Phần tử LFN 3
Phần tử LFN 2
Phần tử LFN 1
Phần tử 8.3 (ttt∼n.xxx)
Ofs Kt Ý nghĩa
0 1B Trưong thứ tự.
1 5W 5 ký tự unicode đầu tiên
11 1B Thuộc tính. Đánh dấu là phần tử
LFN. Luôn có giá trị 0Fh
12 1B Để dành (00)
13 1B Checksum: Cho phép kiểm tra tên
file dài có ứng với tên file 8.3?
14 6W Các ký tự unicode 6,7,8,9,10,11
26 1W Số hiệu cluster. Không dùng (0000)
28 1W Ký tự unicode 12
30 1W Ký tự unicode 13
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Hệ thống Long File Name (LFN)
Entry Ord Attr Data
LFN 3 0x43 0x0F ame.docx
LFN 2 0x02 0x0F y long file n
LFN 1 0x01 0x0F This is a ver
8.3 Name THISIS∼1.DOC
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Hệ thống Long File Name: Trường thứ tự
l Cho biết trật tự các phần tử LFN
l Mỗi phần tử LFN chứa 13 ký tự Unicode
l Phần tử đầu tiên có giá trị trường thứ tự bằng 1
l Phần tử cuối sẽ dùng bít số 6 để đánh dấu
l Chỉ dùng tối đa 20 phần tử
l Sau ký tự cuối cùng là 0x00 0x00.
l Các ký tự không sử dụng có giá trị 0xFF 0xFF
l Bít số 7 (0x80) cho biết phần tử tương ứng đã bị xóa
l Ví dụ file "This is a very long file name.docx"
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Ví dụ: Một sector của ROOT
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Ví dụ: Nội dụng của ROOT
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT
DATA Nhãn đĩa
#Cluster : 0 Size : 0
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 1
DATA Nhãn đĩa
#Cluster : 0 Size : 0
File đã bi xóa
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT
File ReadMBR.C
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
File ReadMBR.C
Tên file: READMBR
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
File ReadMBR.C
Tên file: READMBR Mở rộng:C
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
File ReadMBR.C
Tên file: READMBR Mở rộng:C Lư
u
trữ
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
File ReadMBR.C
Tên file: READMBR Mở rộng:C Lư
u
trữ 6
00
m
s
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
File ReadMBR.C
Tên file: READMBR Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
File ReadMBR.C
Tên file: READMBR
C
re
at
e
da
te
05
/0
5/
20
11
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
File ReadMBR.C
Tên file: READMBR
C
re
at
e
da
te
05
/0
5/
20
11
La
st
ac
ce
ss
05
/0
5/
20
11
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
File ReadMBR.C
Tên file: READMBR
C
re
at
e
da
te
05
/0
5/
20
11
La
st
ac
ce
ss
05
/0
5/
20
11
M
od
ifi
ed
tim
e
15
h1
4m
30
s
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
File ReadMBR.C
Tên file: READMBR
C
re
at
e
da
te
05
/0
5/
20
11
La
st
ac
ce
ss
05
/0
5/
20
11
M
od
ifi
ed
tim
e
15
h1
4m
30
s
M
od
ifi
ed
da
te
04
/0
5/
20
11
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
File ReadMBR.C
Tên file: READMBR
C
re
at
e
da
te
05
/0
5/
20
11
La
st
ac
ce
ss
05
/0
5/
20
11
M
od
ifi
ed
tim
e
15
h1
4m
30
s
M
od
ifi
ed
da
te
04
/0
5/
20
11
Fi
rs
tc
lu
st
er
11
84
0
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
File ReadMBR.C
Tên file: READMBR
C
re
at
e
da
te
05
/0
5/
20
11
La
st
ac
ce
ss
05
/0
5/
20
11
M
od
ifi
ed
tim
e
15
h1
4m
30
s
M
od
ifi
ed
da
te
04
/0
5/
20
11
Fi
rs
tc
lu
st
er
11
84
0
File size :2749
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 2
Mở rộng:C Lư
u
trữ 6
00
m
s
C
re
at
e
tim
e
11
h2
8m
12
s
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 3
Phần tử LFN# 1(ReadBiosSecto)
Phần tử LFN#2 - LFN cuối (r.c )
Ký tự sau ký tự cuối (0x0000)
Phần tử 8.3 thườngREADBI∼1.C
Chương 4: Quản lý hệ thống file
4. Hệ thống FAT
4.3 Thư mục gốc
Giải mã ROOT 3
File: ReadBiosSector.c
4Chương 4: Quản lý hệ thống file
Kết luận
① Hệ thống file
① Khái niệm file
② Cấu trúc thư mục
② Cài đặt hệ thống file
① Cài đặt thư mục
② Các phương pháp phân phối vùng lưu trữ
③ Quản lý vùng lưu trữ tự do
③ Tổ chức thông tin trên đĩa từ
① Cấu trúc vật lý của đĩa
② Cấu trúc logic của đĩa
④ Hệ thống FAT
① Boot sector
② Bảng FAT (File Allocation Table)
③ Thư mục gốc
Các file đính kèm theo tài liệu này:
- bai_giang_he_dieu_hanh_chuong_4_quan_ly_he_thong_file_do_quo.pdf