Bài giảng Nguyên lý hệ điều hành - Chương 4: Quản lý hệ thống file - Phạm Đăng Hải (Bản Mới)

pdf 245 trang Gia Huy 16/05/2022 2980
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nguyên lý hệ điều hành - Chương 4: Quản lý hệ thống file - Phạm Đăng Hải (Bản Mới)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_nguyen_ly_he_dieu_hanh_chuong_4_quan_ly_he_thong_f.pdf

Nội dung text: Bài giảng Nguyên lý hệ điều hành - Chương 4: Quản lý hệ thống file - Phạm Đăng Hải (Bản Mới)

  1. Hệ điều hành NGUYÊN LÝ HỆ ĐIỀU HÀNH Phạm Đăng Hải haipd@soict.hust.edu.vn Bộ môn Khoa học Máy tính Viện Công nghệ Thông tin & Truyền Thông Ngày 17 tháng 4 năm 2019 1 / 108
  2. Chương 4: Quản lý hệ thống file Chương 4 Quản lý hệ thống file 2 / 108
  3. Hệ thống file lớn ⇒ Quản lý như thế nào? Các thuộc tính của file, thao tác cần phải cung cấp? Lưu trữ và truy xuất dữ liệu trên thiết bị lưu trữ như thế nào? Phương pháp cung cấp không gian lưu trữ, quản lý vùng tự do ⇒Khó khăn phải trong suốt với người dùng (tính thuận tiện) Các file dữ liệu /chương trình có thể sử dụng chung Đảm bảo tính toàn vẹn dữ liệu và loại bỏ truy nhập bất hợp lệ? Dữ liệu không lưu trữ tập trung ⇒ hệ thống file phân tán Truy nhập file từ xa, đảm bảo tính toàn vẹn Chương 4: Quản lý hệ thống file Giới thiệu Bộ nhớ ngoài (đĩa từ, băng từ, đĩa quang, ): dung lượng lớn và cho phép lưu trữ lâu dài Được người dùng sử dụng lưu trữ dữ liệu và chương trình Dữ liệu và chương trình được lưu dưới dạng file (tập tin/tệp) ⇒ Tạo nên hệ thống file Hệ thống file gồm 2 phần riêng biệt Các file: Chứa dữ liệu/chương trình của hệ thống/người dùng Cấu trúc thư mục : Cung cấp các thông tin về file 3 / 108
  4. Lưu trữ và truy xuất dữ liệu trên thiết bị lưu trữ như thế nào? Phương pháp cung cấp không gian lưu trữ, quản lý vùng tự do ⇒Khó khăn phải trong suốt với người dùng (tính thuận tiện) Các file dữ liệu /chương trình có thể sử dụng chung Đảm bảo tính toàn vẹn dữ liệu và loại bỏ truy nhập bất hợp lệ? Dữ liệu không lưu trữ tập trung ⇒ hệ thống file phân tán Truy nhập file từ xa, đảm bảo tính toàn vẹn Chương 4: Quản lý hệ thống file Giới thiệu Bộ nhớ ngoài (đĩa từ, băng từ, đĩa quang, ): dung lượng lớn và cho phép lưu trữ lâu dài Được người dùng sử dụng lưu trữ dữ liệu và chương trình Dữ liệu và chương trình được lưu dưới dạng file (tập tin/tệp) ⇒ Tạo nên hệ thống file Hệ thống file gồm 2 phần riêng biệt Các file: Chứa dữ liệu/chương trình của hệ thống/người dùng Cấu trúc thư mục : Cung cấp các thông tin về file Hệ thống file lớn ⇒ Quản lý như thế nào? Các thuộc tính của file, thao tác cần phải cung cấp? 3 / 108
  5. Các file dữ liệu /chương trình có thể sử dụng chung Đảm bảo tính toàn vẹn dữ liệu và loại bỏ truy nhập bất hợp lệ? Dữ liệu không lưu trữ tập trung ⇒ hệ thống file phân tán Truy nhập file từ xa, đảm bảo tính toàn vẹn Chương 4: Quản lý hệ thống file Giới thiệu Bộ nhớ ngoài (đĩa từ, băng từ, đĩa quang, ): dung lượng lớn và cho phép lưu trữ lâu dài Được người dùng sử dụng lưu trữ dữ liệu và chương trình Dữ liệu và chương trình được lưu dưới dạng file (tập tin/tệp) ⇒ Tạo nên hệ thống file Hệ thống file gồm 2 phần riêng biệt Các file: Chứa dữ liệu/chương trình của hệ thống/người dùng Cấu trúc thư mục : Cung cấp các thông tin về file Hệ thống file lớn ⇒ Quản lý như thế nào? Các thuộc tính của file, thao tác cần phải cung cấp? Lưu trữ và truy xuất dữ liệu trên thiết bị lưu trữ như thế nào? Phương pháp cung cấp không gian lưu trữ, quản lý vùng tự do ⇒Khó khăn phải trong suốt với người dùng (tính thuận tiện) 3 / 108
  6. Dữ liệu không lưu trữ tập trung ⇒ hệ thống file phân tán Truy nhập file từ xa, đảm bảo tính toàn vẹn Chương 4: Quản lý hệ thống file Giới thiệu Bộ nhớ ngoài (đĩa từ, băng từ, đĩa quang, ): dung lượng lớn và cho phép lưu trữ lâu dài Được người dùng sử dụng lưu trữ dữ liệu và chương trình Dữ liệu và chương trình được lưu dưới dạng file (tập tin/tệp) ⇒ Tạo nên hệ thống file Hệ thống file gồm 2 phần riêng biệt Các file: Chứa dữ liệu/chương trình của hệ thống/người dùng Cấu trúc thư mục : Cung cấp các thông tin về file Hệ thống file lớn ⇒ Quản lý như thế nào? Các thuộc tính của file, thao tác cần phải cung cấp? Lưu trữ và truy xuất dữ liệu trên thiết bị lưu trữ như thế nào? Phương pháp cung cấp không gian lưu trữ, quản lý vùng tự do ⇒Khó khăn phải trong suốt với người dùng (tính thuận tiện) Các file dữ liệu /chương trình có thể sử dụng chung Đảm bảo tính toàn vẹn dữ liệu và loại bỏ truy nhập bất hợp lệ? 3 / 108
  7. Chương 4: Quản lý hệ thống file Giới thiệu Bộ nhớ ngoài (đĩa từ, băng từ, đĩa quang, ): dung lượng lớn và cho phép lưu trữ lâu dài Được người dùng sử dụng lưu trữ dữ liệu và chương trình Dữ liệu và chương trình được lưu dưới dạng file (tập tin/tệp) ⇒ Tạo nên hệ thống file Hệ thống file gồm 2 phần riêng biệt Các file: Chứa dữ liệu/chương trình của hệ thống/người dùng Cấu trúc thư mục : Cung cấp các thông tin về file Hệ thống file lớn ⇒ Quản lý như thế nào? Các thuộc tính của file, thao tác cần phải cung cấp? Lưu trữ và truy xuất dữ liệu trên thiết bị lưu trữ như thế nào? Phương pháp cung cấp không gian lưu trữ, quản lý vùng tự do ⇒Khó khăn phải trong suốt với người dùng (tính thuận tiện) Các file dữ liệu /chương trình có thể sử dụng chung Đảm bảo tính toàn vẹn dữ liệu và loại bỏ truy nhập bất hợp lệ? Dữ liệu không lưu trữ tập trung ⇒ hệ thống file phân tán Truy nhập file từ xa, đảm bảo tính toàn vẹn 3 / 108
  8. Chương 4: Quản lý hệ thống file Nội dung chính 1 Hệ thống file 2 Cài đặt hệ thống file 3 Tổ chức thông tin trên đĩa từ 4 Hệ thống FAT 4 / 108
  9. Chương 4: Quản lý hệ thống file 1. Hệ thống file Nội dung chính 1 Hệ thống file 2 Cài đặt hệ thống file 3 Tổ chức thông tin trên đĩa từ 4 Hệ thống FAT 5 / 108
  10. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file 1 Hệ thống file Khái niệm file Cấu trúc thư mục 6 / 108
  11. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Giới thiệu Thông tin lưu trữ trên nhiều phương tiện/thiết bị lưu trữ khác nhau Ví dụ: Đĩa từ, băng từ, đĩa quang Thiết bị lưu trữ được mô hình như một mảng của các khối nhớ File là tập thông tin ghi trên thiết bị lưu trữ. File là đơn vị lưu trữ của hệ điều hành trên bộ nhớ ngoài File bao gồm dãy các bits, bytes, dòng, bản ghi, mang ý nghĩa được định nghĩa bởi người tạo ra Cấu trúc của file được định nghĩa theo loại file File văn bản: Chuỗi ký tự tổ chức thành dòng File đối tượng: Bytes được tổ chức thành khối để chương trình liên kết (linker) hiểu được File thực thi: Chuỗi các mã lệnh có thể thực hiện trong bộ nhớ 7 / 108
  12. Định danh (Identifier): Thẻ xác định duy nhất một file Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó Kích thước (Size): Kích thước hiện thời/ tối đa của file Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi Thời gian (Time): Thời điểm tạo, sửa đổi, sử dụng cuối Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c 8 / 108
  13. Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó Kích thước (Size): Kích thước hiện thời/ tối đa của file Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi Thời gian (Time): Thời điểm tạo, sửa đổi, sử dụng cuối Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c Định danh (Identifier): Thẻ xác định duy nhất một file 8 / 108
  14. Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó Kích thước (Size): Kích thước hiện thời/ tối đa của file Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi Thời gian (Time): Thời điểm tạo, sửa đổi, sử dụng cuối Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c Định danh (Identifier): Thẻ xác định duy nhất một file Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor 8 / 108
  15. Kích thước (Size): Kích thước hiện thời/ tối đa của file Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi Thời gian (Time): Thời điểm tạo, sửa đổi, sử dụng cuối Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c Định danh (Identifier): Thẻ xác định duy nhất một file Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó 8 / 108
  16. Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi Thời gian (Time): Thời điểm tạo, sửa đổi, sử dụng cuối Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c Định danh (Identifier): Thẻ xác định duy nhất một file Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó Kích thước (Size): Kích thước hiện thời/ tối đa của file 8 / 108
  17. Thời gian (Time): Thời điểm tạo, sửa đổi, sử dụng cuối Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c Định danh (Identifier): Thẻ xác định duy nhất một file Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó Kích thước (Size): Kích thước hiện thời/ tối đa của file Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi 8 / 108
  18. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file Tên file (Name): Chuỗi ký tự (hello.c) Thông tin lưu dưới dạng người dùng có thể đọc được Có thể phân biệt chữ hoa/chữ thường Đảm bảo tính độc lập của file với tiến trình, người dùng A tạo file hello.c bằng notepad trên hệ Windows B dùng emacs trên linux sửa lại file bởi xác định tên hello.c Định danh (Identifier): Thẻ xác định duy nhất một file Kiểu (Type): Dùng cho hệ thống hỗ trợ nhiều kiểu file Có thể xác định kiểu file dựa trên một phần của tên file Ví dụ: .exe, .com/ .doc, .txt/ .c, .jav, .pas/ .pdf, .jpg, Dựa trên kiểu, HĐH sẽ thao tác trên tập tin phù hợp Thực hiện file thực thi mà file nguồn đã sửa ⇒ Dịch lại Nháy đúp vào một file văn bản (*.doc)⇒ Gọi word processor Vị trí (Position): Trỏ tới thiết bị và vị trí của file trên đó Kích thước (Size): Kích thước hiện thời/ tối đa của file Bảo vệ (Protection): Điều khiển truy nhập: Ai có thể đọc/ghi Thời gian ( ): Thời điểmTime tạo, sửa đổi, sử dụng cuối 8 / 108
  19. Các bản ghi file được lưu giữ trong Thư mục file Kích thước có thể đạt tới Megabytes Thường được lữu trữ trên thiết bị nhớ ngoài Được đưa từng phần vào bộ nhớ khi cần thiết Thư mục file hello.c hdh.pdf vị trí vị trí Bản ghi file hello.c hdh.pdf Không gian lưu trữ Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file (tiếp tục) Thuộc tính file được lưu trong cấu trúc dữ liệu: Bản ghi file Có thể chỉ chứa tên file và định danh file; định danh file xác định các thông tin còn lại Kích thước từ vài bytes lên tới kilobytes 9 / 108
  20. Thư mục file hello.c hdh.pdf vị trí vị trí Bản ghi file hello.c hdh.pdf Không gian lưu trữ Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file (tiếp tục) Thuộc tính file được lưu trong cấu trúc dữ liệu: Bản ghi file Có thể chỉ chứa tên file và định danh file; định danh file xác định các thông tin còn lại Kích thước từ vài bytes lên tới kilobytes Các bản ghi file được lưu giữ trong Thư mục file Kích thước có thể đạt tới Megabytes Thường được lữu trữ trên thiết bị nhớ ngoài Được đưa từng phần vào bộ nhớ khi cần thiết 9 / 108
  21. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thuộc tính file (tiếp tục) Thuộc tính file được lưu trong cấu trúc dữ liệu: Bản ghi file Có thể chỉ chứa tên file và định danh file; định danh file xác định các thông tin còn lại Kích thước từ vài bytes lên tới kilobytes Các bản ghi file được lưu giữ trong Thư mục file Kích thước có thể đạt tới Megabytes Thường được lữu trữ trên thiết bị nhớ ngoài Được đưa từng phần vào bộ nhớ khi cần thiết Thư mục file hello.c hdh.pdf vị trí vị trí Bản ghi file hello.c hdh.pdf Không gian lưu trữ 9 / 108
  22. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản 1 Tạo file (Create) 2 Ghi file (Write) 3 Đọc file (Read) 4 Thay đổi vị trí trong file (Seek) 5 Xóa file (Delete) 6 Thu gọn file (Truncate) 7 10 / 108
  23. SoNT.dat vị trí 19/04/2011 Tìm vùng tự do trong không gian lưu trữ của hệ thống file Cung cấp vùng trống như thế nào? Tạo một phần tử mới trong thư mục file Lưu tên file, vị trí của file và các thông tin khác Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Tạo file Thư mục file Create(SoNT.dat) hello.c vị trí hello.c Không gian lưu trữ 11 / 108
  24. SoNT.dat vị trí 19/04/2011 Tạo một phần tử mới trong thư mục file Lưu tên file, vị trí của file và các thông tin khác Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Tạo file Thư mục file Create(SoNT.dat) hello.c vị trí hello.c Không gian lưu trữ Tìm vùng tự do trong không gian lưu trữ của hệ thống file Cung cấp vùng trống như thế nào? 11 / 108
  25. SoNT.dat vị trí 19/04/2011 Lưu tên file, vị trí của file và các thông tin khác Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Tạo file Thư mục file Create(SoNT.dat) hello.c vị trí hello.c Không gian lưu trữ Tìm vùng tự do trong không gian lưu trữ của hệ thống file Cung cấp vùng trống như thế nào? Tạo một phần tử mới trong thư mục file 11 / 108
  26. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Tạo file Thư mục file Create(SoNT.dat) hello.c SoNT.dat vị trí vị trí 19/04/2011 hello.c Không gian lưu trữ Tìm vùng tự do trong không gian lưu trữ của hệ thống file Cung cấp vùng trống như thế nào? Tạo một phần tử mới trong thư mục file Lưu tên file, vị trí của file và các thông tin khác 11 / 108
  27. SoNT.dat Write(SoNT.dat, 19) vị trí Write(SoNT.dat, 23) 19/04/2011 Write(SoNT.dat, 29) wpwpwpwp 17 19 23 29 Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 hello.c 2 3 5 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi 12 / 108
  28. Write(SoNT.dat, 19) Write(SoNT.dat, 23) Write(SoNT.dat, 29) wpwpwpwp 17 19 23 29 Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 hello.c 2 3 5 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi Dùng tên file, tìm kiếm file trong thư mục file 12 / 108
  29. SoNT.dat Write(SoNT.dat, 19) vị trí Write(SoNT.dat, 23) 19/04/2011 Write(SoNT.dat, 29) wpwpwpwp 17 19 23 29 Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 hello.c 2 3 5 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ 12 / 108
  30. SoNT.dat Write(SoNT.dat, 19) vị trí Write(SoNT.dat, 23) 19/04/2011 Write(SoNT.dat, 29) wpwpwp 19 23 29 Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 wp 2 3 5 hello.c 17 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi 12 / 108
  31. SoNT.dat vị trí Write(SoNT.dat, 23) 19/04/2011 Write(SoNT.dat, 29) wp wpwp 23 29 Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf Write(SoNT.dat, 19) vị trí vị trí 19/04/2011 wp 2 3 5 hello.c 17 19 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi 12 / 108
  32. SoNT.dat vị trí 19/04/2011 Write(SoNT.dat, 29) wpwp wp 29 Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf Write(SoNT.dat, 19) vị trí vị trí Write(SoNT.dat, 23) 19/04/2011 wp 2 3 5 hello.c 17 19 23 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi 12 / 108
  33. SoNT.dat vị trí 19/04/2011 wpwpwp Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Ghi file Thư mục file Write(SoNT.dat, 17) hello.c SoNT.dat kiemtra.pdf Write(SoNT.dat, 19) vị trí vị trí Write(SoNT.dat, 23) 19/04/2011 Write(SoNT.dat, 29) wp 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Write() yêu cầu tên file và dữ liệu được ghi Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ ghi (write pointer) để chỉ ra vị trí ghi Con trỏ ghi thay đổi sau mỗi thao tác ghi 12 / 108
  34. SoNT.dat vị trí 19/04/2011 BufBuf : :19 172329 rprprprp Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ 13 / 108
  35. BufBuf : :19 172329 rprprprp Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file 13 / 108
  36. SoNT.dat vị trí 19/04/2011 BufBuf : :19 172329 rprprprp Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ 13 / 108
  37. SoNT.dat vị trí 19/04/2011 BufBuf : :19 2329 rprprp Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 Buf : 17 rp 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu 13 / 108
  38. SoNT.dat vị trí 19/04/2011 Buf : 172329 rp rprp Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 Buf :19 rp 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu 13 / 108
  39. SoNT.dat vị trí 19/04/2011 BufBuf : :19 1729 rprp rp Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 Buf : 23 rp 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu 13 / 108
  40. SoNT.dat vị trí 19/04/2011 BufBuf : :19 1723 rprprp Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 Buf : 29 rp 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu 13 / 108
  41. SoNT.dat vị trí 19/04/2011 BufBuf : :19 172329 rprprprp Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Đọc file Thư mục file Buf =Read(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Lời gọi hệ thống Read() yêu cầu tên file và vùng đệm ghi KQ Dùng tên file, tìm kiếm file trong thư mục file Dựa vào trường vị trí, tìm vị trí của file trên thiết bị lưu trữ Hệ thống lưu con trỏ đọc (read pointer) chỉ ra vị trí được đọc Con trỏ đọc thay đổi sau mỗi thao tác đọc dữ liệu Dùng một con trỏ cho cả thao tác đọc và ghi: con trỏ file 13 / 108
  42. SoNT.dat vị trí 19/04/2011 Dùng tên file, tìm kiếm file trong thư mục file Vùng nhớ được xác định bởi 2 trường vị trí và kích thước được giải phóng để có thể sử dụng lại bởi các file khác Xóa phần tử tương ứng trong thư mục file Xóa logic / xóa vật lý Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Xóa file Thư mục file Delete(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ 14 / 108
  43. Vùng nhớ được xác định bởi 2 trường vị trí và kích thước được giải phóng để có thể sử dụng lại bởi các file khác Xóa phần tử tương ứng trong thư mục file Xóa logic / xóa vật lý Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Xóa file Thư mục file Delete(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Dùng tên file, tìm kiếm file trong thư mục file 14 / 108
  44. SoNT.dat vị trí 19/04/2011 Xóa phần tử tương ứng trong thư mục file Xóa logic / xóa vật lý Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Xóa file Thư mục file Delete(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Dùng tên file, tìm kiếm file trong thư mục file Vùng nhớ được xác định bởi 2 trường vị trí và kích thước được giải phóng để có thể sử dụng lại bởi các file khác 14 / 108
  45. SoNT.dat vị trí 19/04/2011 Xóa phần tử tương ứng trong thư mục file Xóa logic / xóa vật lý Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Xóa file Thư mục file Delete(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Dùng tên file, tìm kiếm file trong thư mục file Vùng nhớ được xác định bởi 2 trường vị trí và kích thước được giải phóng để có thể sử dụng lại bởi các file khác 14 / 108
  46. SoNT.dat vị trí 19/04/2011 Xóa logic / xóa vật lý Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Xóa file Thư mục file Delete(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Dùng tên file, tìm kiếm file trong thư mục file Vùng nhớ được xác định bởi 2 trường vị trí và kích thước được giải phóng để có thể sử dụng lại bởi các file khác Xóa phần tử tương ứng trong thư mục file 14 / 108
  47. SoNT.dat vị trí 19/04/2011 Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Xóa file Thư mục file Delete(SoNT.dat) hello.c SoNT.dat kiemtra.pdf vị trí vị trí 19/04/2011 2 3 5 hello.c 17 19 23 29 Không gian lưu trữ Dùng tên file, tìm kiếm file trong thư mục file Vùng nhớ được xác định bởi 2 trường vị trí và kích thước được giải phóng để có thể sử dụng lại bởi các file khác Xóa phần tử tương ứng trong thư mục file Xóa logic / xóa vật lý 14 / 108
  48. Thu gọn file Được sử dụng khi người sử dụng muốn xóa nội dung file nhưng vẫn giữ nguyên các thuộc tính Tìm kiếm file trong thư mục file Đặt kích thước file về 0 Giải phóng vùng nhớ dành cho file Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Thay đổi vị trí trong file và thu gọn file Thay đổi vị trí trong file Duyệt thư mục để tìm phần tử tương ứng Con trỏ file được thay bằng giá trị thích hợp Thao tác này không yêu cầu một hoạt động vào/ra 15 / 108
  49. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Thay đổi vị trí trong file và thu gọn file Thay đổi vị trí trong file Duyệt thư mục để tìm phần tử tương ứng Con trỏ file được thay bằng giá trị thích hợp Thao tác này không yêu cầu một hoạt động vào/ra Thu gọn file Được sử dụng khi người sử dụng muốn xóa nội dung file nhưng vẫn giữ nguyên các thuộc tính Tìm kiếm file trong thư mục file Đặt kích thước file về 0 Giải phóng vùng nhớ dành cho file 15 / 108
  50. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản : Một số thao tác khác Ngoài các thao tác cơ bản, còn tồn tại nhiều thao tác khác Thêm dữ liệu vào cuối file (append) Lấy/đặt thông tin thuộc tính file Đổi tên file Có thể được đảm bảo thông qua các thao tác cơ bản. Ví dụ copy file Tạo file mới Đọc dữ liệu từ file cũ Ghi ra file mới 16 / 108
  51. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.1 Khái niệm file Các thao tác cơ bản: Đóng mở file Các thao tác file phải duyệt thư mục file ⇒ Lãng phí thời gian Để giải quyết, các tiến trình phải thực hiện mở file (open) trước khi thao tác với file Thao tác mở file: tìm kiếm file trong thư mục file Chép phần tử tương ứng vào bảng file mở Chứa thông tin về các file đang được mở Trả lại con trỏ của phần tử tương ứng trong bản file mở Khi có yêu cầu, HĐH tìm kiếm trong bảng file mở Dùng con trỏ trả về của thao tác mở file Khi không sử dụng file nữa cần phải đóng (close) file. HĐH sẽ loại bỏ phần tử tương ứng trong bảng file mở Thao tác đóng/mỏ file trong môi trường đa người dùng Dùng 2 loại bảng file mở: Cho từng tiến trình và cho hệ thống Ghi lại số tiến trình đang mở file (File Open Counter) Tăng/Giảm bộ đếm khi có tiến trình mở/đóng file Xóa p/tử tương ứng trong bảng file mở mức hệ thống khi bộ đếm bằng không 17 / 108
  52. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.2 Cấu trúc thư mục 1 Hệ thống file Khái niệm file Cấu trúc thư mục 18 / 108
  53. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.2 Cấu trúc thư mục Các phân vùng (Partition) Thư mục Đĩa được chia thành nhiều phân vùng Files Partitions, Minidisks, Volumes Phân vùng A Mỗi phân vùng được xử lý như vùng lưu trữ phân biệt Thư mục Disk 1 Có thể chứa một HĐH riêng Files Phân vùng B 19 / 108
  54. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.2 Cấu trúc thư mục Các phân vùng (Partition) Thư mục Kết hợp một vài đĩa thành một cấu trúc logic lớn Disk 2 Người dùng chỉ quan tâm tới cấu trúc file và thư mục logic Không quan tâm tới cách phân phối vật lý Files không gian đĩa cho files Phân vùng C Disk 3 20 / 108
  55. Chương 4: Quản lý hệ thống file 1. Hệ thống file 1.2 Cấu trúc thư mục Các thao tác với thư mục Mỗi một phân khu lưu các thông tin về file trong nó Các thông tin file được lưu trữ trong thư mục thiết bị - thư mục Thư mục là bảng chuyển cho phép ánh xạ từ một tên (file) thành một phần tử trong thư mục Thư mục có thể được cài đặt bằng nhiều cách khác nhau Yêu cầu các thao tác chèn, tạo mới, xóa, duyệt danh sách Các thao tác Tìm kiếm file: Tìm phần tử ứng với một file xác định Tạo file: Tạo file mới cần tạo phần tử trong thư mục Xóa file: Khi xóa file, xóa phần tử tương ứng trong thư mục Liệt kê thư mục: Liệt kê files và nội dung phần tử tương ứng trong thư mục Đổi tên file: Thay đổi tên file, vị trí trong cấu trúc thư mục 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ừ) 21 / 108
  56. 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 Thư mục hdh.pdf data.txt test.c hello.c hello.exe Files Cấu trúc đơn giản nhất, các file nằm trong cùng một thư mục Số người dùng và số file lớn, khả năng trùng tên file cao Mỗi người dùng một thư mục riêng 22 / 108
  57. Khi thêm một người dùng Hệ thống tạo phần tử mới trong Master file directory Tạo ra User file directory Giả quyết v/đề trùng tên; Hiệu quả khi người dùng độc lập Khó khăn khi muốn dùng chung file 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 hai mức 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 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 23 / 108
  58. Giả quyết v/đề trùng tên; Hiệu quả khi người dùng độc lập Khó khăn khi muốn dùng chung file 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 hai mức 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 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 Khi thêm một người dùng Hệ thống tạo phần tử mới trong Master file directory Tạo ra User file directory 23 / 108
  59. Khó khăn khi muốn dùng chung file 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 hai mức 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 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 Khi thêm một người dùng Hệ thống tạo phần tử mới trong Master file directory Tạo ra User file directory Giả quyết v/đề trùng tên; Hiệu quả khi người dùng độc lập 23 / 108
  60. 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 hai mức 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 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 Khi thêm một người dùng Hệ thống tạo phần tử mới trong Master file directory Tạo ra User file directory Giả quyết v/đề trùng tên; Hiệu quả khi người dùng độc lập 23 / 108Khó khăn khi muốn dùng chung file
  61. 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 cấu trúc cây Tồn tại một đường dẫn (tương đối/tuyệt đối) đến một file Thư mục con là file được xử lý đặc biệt (bit đánh dấu) Các thao tác tạo/xóa/duyệt t/hiện trên thư mục hiện thời Xóa⇒ Xóa thư hết mục các con cây con của nó 24 / 108
  62. 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 dùng chung Người dùng có thể link đến một file của người dùng khác Khi duyệt thư mục (backup) file có thể duyệt nhiều lần Xóa file: liênngười kết/ nội tạo dung file /liên ( kết cuối ) 25 / 108
  63. Chương 4: Quản lý hệ thống file 2. Cài đặt hệ thống file Nội dung chính 1 Hệ thống file 2 Cài đặt hệ thống file 3 Tổ chức thông tin trên đĩa từ 4 Hệ thống FAT 26 / 108
  64. 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 2 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 27 / 108
  65. 2 Bảng băm - Bảng băm với danh sách tuyến tính Giảm thời gian duyệt thư mục Đòi hỏi có một hàm băm hiệu quả PLen(Name) ASCII (Name[i]) h(Name) = i=1 Table_Size 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 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 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 1 Danh sách tuyến tính với con trỏ tới các khối dữ liệu Đơn giản cho lập trình Tốn thời gian khi thực hiện các thao tác với thư mục Phải duyệt toàn bộ danh sách ⇐ Dùng cây nhị phân? 28 / 108
  66. 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 1 Danh sách tuyến tính với con trỏ tới các khối dữ liệu Đơn giản cho lập trình Tốn thời gian khi thực hiện các thao tác với thư mục Phải duyệt toàn bộ danh sách ⇐ Dùng cây nhị phân? 2 Bảng băm - Bảng băm với danh sách tuyến tính Giảm thời gian duyệt thư mục Đòi hỏi có một hàm băm hiệu quả PLen(Name) ASCII (Name[i]) h(Name) = i=1 Table_Size 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 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 28 / 108
  67. 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 hello.c hdh.pdf bt.c de1.pdf 29 / 108
  68. 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 30 / 108
  69. 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 30 / 108
  70. 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ữ 2 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 31 / 108
  71. 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ữ Các phương pháp Mục đích Tăng hiệu năng truy nhập tuần tự Dễ dàng truy nhập ngẫu nhiên tới file Dễ dàng quản lý file Phương pháp 1 Phân phối liên tục (Continuous Allocation) 2 Phân phối liên kết (Linked List Allocation) 3 Phân phối chỉ mục (Indexed Allocation) 32 / 108
  72. File Pos Size file-1 15 4 file-2 4 5 file-3 11 3 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 file-2 file-3 file-1 block 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 Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau 33 / 108
  73. file-2 file-3 file-1 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 Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau File Pos Size file-1 15 4 file-2 4 5 file-3 11 3 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 block 33 / 108
  74. file-2 file-3 block 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 Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau File Pos Size file-1 15 4 file-2 4 5 file-3 11 3 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 file-1 33 / 108
  75. file-3 block 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 Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau File Pos Size file-1 15 4 file-2 4 5 file-3 11 3 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 file-2 file-1 33 / 108
  76. block 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 Nguyên tắc: File được phân phối các khối nhớ liên tiếp nhau File Pos Size file-1 15 4 file-2 4 5 file-3 11 3 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 file-2 file-3 file-1 33 / 108
  77. 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 (tiếp tục) 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 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 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ựa chọn vùng trống khi có yêu cầu lưu trữ? Các chiến lược First-Fit /Worst Fit /Best Fit Hiện tượng phân đoạn ngoài Khó khăn khi muốn tăng kích thước của file 34 / 108
  78. File Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 35 / 108
  79. File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 35 / 108
  80. File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 35 / 108
  81. File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 35 / 108
  82. File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 35 / 108
  83. File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 35 / 108
  84. File def gồm 5 khối: 5, 6, 8, 9, 11 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 35 / 108
  85. 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 kết 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 Pos End abc 12 3 def 5 11 Directory 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 3 -1 0 6 8 14 9 11 7 -1 10 0 15 2 0 0 File abc gồm 7 khối: 12, 10, 7, 14, 15, 2, 3 File def gồm 5 khối: 5, 6, 8, 9, 11 35 / 108
  86. 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 kết(tiếp tục) Chỉ áp dụng hiệu quả cho các file truy nhập tuần tự Để truy nhập khối thứ n, phải duyệt qua n − 1 khối trước đó Các khối không liên tục, phải định vị lại đầu từ Tốc độ truy nhập chậm Các khối trong file được liên kết bởi con trỏ. Nếu con trỏ lỗi? Bị mất dư liệu do mất liên kết tới khối Liên kết tới khối không có dữ liệu hoặc khối của file khác Giải quyết: Sử dụng nhiều con trỏ trong mỗi khối ⇒Tốn nhớ Áp dụng: FAT Được sử dụng như danh sách liên kết Gồm nhiều phần tử, mỗi phần tử ứng với một khối Mỗi phần tử trong FAT, chứa khối tiếp theo của file Khối cuối cùng có giá trị đặc biệt (FFFF ) Khối bị hỏng có giá trị (FFF7) Khối chưa sử dụng có giá trị (0) Trường vị trí trong bản ghi file, chứa khối đầu tiên của file 36 / 108
  87. File abc gồm 6 khối:2 2, 15, 4, 8, 9, 11 10 15 13 File def gồm 2 khối:4 10, 13 -1 8 9 -1 11 -1 -1 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 chỉ mục 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 File Index block abc 5 def 12 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 37 / 108
  88. File abc gồm 6 khối: 2, 15, 4, 8, 9, 11 10 13 File def gồm 2 khối: 10, 13 -1 -1 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 chỉ mục 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 File Index block abc 5 def 12 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 15 4 8 9 11 -1 -1 37 / 108
  89. File abc gồm 6 khối: 2, 15, 4, 8, 9, 11 10 13 File def gồm 2 khối: 10, 13 -1 -1 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 chỉ mục 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 File Index block abc 5 def 12 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 15 4 8 9 11 -1 -1 37 / 108
  90. 2 10 15 13 File def gồm 2 khối:4 10, 13 -1 8 9 -1 11 -1 -1 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 chỉ mục 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 File Index block abc 5 def 12 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 File abc gồm 6 khối: 2, 15, 4, 8, 9, 11 37 / 108
  91. 2 15 File def gồm 2 khối:4 10, 13 8 9 11 -1 -1 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 chỉ mục 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 File Index block abc 5 def 12 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 File abc gồm 6 khối: 2, 15, 4, 8, 9, 11 10 13 -1 -1 37 / 108
  92. 2 10 15 13 4 -1 8 9 -1 11 -1 -1 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 chỉ mục 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 File Index block abc 5 def 12 Directory 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 File abc gồm 6 khối: 2, 15, 4, 8, 9, 11 File def gồm 2 khối: 10, 13 37 / 108
  93. 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 Phân phối chỉ mục (tiếp tục) Phần tử thứ i của khối chỉ mục trỏ tới khối thứ i của file Đọc khối i dùng con trỏ được khi tại p/tử i của khối chỉ mục Tạo file, các phần tử của khối chỉ mục có giá trị null (-1) Cần thêm khối i, địa chỉ khối được cấp, được đưa vào p/tử i Nhận xét Không gây hiện tượng phân đoạn ngoài Cho phép truy nhập trực tiếp Cần khối chỉ mục: file có k/thước nhỏ, vẫn cần 2 khối Khối cho dữ liệu 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ữ. Sơ đồ liên kết Liên kết các khối chỉ mục lại 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 Index nhiều mức Dùng một khối chỉ mục trỏ tới các khối chỉ mục khác 38 / 108
  94. 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ữ Sơ đồ kết hợp (UNIX) 12 direct block trỏ tới data block Single indirect block chứa địa chỉ khối direct block Double indirect block chứa địa chỉ khối Single indirect block Triple indirect block chứa địa chỉ khối Double indirect 39 / 108
  95. 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 2 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 40 / 108
  96. 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 1 Bit vector Mỗi block thể hiện bởi 1 bit (1: free; 0: allocated) Dễ dàng tìm ra n khối nhớ liên tục Cần có lệnh cho phép làm việc với bit 2 Danh sách liên kết (link list) Lưu giữ con trỏ tới khối đĩa trống đầu tiên Khối nhớ này chứa con trỏ trở tới khối đĩa trống tiếp theo Không hiệu quả khi duyệt danh sách 3 Nhóm (Grouping) Lưu trữ địa chỉ n khối tự do trong khối tự do đầu tiên n − 1 khối đầu tự do, khối n chứa đ/chỉ của n khối tự do tiếp Ưu điểm: Tìm vùng nhớ tự do nhanh chóng 4 Bộ đếm (Counting) Do các khối nhớ liên tục được c/cấp và g/phóng đồng thời 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 Hiệu quả khi bộ đếm lớn hơn 1 41 / 108
  97. Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ Nội dung chính 1 Hệ thống file 2 Cài đặt hệ thống file 3 Tổ chức thông tin trên đĩa từ 4 Hệ thống FAT 42 / 108
  98. 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 3 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 43 / 108
  99. 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 1 Đĩa mềm 5 4 44 / 108
  100. 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 1 Đĩa mềm 3 2 45 / 108
  101. 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 Rãnh Mặt 0 Sector Mặt 1 Mặt đĩa. Mỗi mặt đĩa được đọc bởi một đầu đọc (Header) Các đầu từ được đánh số 0, 1 Rãnh đĩa (Track): Các vòng tròn đồng tâm Được đánh số 0, 1, từ ngoài vào trong Cung từ (Sector) 1, 2,Được đánh số 46 / 108
  102. Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #0123456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa 47 / 108
  103. Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #0123456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector 47 / 108
  104. Sector → #0123456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa 47 / 108
  105. Sector → #0123456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa 47 / 108
  106. Sector → #123456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #0 47 / 108
  107. Sector → #023456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #1 47 / 108
  108. Sector → #013456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #2 47 / 108
  109. Sector → #012456716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #3 47 / 108
  110. Sector → #012356716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #4 47 / 108
  111. Sector → #012346716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #5 47 / 108
  112. Sector → #012345716 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #6 47 / 108
  113. Sector → #012345616 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #7 47 / 108
  114. Sector → #0123456716 #0 #1 #2 Sector#8 → #9101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #8 47 / 108
  115. Sector → #0123456716 #0 #1 #2 Sector#8 → #8101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #9 47 / 108
  116. Sector → #0123456716 #0 #1 #2 Sector#8 → #891112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #10 47 / 108
  117. Sector → #0123456716 #0 #1 #2 Sector#8 → #891012131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #11 47 / 108
  118. Sector → #0123456716 #0 #1 #2 Sector#8 → #891011131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #12 47 / 108
  119. Sector → #0123456716 #0 #1 #2 Sector#8 → #891011121415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #13 47 / 108
  120. Sector → #0123456716 #0 #1 #2 Sector#8 → #891011121315 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #14 47 / 108
  121. Sector → #0123456716 #0 #1 #2 Sector#8 → #891011121314 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #15 47 / 108
  122. Sector → #01234567 #0 #1 #2 Sector#8 → #89101112131415 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 Định vị thông tin trên đĩa mềm Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa Sector → #16 47 / 108
  123. Sector → #0123456716 Sector → #89101112131415 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 Sector đơn vị thông tin hệ thống dùng làm việc với đĩa Sector xác định qua tọa độ 3 chiều: Header, Track, Sector Ví dụ: Boot Sector của đĩa mềm: Sector Sector được xác định qua số hiệu sector (tọa độ 1 chiều) Vị trí tương đối so với sector đầu tiên của đĩa #0 #1 #2 #8 #9 Mô hình thiếtDisk bị lưu trữ ( ) 47 / 108
  124. 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 48 / 108
  125. 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 / 108
  126. 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 Gồm nhiều mặt đĩa, được đánh số từ 0,1 Các rãnh cùng bán kính tạo nên cylinder, được đánh số từ 0, 1, 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 Tọa độ 3 chiều (H, C, S) Tọa độ 1 chiều: Số hiệu sector Nguyên tắc như với→ đĩaHeader mềm: Sector →Cylinder 50 / 108
  127. 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 Sector là đơn vị thông tin máy tính dùng để làm việc với đĩa từ Có thể truy nhập (đọc/ghi/format/ ) tới từng sector Truy nhập sử dụng ngắt BIOS 13h (chức năng 2, 3, 5, ) Không phụ thuộc hệ điều hành Sector được xác định theo địa chỉ Truy nhập sử dụng lời gọi hệ thống Ngắt của hệ điều hành 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 Sử dụng hàm WIN32 API CreateFile()/ReadFile()/WriteFile() 51 / 108
  128. 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 secror; 3h: Ghi Sector Số sector cần đọc AL Các sector phải trên cùng một mặt, một rãnh DH Số hiệu mặt đĩa Số hiệu ổ đĩa. 0h:A; DL 80h: Đĩa cứng thứ nhất; 81h Đĩa cứng thứ 2 Số hiệu Track/Cylinder CH (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) Trỏ tới vùng đệm, nơi sẽ chứa dữ liệu đọc đươc ES:BX (khi AH=2h) hoặc dữ liệu ghi ra đĩa (Khi AH=3h) CF=0 không có lỗi; CL chứa số sector đọc được CarryFlag 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 52 / 108
  129. 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; } 53 / 108
  130. 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 HANDLE CreateFile( ): Mở file/thiết bị vào ra LPCTSTR lpFileName, ⇒ Tên file/thiết bị vào ra ”\\\\.\\C :” Phân vùng / Ổ đĩa C ”\\\\.\\PhysicalDrive0” Ổ đĩa cứng thứ nhất DWORD dwDesiredAccess,⇒ Thao tác với thiết bị DWORD dwShareMode,⇒ Cho phép dùng chung LPSECURITY_ATTRIBUTES lpSecurityAttributes (NULL), DWORD dwCreationDisposition,⇒ Hành động thực hiện DWORD dwFlagsAndAttributes, ⇒ Thuộc tính HANDLE hTemplateFile (NULL) BOOL ReadFile( ) HANDLE hFile,⇒File muốn đọc LPVOID lpBuffer, ⇒ Vùng đệm chứa dữ liệu DWORD nNumberOfBytesToRead,⇒, số byte cần đọc LPDWORD lpNumberOfBytesRead,⇒ số byte đọc được LPOVERLAPPED lpOverlapped (NULL) BOOL WriteFile( ) ⇒Tham số tương tự ReadFile() 54 / 108
  131. 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ụ) #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); if (hDisk==INVALID_HANDLE_VALUE) printf("Loi thiet bi"); else { ReadFile(hDisk,Buf,512,&byteread,NULL); for(i=0;i<512;i++) printf("%4X",Buf[i]); CloseHandle(hDisk); } return 0; } 55 / 108
  132. 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 56 / 108
  133. 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 3 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 57 / 108
  134. 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 Đĩa mềm: Mỗi hệ điều hành có một chiến lược quản lý riêng Đĩa cứng (Có dung lượng lớn) Được chia thành nhiều phân vùng (Partitions, Volumes, ) Mỗi vùng là tập hợp các Cylinder liên tiếp nhau Người dùng ấn định kích thước (Ví dụ dùng: fdisk) Mỗi phân vùng có thể được quản lý bởi một HĐH riêng HĐH format phân vùng theo định dạng được sử dụng Tồn tại nhiều hệ thống khác nhau: FAT, NTFS, EXT3, Trước tất cả các phân vùng là các sector bị che Master Boot Record ( MBR): Sector đầu tiên của đĩa Sector ẩn với phân vùng 2 MBR Phân vùng 2 Sector ẩn Phân vùng 1 58 / 108
  135. 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 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ỉ ) Cấu trúc gồm 3 phần Chương trình nhận biết Đọc bảng phân chương để biết Vị trí các phân vùng Phân vùng tích cực (chứa HĐH) Đọc và thực hiện sector đầu tiên của CT nhận biết phân vùng tích cực Bảng phân chương (64bytes) Gồm 4 phần tử, mỗi phần tử 16 bytes Bảng phân chương 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ữ 55AA Chữ ký hệ thống (luôn là 55AA ) 59 / 108
  136. 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 Stt Ofs Size Ý nghĩa 1 0 1B Phân vùng tích cực? 80h nếu đúng; 0: Data 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 địa chỉ đầu 4 4 1B Mã nhận diện hệ thống. 05/0F: Partition mở rộng; 06:Big Dos; 07:NTFS; 0B: FAT32, 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 đ/c cuối vùng. (Số hiệu sector chỉ dùng 6 bit thấp) 7 8 1DW Địa chỉ đầu, tính theo số hiệu sector 8 Số sector12 1DW trong phân vùng 60 / 108
  137. 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 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ã Vị trí đầu Vị trí cuối Boot #sector số sector Hdr 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 61 / 108
  138. 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 62 / 108
  139. 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 Khi trường nhận diện có giá trị 05 hoặc 0F, partition tương ứng là partition mở rộng Partition mở rộng được tổ chức như một đĩa cứng vật 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 Các phần tử trong partition mở rộng có thể là partition rộng Cho phép tạo hơn 4 ổ đĩa logic Phân vùng 1 Phân vùng mở rộng MBR MBR Act Size Sys #Sector Act Size Sys #Sector 80 07 00 0B 00 0B 00 05 00 0F Bảng phânBảng chương phân chương mở rộng 63 / 108
  140. 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 64 / 108
  141. 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 65 / 108
  142. 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 66 / 108
  143. 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 Global Unique Identifier Partation Table - GPT LBA: Logical Block Addressing UEFI: Unified Extensible Firmware Interfafe BIOS : Basic Input Output System Địa chỉ một sector bị giới hạn 32 bit ⇒ Kích thước phân vùng bị giới hạn GPT LBA 0: Protective Master Boot Record LBA 1: Header GPT LBA 2→33: Bảng phân chương, chiếm 32 sector Gồm 128 phần tử, mỗi phần tử 128 byte Sử dụng 8 byte để ghi đia chỉ (LBA) đầu và cuối của phân vùng LBA 34 → : Các phân vùng LBA -33 → -2 32 sector, backup cho bảng phân chương LBA -1 Sector cuối, backup cho Header GPT 67 / 108
  144. Chương 4: Quản lý hệ thống file 4. Hệ thống FAT Nội dung chính 1 Hệ thống file 2 Cài đặt hệ thống file 3 Tổ chức thông tin trên đĩa từ 4 Hệ thống FAT 68 / 108
  145. 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 Hệ thống FAT FAT 12/ FAT16 dùng cho MSDOS FAT32 dùng từ WIN98 12/16/32: Số bit dùng để định danh cluster Hệ thống NTFS Sử dụng trong WINNT, WIN2000 Dùng 64 bit để xác định một cluster Ưu việt hơn FAT trong bảo mật, mã hóa, nén dữ liệu, Hệ thống EXT3 Sử dụng trong Linux Hệ thống CDFS Hệ thống quản lý file trong CDROM Hạn chế về độ sâu cây thư mục và kích thước tên Hệ thốngs UDF Phát triển từ CDFS cho DVD-ROM, hỗ trợ tên file dài 69 / 108
  146. 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 Số cluster lớn nhất FAT12: 212 − 18; FAT 16 : 216 − 18 K/thước max: FAT12: 32MB; FAT16: 2GB/4GB (32K/64K Cluster) FAT32 Chỉ dùng 28 bit ⇒ Số cluster lớn nhất 228 − 18 K/thước max: 2TB/8GB/16TB (8KB/32KB/64KB Cluster) Cấu trúc logic của hệ thống FAT FAT16 Vùng hệ thống Vùng dữ liệu BS FAT1 FAT2 ROOT FILES FAT32 Cluster BS FAT1 FAT2 ROOT Vùng hệ thống Vùng dữ liệu 70 / 108
  147. Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector 4 Hệ thống FAT Boot sector Bảng FAT (File Allocation Table) Thư mục gốc 71 / 108
  148. Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc Jmp xx Bảng Tham số Chương trình mồi 55AA Sector đầu tiên của phân vùng Cấu trúc gồm 3 phần Bảng tham số đĩa (BPB: Bios Parameter Block) ChươngBoot strap trình loader mồi () 72 / 108 Chữluôn ký là hệ 55AA thống) (
  149. 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 P 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 Tổng41 0C số 34 sector 00 trên đĩa ( 3411009) 73 / 108
  150. 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 Stt Ofs Kt Giá trị mẫu Ý nghĩa 15 36 1B 80h Số hiệu ổ đĩa vật lý 0: ổ A; 80h: ổ C 16 37 1B 00 Để dành/Byte cao cho trường #ổ đĩa 17 38 1B 29h Boot sector mở rộng 29h 18 39 1DW D513 5B24 Volumn Serial number(245B-13D5) 19 43 11B NO NAME Volumn Label: nhãn đĩa (không dùng) 20 54 8B FAT16 Để dành, thường là đoạn text miêu tả dạng FAT 21 62 - Bootstrap loader Ví dụ 74 / 108
  151. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 75 / 108
  152. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 75 / 108
  153. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Jmp+3C 75 / 108
  154. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngMãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 OEName: MSDOS5.0 75 / 108
  155. SốKiểuĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:sectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Kích thước sector: 512 75 / 108
  156. SốKiểuKíchĐĩaNhãnCóBắtVolumeTổngOEName:MãBPB sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial sectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB chương 63vật number:một phầnkhuôn NAME 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 2 sector cho 1 cluster 75 / 108
  157. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệutối2 nhậnlớn đầu FAT:thướcbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi: 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý: rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 00 FAT 63 mồi đĩa: 125889 thư : 245 F8 mục (≈ gốc64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Có 6 sector đứng trước bảng FAT thứ nhất 75 / 108
  158. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối nhậnlớn đầu FAT:thướcsectormở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16 sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Có 2 bảng FAT 75 / 108
  159. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu62 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một khuônNAME cluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: 00trình dạng 70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 :FAT 245 F8 thứ (≈ nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Có tối đa 512 phần tử trong thư mục gốc 75 / 108
  160. SốKiểuKíchNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhận đầu FAT:thướcsectorbảngmở số đĩa: đa đọc ổserial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Đĩa lớn hơn 32MB 75 / 108
  161. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:BPB sector sectorđầuhiệu6tối2 lớnđầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phần NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình trong70D4-EAA6 bảng00 FAT 63 mồi 125889 thư :FAT 245 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Mã nhận diện khuôn dạng đĩa: F8 75 / 108
  162. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 63 mồi đĩa: 125889 thư FAT F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Số sector cho một bảng FAT : 245 75 / 108
  163. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Số sector cho một rãnh: 63 75 / 108
  164. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Số đầu đọc ghi: 255 75 / 108
  165. KiểuKíchĐĩaNhãnSốCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương vậtnumber: một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Số sector ẩn: 63 75 / 108
  166. SốKiểuKíchĐĩaNhãnCóBắt2VolumeOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở đĩa: đa đọc hơnổ serial chocủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29h 255 lý:trước rãnh:bảng512 tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: thư :FAT 245 F8 mục thứ gốc nhất Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Tổng số sector của Volume: 125889 (≈64MB) 75 / 108
  167. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơn serial chosectorcủa rộng: diện ẩn:cho512 MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63 number:một phầnkhuôn NAMEcluster 29hcủa 255 trước rãnh:bảng512 Volume: tử trình dạng trong70D4-EAA6 bảng FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Số hiệu ổ đĩa vật lý: 00 00 75 / 108
  168. SốKiểuKíchĐĩaNhãnCóBắt2VolumeTổngOEName:Mã sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảng số đĩa: đa đọc hơnổ serial chosectorcủa diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster của 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 BPB mở rộng: 29h 75 / 108
  169. SốKiểuKíchĐĩaNhãnCóBắt2TổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1chương 63vật một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Volume serial number: 70D4-EAA6 75 / 108
  170. SốKiểuKíchĐĩaCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu FAT:thướcsectorbảngmở số đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0 FAT16FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn cluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Nhãn đĩa: NO NAME 75 / 108
  171. SốKíchĐĩaNhãnCóBắt2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn đầu thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosectorcủa rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT sector: ghi:đứng 32MB 1chương 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00trình dạng trong70D4-EAA6 bảng00 FAT 63 mồi đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Kiểu FAT: FAT16 75 / 108
  172. SốKiểuKíchĐĩaNhãnCó2VolumeTổngOEName:MãBPB sector sectorđầuhiệu6tối2 nhậnlớn FAT:thướcsectorbảngmở số đĩa: đa đọc hơnổ serial chosector rộng: diện ẩn:cho512 đĩa MSDOS5.0NO FAT16FAT sector: ghi:đứng 32MB 1 63vật number:một phầnkhuôn NAMEcluster 29hcủa 255 lý:trước rãnh:bảng512 Volume: tử 00 dạng trong70D4-EAA6 bảng00 FAT 63 đĩa: 125889 thư :FAT 245 F8 mục thứ (≈ gốc nhất64MB) Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giả mã bảng tham số đĩa của FAT16 Bắt đầu của chương trình mồi 75 / 108
  173. 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 Stt Ofs Kt Giá trị 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 76 / 108
  174. 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 / 108
  175. 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 78 / 108
  176. Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector File System Information Sector Thường là Sector thứ 2 của Volume Ngay sau Boot sector (Sector số hiệu 1) Cấu trúc 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 79 / 108
  177. 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 80 / 108
  178. 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 80 / 108
  179. 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 Stt Ofs Kt Giá trị mẫu Ý nghĩa 1 0 3B EB 52 90 Nhảy đến đầu chương trình mồi 2 3 8B NTFS Tên hệ thống file đã format đĩa 3 11 1W 00 02 Bytes per Sector 4 13 1B 08 Sectors per Cluster (4K-Cluster) 5 14 1W 00 00 Reserved sectors. Allways zero 6 16 1B 00 Allways 0 (FAT: Số bảng FAT) 7 17 1W 00 00 Allways 0 (FAT: Số p/tử của ROOT) 8 19 1W 00 00 Not used by NTFS (FAT:K/thước đĩa) 9 21 1B F8 Media Type 10 22 1W 00 00 Allway 0 (FAT:Sectors cho FAT) 11 24 1W 3F 00 Sector per Track (63) 12 26 1W FF 00 Number of Head (255) 13 28 1DW 3F 00 00 00 Hidden sectors (63) 14 32 1DW Not00 used 00 00 by 00 NTFS ( FAT: Psectors) 81 / 108
  180. 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 Stt Ofs Kt Giá trị 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 82 / 108
  181. 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 / 108
  182. 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 84 / 108
  183. 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 84 / 108
  184. 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 84 / 108
  185. 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 84 / 108
  186. 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 84 / 108
  187. 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 84 / 108
  188. 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 84 / 108
  189. 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 84 / 108
  190. 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 84 / 108
  191. 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 84 / 108
  192. 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 84 / 108
  193. 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 84 / 108
  194. 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 84 / 108
  195. 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 84 / 108
  196. 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 84 / 108
  197. 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 84 / 108
  198. Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT 4 Hệ thống FAT Boot sector Bảng FAT (File Allocation Table) Thư mục gốc 85 / 108
  199. Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Mục đích 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ữ Khối nhớ đang sử dụng Phân phối cho từng file/thư mục Khối nhớ tự do Khối nhớ bị hỏng Thực hiện như thế nào ? 86 / 108
  200. 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ử Mỗi phần tử có thể 12bit, 16bit, 32bit Mỗi phần tử ứng với 1 khối (cluster) trên vùng dữ liệu 2 phần tử đầu (0,1) có ý nghĩa đặc biệt Khuôn dạng đĩa, Bit shutdown, Bit diskerrror Phần tử thứ 2 ứng với cluster đầu của phần Data FAT 0 1 2 3 4 5 6 7 8 9 10 Special values #2 #3 #4 #5 #6 #7 #8 #9 DATA 87 / 108
  201. 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 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 Cluster đang được sử dụng. Giá trị đóng vai →[(0FFF)F]FEFh trò con trỏ, trỏ tới cluster tiếp theo của file [(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→ Cluster đang đc sử dụng và là cluster cuối cùng →[(0FFF)F]FFFh của file (EOC:End Of Cluster chain). Thực tế thường dùng giá trị[(0FFF)F]FFFh 88 / 108
  202. 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 Root entry 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 DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 89 / 108
  203. 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 Root entry 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 DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 89 / 108
  204. 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 Root entry 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 DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 89 / 108
  205. 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 Root entry 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 DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 89 / 108
  206. 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 Root entry 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 DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 89 / 108
  207. 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 Root entry 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 DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 89 / 108
  208. 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; } 90 / 108