* Khái niệm
Cấu trúc thư mục là cấu trúc dùng để quản lý tất cả các file trên đĩa. Cấu trúc thư mục cũng được ghi trên đĩa và gồm nhiều mục (Directory Entry), mỗi mục lưu thơng tin của một file. Thơng thường thơng tin file gồm cĩ thuộc tính file và danh sách các số hiệu khối đĩa lưu trữ file. Khi một file được truy xuất, hệđiều hành tìm tên file trong cấu trúc thư mục, nếu tìm thấy sẽ lấy thuộc tính và các số hiệu khối lưu trữ file đưa vào một bảng trong bộ nhớ (bảng open-files), các lần sau khi truy xuất file hoặc thay đổi thơng tin file thì khơng cần truy xuất đĩa mà truy xuất bảng open-files trong bộ nhớ chính và sẽ nhanh hơn nhiều. Hệđiều hành cũng cần cung cấp các lời gọi hệ thống để thao tác trên thư mục tương tự như đối với file. Các thao tác trên thư mục cĩ thể là: Create, Delete, Open, Close, Read, Rename, Link, Unlink,…
Hình 2.16: mơ hình cấu trúc thư mục, mỗi mục trong cấu trúc thư mục quản lý một file hoặc thư mục con F 1 F 2 F 3 F 4 F n Dir Structure Files mục 0 mục 1 …. mục n Cấu trúc thư mục
TenFile ThuocTinh ViTriLuuTru Một mục trong cấu trúc thư mục
* Cấu trúc thư mục
+ Thư mục một cấp: (Single Level Directory)
Cấu trúc thư mục sẽ chứa thuộc tính của tất cả các file của tất cả người dùng. Cấu trúc này đơn giản nhưng gây ra khĩ khăn do đặt tên file khơng được trùng nhau và người sử dụng khơng thể phân nhĩm cho file cũng như tìm kiếm chậm khi số lương file nhiều.
Hình 2.17: cấu trúc thư mục một cấp + Thư mục hai cấp: (Two Level Directory)
Sự bất tiện chủ yếu của thư mục một cấp là nhầm lẫn về tên file giữa những người dùng. Giải pháp là tạo thư mục riêng (user file directory:UFD) cho mỗi user. Mỗi UFD cĩ cấu trúc giống nhau nhưng chỉ quản lý file của một user, như vậy các user cĩ thể cĩ file cùng tên nhưng user chỉ được truy xuất các file trong thư mục của user đĩ. Giải pháp này tìm kiếm file nhanh hơn, nhưng vẫn khơng cĩ khả năng nhĩm file. Trong hình 2.5, user1 muốn truy xuất file test thì sử dụng đường dẫn: user1/test.
Hình 2.18: cấu trúc thư mục hai cấp + Thư mục đa cấp: (Tree-Structured Directory)
Cĩ một thư mục gọi là thư mục gốc (root directory) và trong đĩ cĩ các thư mục con. Mỗi user cĩ thể tạo những thư mục con riêng, trong mỗi thư mục con chứa file và cĩ thể chứa thư mục con khác. Cấu trúc này cho phép user cĩ thể truy xuất đến file của user khác thơng qua quyền được cấp và cho phép tìm kiếm hiệu quả hơn, cũng như cĩ khả năng phân nhĩm file.
Hệđiều hành cĩ thể chia đĩa cứng thành nhiều phân vùng (partition), mỗi phân vùng gồm nhiều từ trụ (cyclinder) liên tiếp, hoặc tập hợp nhiều đĩa cứng thành một phân vùng. Mỗi phân vùng sẽ cĩ cấu trúc thư mục riêng để quản lý các tập tin trong phân vùng đĩ.
Hình 2.20: tổ chức phân vùng đĩa
* Bảng thư mục (Directory Table)
Bảng thư mục là một dạng cài đặt bằng dãy một chiều của cấu trúc thư mục (Directory Structure). Bảng thư mục cĩ nhiều mục (directory entry), mỗi mục lưu trữ thơng tin của một file/thư mục, thơng tin file gồm thuộc tính của file và địa chỉ trên đĩa của tồn bộ file hoặc số hiệu của khối đầu tiên chứa file hoặc là số I-node của file. Mỗi đĩa cĩ một bảng thư mục gọi là bảng thư mục gốc, cài đặt ở phần đầu của đĩa và cĩ thể cĩ nhiều bảng thư mục con.
Ví dụ:
+ Mỗi mục trong bảng thư mục của hệđiều hành MSDOS/WINDOWS (FAT) chỉ lưu số hiệu khối đầu tiên của mỗi file/thư mục. Khi đĩ để biết số hiệu các khối cịn lại của file/thư mục, hệ điều hành sẽ dùng bảng cấp phát file (bảng FAT).
Hình 2.21: cấu trúc một mục trong bảng thư mục của MSDOS/WINDOWS (FAT)
+ Mỗi mục trong bảng thư mục của hệđiều hành CP/M chứa tất cả các số hiệu khối chứa file/thư mục, khi đĩ khơng cần dùng bảng cấp phát file (bảng FAT)
+ Mỗi mục trong bảng thư mục của hệđiều hành UNIX lưu số hiệu I-node
Hình 2.23: cấu trúc một mục trong bảng thư mục của UNIX