Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
5,61 MB
Nội dung
Chương IV QUẢN LÝ TẬP TIN VÀ ĐĨA Tất ứng dụng máy tính cần lưu trữ đọc lại thông tin mà nhận vào xử lý Trong tiến trình chạy lưu trữ lượng giới hạn thông tin phạm vị không gian địa sở hữu Tuy nhiên khả lưu trữ bị giới hạn kích thước không gian địa ảo hệ thống Đối với vài ứng dụng không gian vừa đủ, số ứng dụng khác nhỏ Mặt khác lưu giữ thông tin không gian địa tiến trình thông tin bị tiến trình kết thúc Vấn đề thứ ba phải đáp ứng việc truy cập thông tin đông thời tiến trình môi trường hệ điều hành đa nhiệm Những vấn đề biết chương Quản lý tiến trình Quản lý nhớ tài liệu Để giải vấn đề hệ điều hành phải thiết kế hệ thông lưu trữ thông tin cho: Thứ phải lưu trữ khối lượng lớn thông tin Thứ hai thông tin phải bảo toàn tiến trình sử dụng kết thúc Và cuối có nhiều tiến trình truy xuất thông tin đồng thời Giải pháp cho tất vấn đề lưu trữ thông tin đĩa thiết bị media khác đơn vị liệu, gọi file (tập tin) Các tiến trình đọc thông tin file ghi thông tin vào file cần thiết Thông tin lưu trữ file phải không bị tác động việc tạo kết thúc tiến trình Các file quản lý hệ điều hành Thành phần hệ điều hành tham gia trực tiếp vào trình quản lý file đĩa gọi hệ thống file Hệ điều hành phải xây dựng cấu trúc tổ chức hoạt động hệ thống file Một nhiệm vụ quan trọng hệ thống file theo dõi việc lưu trữ file đĩa, theo dõi điều hành việc truy cập file tiến trình, bảo vệ file nội dung file, …Cấu trúc, tổ chức hoạt động nhiệm vụ hệ thống file hệ điều hành, hệ điều hành cụ thể, xem xét chương IV.1 Tổng quan quản lý tập tin đĩa IV.1.1 Tập tin hệ thống quản lý tập tin Tập tin (File): Tập tin đơn vị logic lưu trữ xử lý thành phần quản lý tập tin hệ điều hành Hệ điều hành cung cấp công cụ để người sử dụng chương trình người sử dụng lưu trữ tập tin thiết bị lưu trữ (đĩa thiết bị media khác) đọc lại tập tin nhanh Mỗi tập tin hệ điều hành tạo Chương 4: Quản lý file đĩa 148 tương ứng với tên cụ thể đó, tên tập tin khái niệm trừu tượng, tạo đồng tập tin với thiết bị lưu trữ khác Nhờ đó, mà người sử dụng dễ dàng truy xuất tập tin thông qua tên Đa số hệ điều hành cho phép tên tập tin dãy kí tự ASCII Unicode Nội dung tập tin chương trình, tập thủ tục khối liệu Nó dãy byte không cấu trúc, hệ điều hành nội dung tập tin Một dãy record có chiều dài cố định Hay cấu trúc cây, gồm record độ dài, record có trường khoá để giúp cho việc tìm kiếm nhanh Các hệ điều hành hỗ trợ nhiều kiểu tập tin khác như: tập tin thường, tập tin thư mục, tập tin có ký tự đặc biệt, tập tin khối Tập tin thường tập tin text hay tập tin nhị phân chứa thông tin người sử dụng Tập tin thư mục tập tin hệ thống dùng để lưu giữ cấu trúc hệ thống tập tin Tập tin có ký tự đặc biệt, liên quan đến nhập xuất thông qua thiết bị nhập xuất hình, máy in, mạng Tập tin khối dùng để truy xuất thiết bị lưu trữ khối (đĩa thiết bị lưu trữ khối) Thiết bị lưu trữ tập tin thường chia thành block có kích thước cố định nhau, block đánh địa để phân biệt Thành phần quản lý tập tin hệ điều hành có nhiệm vụ cấp phát thu hồi block cho tập tin cần thiết Vì kích thước tập tin thay đổi, nên hệ điều hành thường tổ chức cấp phát động block cho tập tin Hệ điều hành tổ chức cấp phát tĩnh block cho tập tin có kích thước không thay đổi tập tin thực thi, tập tin thư viện, … Cấp phát tĩnh nhanh đơn giản nhiều so với cấp phát động Các hệ điều hành cho phép truy xuất tập tin theo cách ngẫu nhiên Trong hệ thống truy xuất tuần tự, tiến trình đọc tất byte record tập tin, theo thứ tự, từ vị trí bắt đầu mà bỏ qua byte hay record Truy cập ngẫu nhiên ngược lại, tiến trình truy xuất byte hay record file Trong hai cách phải vị trí bắt đầu đọc Trong cách thứ nhất, thao tác đọc cần phải xác định ví trí bắt đầu đọc file Trong cách thứ 2, trước đọc hệ thống phải tìm đến (SEEK) vị trí bắt đầu đọc, sau tiến hành đọc cách thứ Hệ thống quản lý tập tin (File management System): Hệ thống quản lý tập tin, hay gọi ngắn gọn hệ thống tập tin, tập dịch vụ mà hệ điều hành cung cấp cho người sử dụng chương trình người sử dụng để đối tượng sử dụng tập tin hệ thống Người sử dụng chương trình người sử dụng truy xuất tập tin thông qua hệ thống tập tin Hệ thống quản lý tập tin hệ điều hành phải đáp ứng mục tiêu sau đây: • Đáp ứng yêu cầu lưu trữ liệu người sử dụng, bao gồm: khả lưu trữ, độ tin cậy hiệu suất • Cực tiểu hay loại bỏ nguy dẫn đến hỏng liệu • Cung cấp hỗ trợ vào/ra cho nhiều loại thiết bị lưu trữ khác • Cung cấp hỗ trợ vào/ra cho nhiều người sử dụng hệ thống đa người sử dụng Chương 4: Quản lý file đĩa 149 • Cung cấp tập chuẩn thủ tục giao diện vào/ra Đối với người sử dụng hệ thống quản lý tập tin hệ điều hành phải đáp ứng yêu cầu tối thiểu sau đây: • Mỗi người sử dụng phải tạo (create), xoá (delete) thay đổi (change) tập tin • Mỗi người sử dụng điều khiển để truy cập đến tập tin người sử dụng khác • Mỗi người sử dụng phải di chuyển liệu tập tin • Mỗi người sử dụng phải truy cập đến tập tin họ thông qua tên tượng trưng tập tin • Mỗi người sử dụng phải dự phòng khôi phục lại tập tin họ trường hợp hệ thống bị hỏng Kiến trúc hệ thống tập tin (File System Architecture): Các hệ điều hành khác có cách tổ chức hay kiến trúc hệ thống tập tin khác Hình vẽ sau trình bày kiến trúc hệ thống tập tin chung mà hệ điều hành thường sử dụng Uer Uer Program Program Pile Sequential Index-seq Index Hash Logical I/O Basic I/O Supervisor Basic File System Device Drivers Hình 4.1: Kiến trúc hệ thống quản lý tập tin • Cấp thấp kiến trúc điều khiển thiết bị (device driver) truyền thông trực tiếp với thiết bị ngoại vi Device driver chịu trách nhiệm khởi tạo thao tác vào/ra thiết bị xử lý yêu cầu vào/ra Các device driver hệ thống tập tin thường điều khiển đĩa • Cấp kế device driver, xem hệ thống tập tin sở (basic file system), cấp vào/ra vật lý, giao diện môi trường bên với hệ thống máy tính Nó giao tiếp với block liệu trao đổi đĩa với hệ thống kết nối với block đĩa buffer nhớ Nó không hiểu liệu cấu trúc file phức tạp • Cấp basic I/O supervisor chịu trách nhiệm khởi tạo kết thúc tất thao tác vào/ra tập tin Tại cấp này, cấu trúc điều khiển trì, cấu trúc điều khiển giao tiếp với thiết bị vào/ra, phận lập lịch đọc đĩa phận quản lý trạng thái tập tin Basic I/O supervisor kết hợp với phận lập lịch đọc đĩa để tối ưu Chương 4: Quản lý file đĩa 150 thao tác đọc đĩa, nhằm góp phần tăng tốc độ truy xuất tập tin chương trình người sử dụng • Cấp vào/ra logic (Logical I/O) thành phần quan trọng hệ thống tập tin, cho phép người sử dụng chương trình người sử dụng truy cập đến record Trong hệ thống tập tin sở giao tiếp với block liệu, logical I/O giao tiếp với record file Logical I/O cung cấp công cụ chung để thực thao tác vào/ra file dựa record • Cấp kiến trúc hệ thống tập tin kết hợp chặt chẽ với người sử dụng Nó cung cấp giao diên chuẩn chương trình người sử dụng, hệ thống tập tin thiết bị lưu trữ liệu Các phương pháp truy cập liệu khác phản ánh cấu trúc tập tin khác cách khác để truy cập xử lý liệu Các phương pháp truy cập là: Pile, Sequential file, Indexed-sequential file, Indexed file, Hashed, vv Xem cụ thể [6] IV.1.2 Bảng danh mục tập tin chia sẻ Bảng danh mục (Directory Table): Các hệ điều hành phải tổ chức bảng danh mục, để lưu trữ thông tin liên quan đến tập tin thư mục tồn đĩa (hoặc thiết bị lưu trữ khác), đặc biệt thông tin cho biết vị trí lưu trữ nội dung tập tin đĩa Để truy xuất đến tập tin hệ điều hành cần phải thông qua bảng danh mục Bảng danh mục gồm nhiều entry (phần tử/mục vào), phần tử dùng để chứa thông tin tập tin hay thư mục đĩa Khi có tập tin/ thư mục tạo hệ điều hành dùng phần tử bảng danh mục để chứa thông tin Khi tập tin/ thư mục bị xoá khỏi đĩa hệ điều hành giải phóng phần tử bảng danh mục Có thể xem phần tử bảng danh mục tương ứng tập tin vị trí lưu trữ tập tin tên đĩa Số lượng phần tử bảng danh mục bị giới hạn cố định trước giới hạn tăng/ giảm cần Bảng danh mục chứa không gian đặc biệt đĩa, chứa file metadata đĩa Trong trình hoạt động hệ thống bảng danh mục thường hệ điều hành nạp từ đĩa vào nhớ, để sẵn sàng cho việc truy xuất file hệ điều hành sau Một phần tử danh mục phải chứa thông tin tối thiểu sau đây: Tên tập tin; Kiểu tập tin; Địa vật lý tập tin đĩa Các thông tin kiểm tra truy nhập tập tin; Các thông tin quản trị tập tin; vv Các hệ điều hành thường thiết kế sử dụng bảng danh mục hai mức Mức 1, gọi bảng danh mục chủ, bao gồm trỏ trỏ tới bảng danh mục người sử dụng Mức 2, gọi bảng danh mục người sử dụng, bao gồm tên tập tin địa vật lý tập tin đĩa,… Tổ chức bảng thư mục gốc bảng thư mục cài đặt cụ thể cấu trúc bảng danh mục hai mức hệ điều hành MS_DOS Muốn truy xuất đến tập tin người sử dụng chương trình người sử dụng phải thông qua danh mục chủ danh mục người sử dụng hay thông qua thư mục gốc thư mục hệ điều hành MS_DOS Để thực thao tác nội dung tập tin trước hết tập tin Chương 4: Quản lý file đĩa 151 phải mở Khi nhận yêu cầu mở tập tin hệ điều hành sử dụng đường dẫn người sử dụng hay chương trình người sử dụng để tìm đến mục vào tương ứng với tập tin cần mở bảng danh mục Phần tử bảng danh mục cung cấp thông tin cần thiết để hệ điều hành tìm đến block đĩa chứa nội dung tập tin Tùy vào hệ điều hành mà thông tin địa tất block đĩa chứa nội dung tập tin (trong chiến lược cấp phát liên tục), địa block đĩa chứa nội dung tập tin (trong chiến lược danh sách liên kết danh sách kiên kết mục), số hiệu I-node (trong chiến lược I-node) Các chiến lược trình bày phần quản lý block chứa file đĩa sau Tổ chức bảng thư mục gốc MS_DOS, windows98 MFT windowsNT/2000 cài đặt cụ thể cấu trúc bảng danh mục hệ điều hành Tổ chức bảng thư mục gốc MS_DOS, windows98, windowsNT/ 2000 xem xét phần sau chương Tập tin chia sẻ (Shared File): Tập tin chia sẻ xuất môi trường nhiều người sử dụng, kỹ thuật hệ điều hành, nhằm giúp nhiều người sử dụng hệ thống sử dụng tập tin Đối với người sử dụng, tập tin chia sẻ tập tin xuất đồng thời thư mục khác người sử dụng khác Kỹ thuật chia sẻ tập tin thường hệ điều hành sử dụng là, cho phép phần tử bảng danh mục người sử dụng khác chứa thông tin tập tin chia sẻ đó, đặc biệt thông tin địa block đĩa chứa nội dung tập tin chia sẻ Khi có liên kết chia sẻ thiết lập đến người sử dụng đó, hệ điều hành cần chép danh sách block đĩa file chia sẻ đến phần tử tương ứng bảng danh mục người sử dụng người sử dụng Kỹ thuật đơn giản dễ cài đặt xuất vấn đề: tập tin cập nhật người sử dụng cập nhật không nhìn thấy người sử dụng khác (điều vi phạm mục đích việc chia sẻ tập tin) Vì tập tin cập nhật hệ điều hành phải cung cấp thêm vài block đĩa cho nó, địa block đĩa liệt kê thêm phần tử tương ứng bảng danh mục người sử dụng thực cập nhật tập tin mà không liệt kê bảng danh mục người sử dụng khác Vấn đề giải sau: danh sách địa block đĩa chứa tập tin chia sẻ không liệt kê phần tử bảng danh mục, mà chứa khối liệu có cấu trúc đó, tạm gọi khối liệu mô tả lưu trữ tập tin hay nói gọn khối mô tả lưu trữ Khối mô tả lưu trữ gắn vào tập tin chia sẻ kích thước nhỏ, đặt vị trí đĩa, kích thước lớn (trường hợp dùng chung cho nhiều tập tin chia sẻ) Mọi sư thay đổi danh sách địa block đĩa chứa tập tin chia sẻ phản ánh khối mô tả lưu trữ Các phần tử bảng danh mục đóng vai trò trỏ trỏ đến khối mô tả lưu trữ tập tin chia sẻ, nhờ mà thay đổi tập tin chia sẻ từ người sử dụng số người sử dụng chia sẻ tâp tin nhìn thấy từ tất người sử dụng lại Trong môi trường nhiều người sử dụng, việc chia sẻ tập tin cho nhiều người Chương 4: Quản lý file đĩa 152 sử dụng cần thiết mang lại nhiều thuận lợi Nhưng phát sinh nhiều lỗi trình sử dụng tập tin chia sẻ nhiều người sử dụng chương trình người sử dụng, mà hệ điều hành không tổ chức giám sát tốt dẫn đến tình trạng hỏng tập tin chia sẻ nội dung tâp tin chia sẻ Chúng ta biết hệ điều hành giải vấn đề chương Quản lý tiến trình tài liệu Đây vấn đề lớn hệ điều hành đa nhiệm đặc biệt hệ điều hành mạng Các hệ điều hành cung cấp đầy đủ công cụ để người sử dụng chương trình người sử dụng kết hợp với hệ điều hành khai thác, sử dụng tốt tập tin chia sẻ hạn chế thấp lỗi xảy Trong phần sau chương xem xét thao tác mà hệ điều hành phải thực để đáp ứng yêu cầu mở file từ người sử dụng môi trường nhiều người sử dụng IV.1.3 Quản lý không gian đĩa Kích thước block: Để tổ chức lưu trữ nội dung file đĩa, hệ điều hành chia không gian lưu trữ đĩa thành phần có kích thước gọi khối (block) lưu trữ Nội dung file chia thành block có kích thước nhau, trừ block cuối cùng, với kích thước block đĩa Khi cần lưu trữ file đĩa hệ điều hành cấp cho tập tin số lượng block vừa đủ để chứa hết nội dung tập tin Kích thước block phụ thuộc vào qui định vi xử lý hệ điều hành, thường 128 byte, 256 byte, 512 byte, vv Khi chọn kích thước block hệ điều hành phải xem xét vấn đề sau: • Nếu kích thước block lớn dễ lãng phí đĩa, trường hợp kích thước tập tin bội số kích thước block • Nếu kích thước block nhỏ đĩa chia thành nhiều block, dẫn đến kích thước danh sách quản lý block đĩa, danh sách quản lý block tập tin, bảng block, vv, tăng lên dung lượng nhớ chứa tăng lên • Kích thước block phải bội kích thước khối liệu mà hệ thống dùng thực truyền liệu nhớ nhớ phụ Theo dõi block tự do: Khi cần lưu trữ nội dung file lên đĩa, hệ điều hành cấp cho file số lượng block đĩa định để chứa hết nội dung nó, block đĩa nằm vị trí đĩa Trong trình sử dụng file kích thước file thay đổi, tăng lên hay giảm xuống, hệ điều hành phải tổ chức cấp phát động block đĩa cho file Khi kích thước file tăng lên hệ điều hành phải cấp phát thêm block cho nó, kích thước file giảm xuống file bị xoá khỏi đĩa hệ điều hành phải thu hồi lại block đĩa cấp cho để cấp cho file khác sau Để tổ chức cấp phát động block đĩa cho file hệ điều hành phải quản lý trạng thái block, tự hay cấp phát, đĩa Trong trường hợp hệ điều hành sử dụng kỹ thuật: Dùng bảng bít và/hoặc dùng danh sách liên kết Trong bảng bít, bít cho biết trạng thái block tương ứng nhớ phụ, = block tương ứng tự do, = block tương ứng cấp phát cho file Như vậy, để tìm N block tự hệ điều hành cần tìm N bít bảng bít, tốc độ tìm cấp phát block cho file tăng lên nhiều Trong danh sách liên kết, để Chương 4: Quản lý file đĩa 153 quản lý block tự hệ điều hành dùng danh sách liên kết Mỗi phần tử danh sách cho biết địa block tự đĩa Như cần cấp phát block cho cho file hệ điều hành dựa vào danh sách block tự Sau cấp phát thu hồi block hệ điều hành phải tiến hành cập nhật lại danh sách liên kết hay bảng bít Trong trường hợp bảng bít danh sách liên kết lớn, hệ điều hành chứa đĩa nạp phần cần thiết vào nhớ Khi lựa chọn block tập block tự để cấp phát cho file hệ điều hành phải chọn cho việc cấp phát thực nhanh việc đọc sau tối ưu với thuật toán đọc đĩa cụ thể Cấp hạn ngạch đĩa (Disk Quotas): Để ngăn chặn người sử dụng sử dụng nhiều không gian đĩa, hệ điều hành đa người sử dụng thường cung cấp chiến lược để người quản trị hệ thống giới hạn số lượng không gian đĩa tối đa (block) mà người sử dụng phép sử dụng hệ điều hành phải đảm bảo người sử dụng sử dụng không gian đĩa mà hệ điều hành cấp cho họ, chiến lược gọi cấp hạn ngạch đĩa Khi người sử dụng mở file, thuộc tính địa block đĩa mà hệ điều hành cấp cho file ghi vào bảng mở file nhớ chính, có thuộc tính cho biết người sử dụng sở hữu file mở Bất kỳ thay đổi kích thước file thay đổi đến hạn ngạch người sử dụng sở hữu file Bảng mở file Bảng Quota Attribute Disk address User = Quota pointer ≈ ≈ Hình 4.2: Theo dõi quota người sử dụng Soft block limit Hard block limit Current # of blocks # Block warnings left Soft file limit Hard file limit Current # of files # File warnings left ≈ Các record quota cho user khác Record Quota cho user ≈ Một bảng thứ hai chứa record quota, cho người sử dụng mở file tại, chí file mở người đó, bảng trình bày hình sau Hình 4.2 cho thấy phần file quota đĩa, cho biết file người sử dụng mở Khi tất file đóng, record ghi trở lại file quota Khi có entry tạo bảng mở file trỏ (quota pointer) trỏ tới record quota người sở hữu file, nhập vào Mỗi có block thêm vào file tổng số block người sử dụng tăng lên check gán đến Hard block limit Soft block limit Soft limit vượt quá, hard limit Một cố gắng thêm vào cuối file hard block Chương 4: Quản lý file đĩa 154 limit bị vượt giới hạn trả thông báo lỗi Khi người sử dụng cố gắng login, hệ thống kiểm tra file quota để xem người sử dụng vựợt soft limit block file hay chưa (soft block limit soft file limit) Nếu hai limit bị vi phạm, cảnh báo xuất hiện, đếm (count) tương ứng với cảnh báo giảm xuống đơn vị Nếu đếm nhận giá trị zero người sử dụng không phép login IV.1.4 Quản lý block chứa file đĩa Trong phần xem xét phương pháp khác mà hệ điều hành sử dụng để theo dõi danh sách block đĩa mà hệ điều hành cấp phát cho file, để chứa hết block file, tất file lưu trữ tên đĩa Cấp phát liên tục (contiguous allocation): chiến lược đơn giản nhất, chiến lược block file lưu trữ block đĩa liên tục Tức là, block đĩa 1K file 50K lưu trữ 50 block liên tiếp đĩa Chiến lược đơn giản, dễ cài đặt thời gian đọc file giảm xuống đáng kể, hệ điều hành cần biết block đĩa chứa block file tổng số block đĩa chứa file tiến hành đọc nội dung file mà không cần dò tìm danh sách block đĩa chứa nội dung file Chiến lược sử dụng với file có kích thước cố định, không thay đổi so với thời điểm tạo file, với file mà hệ điều hành biết trước kích thước tối đa file, trường hợp hệ điều hành phải dự trữ block đĩa cho file, điều dễ dẫn đến tình trạng lãng phí việc sử dụng block đĩa Chiến lược dẫn đến tượng phân mảnh đĩa, tức đĩa xuất đoạn block trống nhỏ, không đủ để chứa file có kích thước tối thiểu, nằm đoạn block chứa file, đoạn block trống nơi lưu trữ file mà file bị xoá khỏi đĩa Hiện tượng phân mảnh đĩa làm chậm tốc độ đọc file hệ điều hành Các hệ điều hành nay, hệ điều hành windowsNT/2000 chẳng hạn, cải tiến chiến lược để khắc phục hạn chế tận dụng thuận lợi Bằng cách, cấp phát block đĩa liên tục để chứa vừa đủ kích thước ban đầu file, sau kích thước file tăng lên hệ điều hành tìm cấp phát đoạn block khác vị trí đĩa để chứa vừa đủ phần kích thước tăng lên Tức là, nội dung file lưu trữ đoạn block đĩa rời rạc đĩa Nếu kích thước file giảm xuống hệ điều hành phải tổ chức lại việc lưu trữ file để cho giải phóng đoạn block đĩa chứa file trước Với việc cải tiến này, hệ điều hành đọc file nhanh hơn, xảy phân mảnh việc tổ chức lưu trữ phức tạp Chúng ta thấy cách tổ chức hệ thống file hệ điều hành windowsNT/2000 phần sau chương Cấp phát theo danh sách liên kết (linked list allocation): chiến lược sử dụng danh sách liên kết block đĩa để chứa nội dung file Word block đĩa sử dụng trỏ để trỏ đến block kế tiếp, trừ word block cuối sử dụng để chứa tín hiệu báo kết thúc danh sách file, phần lại block đĩa dùng để chứa nội dung file Trong trường hợp kích thước Chương 4: Quản lý file đĩa 155 block đĩa phải lớn kích thước block file word Hình sau minh hoạ cho việc lưu trữ file theo chiến lược này, với file A chia thành block: block 0, block 1, block 2, block lưu trữ block đĩa, 3, 7, 5, 10 Với file B chia thành block: block 0, block 1, block 2, lưu trữ block đĩa, 4, 8, 10 fileA block 0 A0 B0 A2 B2 fileA block fileA block Danh sách liên kết file A 10 A1 B1 fileA block A3 phần tử cuối 10 fileB block Các block đĩa chứa block FileA fileB fileB block fileB block block file cuối nhỏ block đĩa Danh sách liên kết file B Hình 4.3: Cấp phát block theo danh sách liên kết Không cấp phát liên tục, block sử dụng chiến lược này, nên không dẫn đến tượng phân mảnh đĩa khai thác tối đa không gian đĩa Và hệ điều hành cần biết block đĩa chứa file đọc toàn nội dung file, block ghi phần tử bảng danh mục tương ứng với file Tốc độ đọc file theo cách truy cập ngẫu nhiên chiến lược chậm so với cách truy cập chiến lược cấp phát liên tục Cấp phát theo danh sách liên kết sử dụng mục (linked list allocation using an index): Cấp phát theo danh sách liên kết tồn hai hạn chế là: chậm tốn word để chứa trỏ đến block Để khắc phục hai hạn chế này, hệ điều hành lưu word trỏ nói vào bảng mục nạp bảng mục vào nhớ hệ điều hành cần đọc nội dung file đĩa A1 12 B1 A3 10 11 B2 A2 x 13 14 15 B3 x A4 B4 Các cluster đĩa chứa Block file A B 12 15 10 14 0 10 11 12 13 14 15 16 17 Một đoạn bảng mục Hình 4.4: Cấp phát block theo danh sách liên kết có mục Chương 4: Quản lý file đĩa 156 Hình 4.4 minh hoạ cho việc lưu trữ file theo chiến lược này, với file A chia thành block: A1, A2, A3, A4 lưu trữ block đĩa, 4, 10, 7, 14 (cuối cùng) Với file B chia thành block: B1, B2, B3, B4 lưu trữ block đĩa, 6, 9, 12, 15 (cuối cùng) Với cách tổ chức toàn block đĩa sử dụng để lưu trữ file việc truy cập ngẫu nhiên trường hợp dễ dàng Tuy nhiên phải tồn móc xích để tìm tất blick đĩa chứa nội dung file móc xích phải nạp vào nhớ để hệ điều hành tìm đọc file cần Cũng chiến lược block file phải chứa phần tử bảng danh mục tương ứng với file, trường hợp xem trỏ trỏ đến bảng mục để bắt đầu dò tìm dãy block đĩa chứa nội dung file, hệ điều hành cần đọc file Hệ điều hành MS_DOS tổ chức quản lý file đĩa dựa theo chiến lược Một hạn chế lớn chiến lược toàn bảng mục phải nạp vào nhớ suốt thời gian làm việc hệ thống, điều làm tốn thời gian nạp bảng mục hệ điều hành làm lãng phí không gian nhớ hệ thống, đặc biệt trường hợp bảng mục lớn Bảng mục lớn đĩa lớn, đĩa có block bảng mục có nhiêu phần tử, phần tử bảng mục word, 1.5 word, word, word, vv phụ thuộc vào kích thước đĩa, kích thước block cách tổ chức lý block đĩa hệ điều hành Các hệ điều hành khắc phục hạn chế cách, không nạp tất bảng mục vào nhớ mà nạp phần bảng mục liên quan đến file mở nhớ thời điểm cụ thể đó, tức là, phần bảng mục thay đổi trình làm việc hệ thống Khái niệm cửa sổ bảng FAT hệ thống file hệ điều hành windows98 ví dụ trường hợp Chúng ta nhắc đến điều phần sau chương I-nodes (index-node): chiến lược này, hệ điều hành thiết kế bảng nhỏ để theo dõi blocks file, gọi I-node I-node liệt kê thuộc tính địa đĩa block file Hình sau minh hoạ cho chiến lược I-node block gián tiếp đơn block gián tiếp ba Attributes Địa ch ỉ block liệu Địa đĩa block gián tiếp đôi Hình 4.5: Một I-node Chương 4: Quản lý file đĩa 157 volume NTFS Windows 2000 sử dụng MFT để quản lý việc lưu trữ file thư mục volume MFT bao gồm dãy record (còn gọi record file hay entry), có kích thước cố định 1Kb Mỗi record MFT dùng để mô tả file thư mục volume, kể record Nó chứa thuộc tính file, tên file, timestamps (các đặc trưng thời gian tạo thay đổi tập tin), danh sách địa đĩa (cluster) nơi lưu trữ block file Nếu kích thước file lớn hệ điều hành cần phải sử dụng 2, nhiều record MFT để lưu danh sách địa tất block đĩa chứa file volume Trong trường hợp này, record MFT file gọi record sở, trỏ đến record MFT mở rộng khác Hệ thống file Windows 2000 sử dụng bitmap để theo dõi toàn MFT trống Số lượng record MFT tăng lên cần tăng đến 48 record thân MFT file, đuợc xuất nơi volume Hình sau cho thấy đoạn MFT volume …………… 16 15 14 13 12 11 10 Các file thư mục người sử dụng Unused Unused Unused Unused $Extend: Extentions: quotas, $Upcase: Case conversion table $Secure: Security descriptor for all files $BadClus: List of bad of block $Boot: Bootstrap Loader $Bitmap: Bitmap of blocks used \ $AttrDef $Volume $ LogFile $MftMirr $MFT Metadata File Root directory Attribute definitions Volume file Log file to recovery Mirror copy of MFT Master File Table Hình 4.6: Các record MFT Mỗi record MFT bao gồm tập cặp (attribute header, value) Mỗi thuộc tính thường biểu diển phần bắt đầu giá trị thuộc tính, tất cả, giá trị có chiều dài thay đổi Nếu giá trị thuộc tính ngắn lưu record MFT, ngược lại dài lưu nơi khác đĩa record có trỏ trỏ đến địa Mười sáu record MFT dành riêng cho file metadata NTFS Chương 4: Quản lý file đĩa 197 Mỗi record mô tả file có thuộc tính block liệu, giống file khác Tên file metadata bắt đầu dấu ‘$’: • Record (tên $MFT) mô tả thân MFT Đặc biệt, địa block, nơi lưu trữ bảng file (MFT), hệ thống dễ dàng tìm thấy file MFT Rõ ràng, Window 2000 cần phải có chế để tìm thấy block file MFT để tìm đến thông tin lại hệ thống file Cơ chế tìm đến block khởi động, nơi mà địa cài đặt lúc cài đặt hệ thống • Record (tên $MftMirr) đến phần file MFT Thông tin quan trọng phải có khác để khắc phục việc block file MFT thường bị bad • Record (tên $LogFile) đến log-file Khi thêm vào volume thư mục hay xoá khỏi volume thư mục hệ thống ghi lại thay đổi vào log file trước thực Sự thay đổi thuộc tính file ghi lại log file Sự thay đổi liệu người sử dụng không ghi • Record (tên $volume) đến file chứa thông tin volume kích thước volume, nhãn volume version • Như đề vập trên, record MFT chứa dãy cặp: thuộc tính header, giá trị File Attribute chứa bảng định nghĩa thuộc tính, định nghĩa loại thuộc tính hỗ trợ windows 2000 volume Thông tin file record (tên $Attr Def) MFT • Kế tiếp thư mục gốc, file có kích thước tăng tuỳ ý Nó mô tả record (tên \) MFT Entry dự trữ cho thư mục gốc Nó file chứa mục file thư mục lưu trữ phần gốc cấu trúc thư mục NTFS Khi NTFS yêu cầu để mở file, bắt đầu tìm kiếm file thư mục gốc Sau trình mở file, NTFS lưu trữ tham chiếu MFT file để truy cập trực tiếp record MFT file đọc ghi file sau • Không gian trống volume theo dõi bitmap Bitmap file Địa đĩa file bipmap ghi record (tên $bitmap) MFT • Record đến file Bootstrap (có tên $Boot): File chứa mã bootstrap windows 2000 Để hệ thống boot được, mã bootstrap phải nạp vào vị trí đặc biệt đĩa Trong trình format đĩa hệ điều hành định nghĩa vùng byte cách tạo file record cho File boot file metadata NTFS, bảo vệ riêng công cụ mô tả bảo mật mà áp dụng cho tất đối tượng windows 2000 • Record (có tên $BadClus) đến file, file dùng để lưu trữ danh sách liên kết block (cluster) bị bad volume • Record (tên file $Secure): đến file chứa thông tin bảo mật, file lưu trữ sở liệu mô tả bảo mật toàn volume Các file thư Chương 4: Quản lý file đĩa 198 mục NTFS có thiết lập mô tả bảo mật riêng, NTFS lưu trữ thiết lập file chung, cho phép file thư mục có thiết lập bảo mật tham chiếu đến mô tả bảo mật Trong nhiều môi trường, toàn thư mục có thiết lập bảo mật, nên chế mang lại nhiều thuận lợi việc tiết kiệm không gian lưu trữ mô tả bảo mật • Record 10 (tên $Upcase): đến file case mapping, file chứa bảng chuyển đổi kí tự thường kí tự hoa • Cuối cùng, record 11 (tên $Extend) đến thư mục, thư mục chứa file hỗn hợp như: hạn ngạch đĩa (Quotas), định danh đối tượng (Object identifier), • record MFT cuối dự trữ cho việc sử dụng sau Khi lần truy cập volume, NTFS phải Mount nó, tức đọc metadata từ đĩa xây dựng cấu trúc liệu bên để xử lý truy cập từ ứng dụng Để mount volume, NTFS tìm boot sector địa vật lý MFT Theo trên, record file riêng MFT entry MFT, record file thứ hai trỏ đến file định vị vùng đĩa, MFT mirror (tên $MftMir) Khi NTFS tìm thấy record file MFT, lấy thông tin ánh xạ từ VNC-to-LCN thuộc tính data lưu vào nhớ để chuẩn bị cho trình ghi/đọc file sau Các Record File Hệ thống file NTFS lưu trữ file tập cặp thuộc tính/giá trị (attribute/value), số liệu chứa (được gọi thuộc tính liệu không tên) Các thuộc tính file bao gồm tên file, thông tin time stamp thuộc tính có tên thêm vào Hình 4.19.a sau cho thấy record MFT cho file nhỏ: có thuộc tính: Standard Information (thông tin chuẩn), Filename (tên file) Data (dữ liệu) Mỗi thuộc tính file lưu trữ dòng tách biệt byte phạm vi file Nói cách khác NTFS không đọc ghi file mà đọc ghi dòng thuộc tính NTFS cung cấp thao tác thuộc tính : create, delete, read (byte range), write (byte range) Các dịch vụ ghi đọc thường thao tác thuộc tính liệu không đặt tên Tuy nhiên, lời gọi thuộc tính liệu khác cách sử dụng cú pháp dòng liệu đặt tên Standard Information Filename Data Hình 4.19.a: Một record MFT cho file nhỏ, có thuộc tính Cả NTFS FAT cho phép tên file đường dẫn dài đến 255 kí tự, có kí tự unicode dấu phân cách khác Để tương thích với ứng dụng 16 bít DOS, có file với tên file dài tạo windows 2000 tự động sinh tên file theo kiểu DOS (tên file 8.3) Tên theo kiểu DOS lưu Chương 4: Quản lý file đĩa 199 trữ record MFT với tên file NTFS (tên file dài), tham chiếu đến file Hình 4.19.b: Một record MFT có chứa tên MS_DOS Windows 2000 tạo tên file theo kiểu DOS từ tên file dài tương tự cách mà hệ điều hành windows98 làm Tên MS_DOS dùng để ghi, đọc, copy file Thuộc tính thường trú thuộc tính không thường trú Với file có kích thước nhỏ tất thuộc tính giá trị chứa record MFT Khi giá trị thuộc tính lưu trực tiếp MFT thuộc tính gọi thuộc tính thường trú Thuộc tính thông tin chuẩn thuộc tính mục gốc thường định nghĩa thuộc tính thường trú Hình 4.20.a: Header value thuộc tính thường trú Mỗi thuộc tính bắt đầu với header, header chứa thông tin thuộc tính, thông tin mà NTFS dùng để quản lý thuộc tính Header cho biết thông tin liên quan đến giá trị có phải thường trú (RESIDENT) hay không, offset từ header đến giá trị thuộc tính, độ dài (length) giá trị thuộc tính, vv Hình 4.20.b sau cho thấy thuộc tính filemane gồm có header “RESIDENT” + Offset:8h + Length:14h value MYFILE.DAT Khi giá trị thuộc tính lưu trữ record MFT thời gian đọc nội dung file NTFS giảm xuống, tìm danh sách cluster chứa nội dung file dựa vào việc phân tích bảng FAT hệ thống file FAT, mà cần đọc giá trị cluster đĩa chứa nội dung file, danh sách cluster ghi phần giá trị thuộc tính Thuộc tính cho thư mục nhỏ giống thuộc tính file nhỏ, có Chương 4: Quản lý file đĩa 200 thể thường trú MFT Hình sau record MFT cho thư mục nhỏ: Hình 4.20.b: Một record MFT cho thư mục nhỏ Trong thuộc tính Index root chứa mục tham chiếu đến file thư mục thư mục Trong thực tế nội dung thư mục, gồm file thư mục nó, nén thành record MFT có kích thước cố định 1MB Nếu thuộc tính đặc biệt, thuộc tính liệu file chẳng hạn, lớn để chứa hết record MFT NTFS cấp phát cluster riêng cho liệu thuộc tính từ MFT Vùng gọi Run (hay phạm vi) Nếu giá trị thuộc tính sau phát triển, nội dung file tăng lên chẳng hạn, NTFS định vị Run khác cho liệu thêm vào Các thuộc tính mà giá trị lưu trữ Run record MFT gọi thuộc tính không thường trú Hệ thống file định có hay không thuộc tính cụ thể thường trú hay không thường trú Khi thuộc tính không thường trú header chứa thông tin mà NTFS cần để tìm đến giá trị thuộc tính đĩa Hình sau cho thấy thuộc tính liệu không thường trú lưu trữ Run Hình 4.20.c: Record cho file lớn với Run Trong số thuộc tính chuẩn (standard attribute), có thuộc tính tăng lên trở thành không thường trú Các thuộc tính thông tin chuẩn tên file luôn thường trú Hình 4.20.d: Record MFT cho thư mục lớn với mục filename không thường trú Chương 4: Quản lý file đĩa 201 Một thư mục lớn có thuộc tính không thường trú Chúng ta xem hình say đây, ta thấy record MFT không đủ chỗ để lưu trữ hết Index file chứa thư mục lớn Một phần Index lưu trũ thuộc tính Index Root, phần lại lưu Run không thường trú gọi vùng đệm mục (Index Buffer) NTFS theo dõi Run cặp ánh xạ VCN-to-LCN Các LCN đánh số thứ tự cluster toàn volume từ đến n Các VCN đánh số cluster riêng cho file từ đến m Xem hình 4.20.e sau đây: Hình 4.20.e: Các VCN cho thuộc tính liệu không thường trú Nếu file có nhiều Run Run thứ bắt đầu với VCN Xem hình sau đây, header thuộc tính liệu chứa ánh xạ VCN-to-LCN cho Run đây, cho phép NTFS dễ dàng tìm đến định vị cấp phát đĩa Hình 4.20.f: Các ánh xạ VCN-to-LCN cho thuộc tính liệu không thường trú Hình 4.20.f Run liệu, thuộc tính khác lưu trữ Run record MFT không đủ chỗ để chứa chúng file có nhiều thuộc tính dẫn đến không chứa đủ record record thứ MFT sử dụng để chứa thuộc tính thêm vào Trong trường hợp thuộc tính gọi danh sách thuộc tính (attribute list) thêm vào Thuộc tính attribute list chứa tên mã loại cho thuộc tính file file tham chiếu record MFT, nơi thuộc tính nạp Thuộc tính attribute list cung cấp cho trường hợp: kích Chương 4: Quản lý file đĩa 202 thước file tăng lên file bị phân mảnh, dẫn đến record MFT đơn chứa hết ánh xạ VCN-to-LCN cần thiết để tìm tất Run Tóm lại record MFT có trường sau: • Trường record MFT record header, theo sau cặp header value thuộc tính Record header chứa mã số sử dụng để kiểm tra tính hợp lệ, số cập nhật record sử dụng lại cho file mới, tham chiếu đến file, số byte record sử dụng, nhận dạng (chỉ số, dãy số liên tiếp) record sở (chỉ sử dụng cho record mở rộng), số trường khác Sau record header header thuộc tính thứ giá trị thuộc tính thứ nhất, header thuộc tính thứ hai giá trị thuộc tính thứ hai, • NTFS định nghĩa 13 thuộc tính xuất record MFT Chúng liệt kê bảng sau Mỗi record MFT bao gồm dãy header thuộc tính, chúng đồng với phần đầu thuộc tính cho biết độ dài vị trí trường giá trị với trạng thái cờ số thông tin khác Thông thường, giá trị thuộc tính nằm sau header chúng, giá trị dài để đặt record MFT, chúng đặt vào block đĩa tách rời Thuộc tính gọi thuộc tính không thường trú Một vài thuộc tính tên, lặp lại, tất thuộc tính phải đặt hàng cố định recorrd MFT Các header cho thuộc tính thường trú có độ dài 24 byte; thuộc tính không lưu trú dài chúng lưu thêm thông tin để tìm thuộc tính đĩa Thuộc tính Mô tả Standard information Các bítcờ, timestamp, File name Tên file Unicode: lặp lại tên DOS Security descriptor Đã lỗi thời Thông tin bảo mật $extend$Secure Attribute list Vị trí MFT record thêm vào cần Object ID 64-bit, file nhận biết volume Reparse point Dùng cho liên kết tăng dần tượng trưng Volume name Tên volume (chỉ sử dụng $Volume) Volume information Phiên Volume (chỉ sử dụng $Volume) Index root Được sử dụng cho thư mục Index allocation Được sử dụng cho thư mục lớn Bitmap Được sử dụng cho thư mục lớn Logged utility stream Điều khiển kết nối đến $LogFile Data Dữ liệu luồng; lặp lại nhiều lần Bảng 4.7: Các thuộc tính sử dụng record MFT • Trường thông tin chuẩn (Standard Information) file bao gồm: thông tin bảo mật, timestamp, liên kết cố định, bít đọc bítlưu trữ, vv Nó trường có kích thước cố định hữu • Trường tên file (File Name) chuỗi mã Unicode có độ dài thay đổi Để tạo file với tên tên MS-DOS gần với ứng dụng 16- Chương 4: Quản lý file đĩa 203 bítcũ, file có tên 8+3 MS-DOS Nếu tên file thực tuân theo quy tắc đặt tên 8+3 MS-DOS, tên file MS_DOS phụ không sử dụng • Trong NT 4.0, thông tin bảo mật (Security) đưa vào thuộc tính Windows 2000 tất đưa vào file riêng, nhiều file chia sẻ phần bảo mật • Danh sách thuộc tính (Attribute List) cần thiết thuộc tính không đặt record MFT Thuộc tính để tìm record mở rộng Mỗi mục vào dãy thuộc tính chứa số 48-bíttrong MFT gọi record mở rộng dãy số 16bítcho phép kiểm tra phù hợp record mở rộng record sở • Thuộc tính định danh đối tượng ID (Object Identifer) đối tượng làm cho tên file • Trường peparse point gọi thủ tục phân tách tên file để thực thao tác đặc biệt Kỹ thuật sử dụng cài đặt liên kết biểu tượng • Hai thuộc tính volume (Volume Name Volume Information) sử dụng để xác định volume • Ba thuộc tính (Index Root, Index Allocation Bitmap) sử dụng cho việc cài đặt thư mục • Thuộc tính Logged utility stream sử dụng hệ thống file mã hoá • Cuối cùng, thuộc tính liệu Một dãy tên file nằm thuộc tính heard Tiếp theo header danh sách địa đĩa mà chúng gọi block chứa file, hay cho file vài trăm byte riêng Trong thực tế, đặt liệu file vào record MFT gọi file trực tiếp Phần lớn liệu không đặt MFT record, thuộc tính thường không thường trú IV.9.3 Quản lý danh sách block chứa File đĩa Trong Windows 2000 với NTFS nội dung File cần lưu trữ volume chia thành block (tương ứng với block hay cluster đĩa), block file gọi block logic Các block file lưu nhiều đoạn block không liên tiếp đĩa, đoạn block bao gồm n block liên tiếp (n = 2, 3, 4, ), đoạn block trường hợp gọi Run Ví dụ file A lưu trữ block liên tiếp: từ block 10 đến block 16 file B lưu trữ 35 block: từ block 30 đến block 44 từ block 41 đến block 60 Như file A lưu trữ đoạn block (Run #1) file B lưu trữ hai đoạn block (Run #1 Run #2) Thông thường, block logic file ghi block 20 đĩa block logic ghi vào block 21 đĩa block logic thứ ghi vào block 22 đĩa, vv Với cách lưu trữ hệ điều hành ghi nhiều blok logic vào block đĩa lúc Đây ưu điểm Windows 2000 Danh sách block đĩa chứa nội dụng file mô tả record MFT (đối với file nhỏ) dãy record MFT, không liên tiếp (đối với file lớn) Mỗi record MFT dùng để mô tả dãy block logic kề Mỗi record MFT trường hợp bắt đầu với header lưu địa offset block file Tiếp đến địa offset block đầu Chương 4: Quản lý file đĩa 204 tiên mà không nằm record Ví dụ có file lưu đoạn block là: – 49 60 – 79 record có header (0, 50) cung cấp địa đĩa cho 50 block record có header (60, 80) cung cấp địa đĩa cho 20 block Tiếp sau record header hay nhiều cặp, cặp lưu địa block đĩa bắt đầu đoạn block số block có đoạn (độ dài Run) Hình sau record MFT chứa thông tin file Standard Infor Header File Name Header Infor about data blocks (thông tin block liệu) Data Header Header Run #1 Run#2 Run#3 Standard Infor File Name 20 64 80 Unused Record Header Các block đĩa Hình 4.21 record MFT cho file ngắn (ngắn có nghĩa tất thông tin block file chứa vừa 20-23 record MFT) gồm block, 64-65 File80-82 chứa Run: Run #1 gồm block từ 20 đến 23, Run #2 gồm block từ 64 đến 65 Hình 4.21: Một record MFT cho file có run, gồm block Run #3 gồm block từ 80 đến 82 Mỗi Run ghi vào record MFT theo cặp (địa block đĩa, tổng số block) Cần ý giới hạn cho kích thước file trình bày theo cách Trong trường hợp thiếu địa nén, cặp cần có số 64-bít tổng số 16 byte Tuy nhiên cặp tượng trưng cho triệu block đĩa liên tiếp Trên thực tế, file 20 Mb bao gồm 20 Run triệu block Kb, Run đặt record MFT Khi lưu trữ file có kích thước lớn (số lượng block lớn) thông tin file có phân mảnh lớn lưu trữ block MFT trình bày hình sau: Trong hình sau ta thấy record sở file nằm record MFT 102 Nó có nhiều Run record MFT, hệ thống cần phải có nhiều record mở rộng, thêm record mở rộng, đặt chúng vào record sở Phần lại record sở sử dụng cho k Run Khi tất byte record 102 dùng hết, run tích lũy tiếp tục với record MFT 105 Khi nhiều run xếp vào hết record hay record đầy phần run lại vào record MFT 108 Theo cách này, nhiều record MFT dùng để quản lý file lớn khác 109 … Chương 4: Quản lý file đĩa 205 108 107 Run n+1 Run#m Record mở rộng 106 105 104 Run #k+1 Run #n Record mở rộng 103 102 101 MFT 105 MFT108 Run#1 Run #k Record sở Hình 4.22: Các record MFT file lớn Một vấn đề nảy sinh cần nhiều record MFT không đủ chổ MFT sở để liệt kê tất mục chúng Có giải pháp cho vấn đề thực hiên không lưu danh sách phần đuôi mở rộng record MFT (chẳng hạn, lưu trử đĩa thay ghi MFT sở) Lúc đó, kích thước file phát triển lớn đến mức cần thiết IV.10 Một số kỹ thuật hỗ trợ hệ thống file NTFS IV.10.1 Lập bảng mục Trong hệ thống file NTFS, danh mục file mục đơn tên file, tập tên file (cùng với tham chiếu file chúng) tổ chức theo cách đặc biệt để tăng tốc độ truy xuất file Để tạo danh mục, NTFS lập mục cho thuộc tính filename file thư mục Một record cho thư mục gốc volume đưa hình 4.23 sau Hình 4.23: Chỉ mục tên file cho thư mục gốc volume Một emtry MFT cho thư mục chứa thuộc tính index root danh sách xếp file thư mục Đối với thư mục lớn, tên file thực tế lưu trữ vùng đệm mục (index buffer) có kích thước cố định 4Kb, index buffer chứa tổ chức tên file Index buffer cài đặt cấu trúc liệu b+, nhờ mà cực tiểu số lần truy cập trực tiếp đĩa cần thiết để tìm đến file, đặc biệt thư mục lớn Thuộc tính Index root chứa cấp b+ trỏ Chương 4: Quản lý file đĩa 206 đến Index buffer chứa cấp Hình 4.23 trình bày tên file thuộc tính index root index buffer (file5), entry index chứa tham chiếu file MFT, nơi chứa thông tin mô tả, kích thước, timestamp file NTFS nhân đôi thông tin timestamp kích thước file từ record MFT file Kỹ thuật sử dụng FAT NFTS, yêu cầu cập nhật thông tin để ghi vào hai nơi Do đó, tăng tốc độ đáng kể cho thao tác duyệt thư mục cho phép hệ thống file hiển thị timestamp kích thước file file mà không cần mở file thư mục Thuộc tính index allocation ánh xạ VCN Run index buffer mà báo nơi index buffer thường trú đĩa Thuộc tính bitmap theo dõi VCN index buffer sử dụng hay rỗi Hình cho thấy entry file VCN, entry filename thực tế đóng gói cluster Một index buffer 4Kb chứa từ 20 đến 30 entry filename Cấu trúc liệu b+ kiểu cân bằng, ý tưởng cho việc tổ chức xếp liệu lưu trữ đĩa cực tiểu số lần truy cập đĩa cần thiết để tìm đến entry Trong MFT, thuộc tính index root thư mục chứa nhiều filename mà đóng vai trò mục vào cấp thư hai b+ Mỗi filename thuộc tính index root có trỏ tùy chọn kết hợp với để đến index buffer Index buffer mà đến chứa filename với giá trị (về mặt tự điển) sở hữu Trong hình trên, file4 entry cấp b+, đến index buffer chứa filename mà nó, cá filename file0, file1, file3 Lưu trữ tên file b+ mang lại nhiều thuận lợi Việc tìm kiếm thư mục nhanh filename lưu trữ theo thứ tự xếp Và phần mềm cấp cao đếm file thư mục, NTFS trả lại tên file vừa xếp NTFS cung cấp hỗ trợ cho mục liệu bên cạnh filename Một file có đối tượng ID gán cho nó, ID file lưu trữ thuộc tính $OBJECT_ID file NTFS cung cấp API cho phép ứng dụng mở file đối tượng ID file thay dùng tên file Do đó, NTFS phải tạo tiến trình để chuyển đổi đối tượng ID thành số file file cách hiệu Để thực điều NTFS lưu trữ ánh xạ tất đối tượng ID volume thành số tham chiếu file chúng file metadata \$Extend\$ObjID NTFS xếp đối tượng ID file nói mục filename mà ta dề cập Chỉ mục đối tượng ID lưu trữ b+ IV.10.2 Ánh xạ bad-cluster Các thành phần lý đĩa logic windows 2000 FDISK (đối với basic disk) LDM (đối với dynamics disk), khôi phục liệu bad-sector đĩa có khả chịu lỗi (fault tolearant disk), với điều kiện đĩa phải sử dụng chuẩn SCSI sector trống đĩa Các volume chịu lỗi volume thuộc loại Mirrored RAD-5 Hệ thống file FAT thành phần quản lý đĩa logic đọc liệu từ bad-sector phát sinh thông báo ứng dụng đọc liệu bad-sector NTFS thay cách tự động cluster chứa bad-sector theo dõi bad- Chương 4: Quản lý file đĩa 207 cluster không sử dụng lại sau Khi phận quản lý volume trả cảnh báo bad-sector điều khiển đĩa cứng trả lỗi bad-sector, NTFS tìm cluster để thay cluster chứa bad-sector NTFS copy liệu mà phận quản lý volume khôi phục vào cluster để thiết lập lại dư thừa liệu Hình 4.24.a cho thấy record MFT cho file người sử dụng với bad-cluster trong Run liệu Khi nhận lỗi bad-sector, NTFS gán lại cluster chứa bad-sector vào tập bad-cluster Điều ngăn cản hệ thóng cấp bad-cluster cho file khác Sau NTFS tìm cluster cho file thay đổi ánh xạ VCN-to-LCN để đến cluster Hình 4.24.a: Record MFT cho File có bad-cluster Ánh xạ lại bad-cluster hình sau Cluster 1357 có chứa bad-sector, thay cluster 1049 Nếu bad-sector volume redundant, phận quản lý volume khôi phục liệu thay sector Nếu thay sector trả cảnh báo cho NTFS NTFS thay cluster chứa bad-sector Hình 4.24.b1: Ánh xạ lại bad-cluster Nếu volume không cấu hình volume redundant liệu badsector khôi phục Khi volume định dạng volume FAT phận quản lý volume khôi phục liệu việc đọc liệu từ badsector không thành công không nhận kết trả lời Nếu thành phần Chương 4: Quản lý file đĩa 208 quan trọng hệ điều hành chứa bad cluster toàn file thư mục volume bị Giống hệ thống file khác, NTFS khôi phục liệu từ badsector mà hỗ trợ từ phận quản lý volume Tuy nhiên, NTFS chứa nhiều hư hại mà bad-sector gây Nếu NTFS phát bad-sector trình đọc ánh xạ lại cluster chứa bad-sector nó, trình bày hình 4.24.b2 sau đây: Hình 4.24.b2: Ánh xạ lại bad-cluster Nếu volume không cấu hình volume redundant, NTFS trả lại thông báo lỗi “đọc liệu” cho chương trình người sử dụng yêu cầu đọc liệu Nếu NTFS phát bad-cluster thao tác ghi, NTFS ánh xạ lại cluster trước ghi, nên không bị liệu không phát sinh lỗi IV.11 Tổ chức lưu trữ file đĩa CD_ROM Về nguyên tắc hệ thống file CD_ROM đơn giản so với hệ thống file khác, đĩa CD_ROM ghi lần (write-once media), file ghi xóa bỏ hay thay đổi sau đĩa chế tạo, thành phần quản lý File/đĩa hệ điều hành không lo đến việc quản lý Block tự đĩa việc cấp phát thu hồi Block cho file, trường hợp file lưu trữ đĩa CD_ROM Sau xem xét hệ thống file CD_ROM hệ thống mở rộng chúng: Hệ thống file ISO 9660: Đây chuẩn phổ biến hệ thống file CD_ROM chấp nhận chuẩn quốc tế vào năm 1988 với tên ISO 9660 Một mục đích chuẩn làm cho tất CD_ROM đọc máy tính khác nhau, không phụ thuộc vào thứ tự byte hệ điều hành sử dụng, kể hệ điều hành yếu MS_DOS Trên CD_ROM track, cylinder đĩa từ, có đường xoắn ốc từ tâm đĩa bên ngoài, đường xoắn ốc chia thành khối (block) Chương 4: Quản lý file đĩa 209 logic có kích thước 2352 byte, gọi sector logic Một vài byte khối dành cho phần mở đầu, sửa chữa lỗi, việc khác Phần khối logic lại khoảng 2048 byte ISO 9660 hỗ trợ cho tập đĩa CD_ROM với tập gồm 16-1 đĩa, CD_ROM riêng lẽ chia thành nhiều partition Trong phần tìm hiểu chuẩn ISO 9660 với CD_ROM không chia thành Partition • Mỗi CD_ROM có phần đầu đĩa, dài 16 block, chức phần không định nghĩa chuẩn ISO 9600 Các nhà sản xuất CD_ROM sử dụng phần đầu để ghi vào chương trình BootStrap cho phép máy tính khởi động từ đĩa CD_ROM, dùng cho mục đích khác • Phần block chứa mô tả Volume chính, mô tả chứa số thông tin chung CD_ROM, bao gồm: định danh hệ thống (32byte), định danh volume (32byte), định danh nhà sản xuất (128byte) định danh liệu (128byte) Khi chế tạo lấp đầy trường theo ý muốn Trong phần chứa phần giới thiệu, quyền tác giả, thông tin thư mục, kích thước khối logic (2048, 4096, 8192, ), số block CD_ROM, thời gian tạo kết thúc CD_ROM Cuối cùng, mô tả Volume chứa tập mục vào (directory entry) cho thư mục gốc, chứa địa block bắt đầu thư mục gốc CD_ROM Trên CD_ROM có mô tả volume chính, có nội dung hoàn toàn giống nhau, sử dụng để dự phòng • Sau phần phần bắt đầu CD_ROM dùng để chứa file ghi đĩa • Thư mục gốc tất thư mục khác, gồm số mục vào, phần cuối chúng chứa bít đánh dấu (mark) Mỗi mục vào chứa từ 10 đến 12 trường, có số thuộc ASCII số khác trường số thuộc số nhị phân Mở rộng Rock Ridge: Các chuyên viên thiết kế UNIX nhận thấy ISO 9660 vài hạn chế, họ mở rộng ISO 9660 với mục đích cho thay cho hệ thống file UNIX đĩa CD_ROM file tạo từ UNIX chép sang CD_ROM ngược lại, chuẩn mở rộng gọi Rock Ridge Rock Ridge giữ lại tất trường ISO 9660, sử dụng trường System để đưa thêm vào trường mới, hệ thống file khác không nhận biết trường xem CD_ROM đĩa CD_ROM thông thường Rock Ridge bổ sung thêm trường, theo thứ tự là: PX: Posix Attributes, PN: Major and miror device number, SL: Symbolic link, NM: Alternative name, CL: Child location, PL: Parent location, RE: Relocaltion, TF: Times stamps, trường quan trọng NM, trường cho phép sử dụng tên file cho file, tên file mục vào thư mục tên file kết hợp, tên không phụ vào tập kí tự giới hạn chiều dài chuẩn ISO 9660 Chương 4: Quản lý file đĩa 210 Mở rộng Joliet: Cũng chuyên viên thiết kế UNIX, chuyên viên thiết kế Microsoft muốn mở rộng ISO 9660 cho file tạo từ Windows chép sang CD_ROM ngược lại họ thành công với mở rộng Joliet Mở rộng Joliet cho phép: Tên file dài đến 64 kí tự; Sử dụng tập kí tự Unicode nên tên file dài đến 128 kí tự; Có nhiều cấp thư mục lồng nhau; Sử dụng tên thư mục với phần mở rộng Chương 4: Quản lý file đĩa 211 [...]... các tập tin được lưu trữ trên đĩa đều ở trang thái đóng, để thực hiện bất kỳ một thao tác đọc/ghi/thay đổi nội dung của tập tin thì trước hết chương trình, tiến trình của người sử dụng (kể cả người sử dụng) phải thực hiện thao tác mở tập tin Khi nhận được yêu cầu mở tập tin bộ phận quản lý tập tin của hệ điều hành sẽ đọc nội dung của tập tin từ đĩa và nạp nó vào bộ nhớ chính, sau đó trả về cho chương. .. người sử dụng một thẻ tập tin/ thẻ file (file handle) hoặc một biến tương ứng với tập tin này để chương trình, tiến trình theo dõi và thao tác trên tập tin này Sau khi thực hiện xong một thao tác nào đó trên nội dung của tập tin thì chương trình, tiến trình và cả người sử dụng phải thực hiện thao tác đóng tập tin lại Đối tượng yêu cầu đóng tập tin phải cung cấp đúng thẻ tập tin của tập tin cần đóng cho... (format) các ổ đĩa này thì mới có thể sử dụng được Nên nhớ phải định dạng hệ thống (format /s) cho đĩa C: và phải cài đặt hệ điều hành boot chíng vào đĩa C: Hình sau đây cho thấy một ổ đĩa cứng vật lý được chia thành 2 phân khu và các đĩa logic được tạo ra trên các phân khu: C: (10Gb) HDD 20Gb Ổ đĩa Vật Lý Chương 4: Quản lý file và đĩa D: 4Gb E: 6Gb Partition DOS chính Partition DOS mở rộng FDISK 2 đĩa logic... để thay thế cho CDFS, và dùng để quản lý các đĩa từ-quang, chủ yếu là các đĩa DVD_ROM UDF bao gồm cả các đặc tả DVD và có các điểm tiêu biểu sau: Tên tập tin có thể dài đến 255 ký tự, đường dẫn có thể dài đến 1023 ký tự, tên tập tin có thể được viết hoa hay viết thường IV. 5 Tổ chức đĩa của MS_DOS Chương trình FDISK của hệ điều hành cho phép chia không gian lưu trữ của đĩa cứng (đĩa cơ bản) thành các... có thể không chứa đủ danh sách các block đĩa chứa nội dung của một file Mặt khác nếu block chỉ mục của file bị hỏng thì hệ điều hành không thể đọc được file, mặc dầu nội dung của file vẫn còn tồn tại trên các block đĩa IV. 1.5 An toàn trong quản lý tập tin Bảo toàn dữ liệu tập tin: Một hệ quản trị file phải cung cấp những cơ chế thích Chương 4: Quản lý file và đĩa 158 hợp để phục hồi nội dung của file... tin trên đĩa Các thông tin liên quan đến một tập tin trên đĩa được chứa ở vùng hệ thống • Vùng hệ thống: bao gồm các đoạn chương trình, các thông tin hệ thống, các thông tin liên quan đến các tập tin/ thư mục trên đĩa mà hệ điều hành dùng để quản lý việc lưu trữ tập tin/ thư mục trên đĩa sau này Cụ thể nó bao gồm các thành phần sau đây: Boot sector, FAT1, FAT2 và Root Directory Sau đây chúng ta sẽ khảo... 200h) Và bootstrap loader sẽ thực hiện nhiệm vụ của nó Chương 4: Quản lý file và đĩa 173 Dựa vào boot sector ta biết được nhiều thông tin về đĩa như: loại FAT, nhãn đĩa, số sector trên một cluster, số byte trên một sector, … Và từ đó ta cũng có thể tính được dung lượng của đĩa tính theo byte: Tổng số sector trên một tập đĩa * số byte trên một sector Ví dụ: Để in ra loại FAT đang sử dụng trên đĩa mềm... sử dụng hệ thống file FAT12 và FAT16, hệ điều hành Windows9x sử dụng hệ thống file FAT32 và CDFS, hệ điều hành Windows NT và Windows 2000 sử dụng các hệ thống file FAT12, FAT16, FAT32, CDFS (CD_ROM File System, UDF (Universal Disk Format) và NTFS (New Technology File System) IV. 3 Các điều khiển hệ thống tập tin Các điều khiển hệ thống tập tin (FSD: File system driver) quản lý các dạng thức hệ thống file... có 2 loại FSD: Local FSD và Network/ Remote FSD Local FSD: quản lý các volume được nối trực tiếp với máy tính Network/ Remote FSD: cho phép người sử dụng và chương trình của người sử dụng truy cập dữ liệu trên các volume được nối với một máy tính ở xa Chương 4: Quản lý file và đĩa 164 Local FSD (FSD cục bộ): Các Local FSD bao gồm các tập tin: Ntfs.sys, Fastfat.sys, Cdfs.sys và Raw FSD (được tích hợp... block đĩa để chứa danh sách các block đĩa chứa nội dung của một tập tin nào đó, block đĩa này được gọi là block chỉ mục Trong hình trên block 11 là chỉ mục của file A, block 8 là chỉ mục của file A Như vậy chỉ cần thiết kế một con trỏ, tại phần tử trong bảng chỉ mục, trỏ tới block chỉ mục của tập tin trên đĩa là hệ điều hành có thể quản lý được danh sách các block đĩa chứa nội dung của một tập tin Với ... kiểu tập tin khác như: tập tin thường, tập tin thư mục, tập tin có ký tự đặc biệt, tập tin khối Tập tin thường tập tin text hay tập tin nhị phân chứa thông tin người sử dụng Tập tin thư mục tập tin. .. đọc file, nội dung file tồn block đĩa IV. 1.5 An toàn quản lý tập tin Bảo toàn liệu tập tin: Một hệ quản trị file phải cung cấp chế thích Chương 4: Quản lý file đĩa 158 hợp để phục hồi nội dung... dung tập tin trước hết chương trình, tiến trình người sử dụng (kể người sử dụng) phải thực thao tác mở tập tin Khi nhận yêu cầu mở tập tin phận quản lý tập tin hệ điều hành đọc nội dung tập tin