Chương 6 HỆ THỐNG QUẢN LÝ TẬP TIN
6.2 Quản lý hệ thống file
6.2.1 Tập tin
Tên tập tin : Tập tin là một cơ chế trừu tượng và để quản lý mỗi đối tượng
phải cĩ một tên. Khi tiến trình tạo một tập tin, nĩ sẽ đặt lại một tên, khi tiến trình kết thúc tập tin vẫn tồn tại và cĩ thể được truy xuất bởi các tiến trình khác với tập tin đĩ.
Cách đặt tên tập tin của mỗi hệ điều hành là khác nhau, đa số các hệ điều hành cho phép sử dụng 8 ký tự để đặt tên như hệ điều hành DOS, trong Win9x số ký tự cĩ thể lên tới 255 .
Tên của tập tin cĩ thể phân biệt chữ hoa hay chữ thường. Hệ điều hành DOS khơng phân biệt chữ hoa hay chữ thường, UNIX phân biệt chữ hoa hay chữ thường. Nhiều hệ thống hỗ trợ cách đặt tên bao gồm 2 phần : phần chính và phần mở rộng, phần mở rộng tập tin để quy định dặc điểm tập tin đĩ. Giữa phần chính và phần mở rộng phải cĩ dấu ‘.’. Nhờ phần mở rộng mà các chương trình thực hiện sẽ tự động nhận diện với các file trong các thành phần dữ liệu thực thi của nĩ.
Cấu trúc của tập tin:
Gồm 3 loại :
- Dãy tuần tự các byte khơng cấu trúc (như các dữ liệu của media trên CDROM).
- Dãy các record cĩ chiều dài cố định như tập tin các cơ sở dữ liệu.
- Cấu trúc cây: gồm cây của những record, khơng cần thiết cĩ cùng độ dài, mỗi record cĩ một trường khố giúp cho việc tìm kiếm nhanh hơn.
Kiểu tập tin:
Các hệ điều hành hỗ trợ cho nhiều loại tập tin khác nhau bao gồm các kiểu như : tập tin thường, thư mục, tập tin cĩ ký tự đặc biệt, tập tin khối.
- Tập tin thường: là tập tin text hay tập tin nhị phân chứa thơng tin người sử
dụng.
- Thư mục : là những tập tin hệ thống dùng để lưu giữa cấu trúc của 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 các thiết bị
nhập xuất tuần tự như màn hình , máy in , mạng.
- Tập tin khối : dùng để truy xuất trên thiết bị đĩa.
Tập tin thường được chia thành 2 loại là tập tin văn bản và tập tin nhị phân.
Tập tin văn bản: chứa các dịng văn bản cuối dịng cĩ ký hiệu kết thúc dịng
(enter). Mỗi dịng cĩ độ dài khác nhau . Ưu điểm của kiểu tập tin này là nĩ cĩ thể hiển thị, in hay soạn thảo với một chương trình soạn thảo thơng thường. Đa số các dùng tập tin văn bản để nhập xuất, nĩ cũng dễ dàng làm đầu vào và đầu ra cho cơ chế pipeline.
Tập tin nhị phân: cĩ cấu trúc tập tin khác tập tin văn bản. Trong các hệ điều
hành tập tin thực thi là tập tin nhị phân. Thí dụ cấu trúc một tập tin thực thi như UNIX. Số hiệu Kích thước TEXT Kích thước dữ liệu Kích thước BSS Kích thước ST Đầu vào Vùng TEXT Vùng dữ liệu Bit định vị Bảng đối tượng Header Đối tượng đơn thể Đối tượng đơn thể Header Header Đối tượng đơn thể Cờ Tên đơn thể Ngày Người sở hữu Bảo vệ Kích thước
Truy xuất tập tin : cĩ hai kiểu truy xuất tập tin là truy xuất tuần tự hay truy
xuất ngẫu nhiên.Truy xuất tuần tự là đọc các byte trong tập tin từ đầu đến cuối . Truy xuất kiểu này thuận lợi cho kiểu băng từ. Truy xuất tuần tự cĩ ích trong nhiều ứng dụng đặc biệt là truy xuất với các hệ CSDL. Truy xuất ngẫu nhiên được tổ chức theo chỉ mục nên việc truy xuất rất nhanh. Ngồi ra, hiện nay cĩ kiểu truy xuất kết hợp giữa tuần tự và ngẫu nhiên ( tổ chức trong hệ thống UNIX).
Thuộc tính tập tin:
Thuộc tính tập tin quy định mức truy nhập của người sử dụng các thao tác thơng thườøng như : đọc, viết, xố, bổ sung.. và mức độ bảo vệ file là : đặt tên, đặt mật khẩu , quyền truy nhập. Thuộc tính tập tin phải đảm bảo tính an tồn dữ liệu như : lưu trạng thái cập nhật, lưu trữ file theo các thế hệ… Các thuộc tính được kê bảng sau:
Tên thuộc tính Ý nghĩa
Bảo vệ Quyền truy xuất
Mật khẩu Mật khẩu để truy xuất tập tin
Người tạo Id của người tạo tập tin
Người sở hữu Người sở hữu hiện tại
Chỉ đọc 0: ghi/đọc 1: chỉ đọc
Aån 0: bình thường , 1: ẩn ( khơng hiển thị khi liệt kê)
Hệ thống 0: bình thường , 1 : tập tin hệ thống
Lưu trữ 0: đã được backup , 1 cần backup
ASCII/binary 0: tập tin text , 1: tập tin nhị phân
Truy xuất 0: tuần tự , 1: ngẫu nhiên
Temp 0: bình thường , 1: bị xố khi kết thúc
Khố 0 : khơng khố , 1:khố
Độ dài mỗi record Số byte trong record
Giờ tạo Ngày và giờ tạo tập tin
Thời gian truy cập
cuối cùng Ngày, giờ truy xuất tập tin gần nhất.
Thời gian thay đổi
cuối cùng Ngày, giờ thay đổi tập tin gần nhất
Kích thước tập tin Số byte của tập tin
Kích thước tối đa Số byte tối đa của tập tin
6.2.2 Thư mục
Hệ thống quản lý thư mục theo cấp bậc
Một thư mục thường chứa một số entry, mỗi entry cho một tập tin . Một entry chứa tên tập tin, thuộc tính và địa chỉ trên đĩa lưu trữ dữ liệu hay một entry chỉ chứa tên tập tin và một con trỏ, tới một cấu trúc, trên đĩ cĩ thuộc tính và vị trí lưu trữ của tập tin.
Khi một tập tin được mở, hệ điều hành tìm trên một thư mục của nĩ cho tới khi tìm thấy một tập tin được mở. Sau đĩ xác định địa chỉ lưu trữ trên đĩa và đưa vào một bảng trong bộ nhớ chính. Những truy xuất được thực hiện trên bộ nhớ chính.
Số lượng thư mục trên mỗi hệ thống là khác nhau.
Các hệ điều hành trên thực tế đã tồn tại một số kiểu tổ chức như sau:
- Tổ chức một mức (Single Level Directory ): hệ điều hành chỉ thiết lập một thư mục dùng chung cho các file . Kiểu tổ chức này khơng thuận lợi cho ngưịi sử dụng.
-Tổ chức hai mức: (Two Level Directory ): hệ thống tổ chức hai mức cho thư mục, một mức cho hệ thống, một mức cho người sử dụng.
- Tổ chức theo cấu trúc cây ( Tree Directory ) : trên mỗi ổ đĩa cĩ một thư mục
gốc, trong thư mục gốc cĩ các thư mục con cấp một, trong một thư mục con tồn tại các thư mục con cấp hai .. Cách này tránh được trường hợp xung đột tên nhưng cũng cịn khĩ khăn với người dùng cĩ nhiều tập tin. Người sử dụng muốn nhĩm các ứng dụng lại một cách lơ gic . Từ đĩ hệ thống thư mục theo cấp bậc được hình thành với một mơ hình thư mục cĩ thể chứa tập tin hoặc một thư mục và cứ tiếp tục như vậy hình thành cây thư mục.
Directory
Files
Master File Directory User1 User 2 …………... User n
User File Directory Files
Root Directory
- Tổ chức theo đồ thị khơng chu trình ( Acylic Graph Directory ) kiểu tổ chức này gần giống với tổ chức cây nhưng một thư mục con hoặc file cĩ thể thuộc hai thư mục mẹ khác nhau.
Đường dẫn
Khi một hệ thống tập tin được tổ chức thành một cây thư mục, cĩ hai cách để xác định tên một tập tin. Cách thứù nhất là đường dẫn tuyệt đối, một tập tin được gán một đường dẫn từ thư mục gốc đến tập tin.Ví dụ như : /usr/ast/mailbox.
Dạng thứ 2 là đường dẫn tương đối, dạng này cĩ liên quan đến thư mục hiện hành hay thư mục làm việc. Người sử dụng quy định một thư mục hiện hành. Một tập tin được gán một đường dẫn khi một thư mục bắt đầu từ thư mục hiện hành. Thí dụ thư mục hiện hành là /usr/ast, để truy cập thư mục mailbox thì đơn giản chỉ cần ghi mailbox.
Trong phần lớn hệ thống, mỗi tiến trình cĩ một thư mục hiện hành riêng, khi một tiến trình thay đổi thư mục làm việc và kết thúc , khơng cĩ sự thay đổi để lại trên hệ thống tập tin . Như nếu một hàm thư việc thay đổi đường dẫn và sau đĩ khơng đổi lại sẽ cĩ ảnh hưởng đến tiến trình.
Hầu hết các hệ điều hành đều hỗ trợ hệ thống theo cấp bậc với hai entry đặc biệt cho mỗi thư mục là ‘.’ và ‘..’ . Thư mục ‘.’ Chỉ thư mục hiện hành và thư mục ‘..’ chỉ thư mục cha.
6.2.3 Các chức năng
Tập tin
Tạo: một tập tin được tạo chưa cĩ dữ liệu. Mục tiêu của chức năng này là
thơng báo cho biết rằng tập tin đã được tồn tại và thiết lập một số thuộc tính.
Xố : khi một tập tin khơng cịn cần thiết nữa, nĩ được xố để tăng dung lượng
đĩa. Một số hệ điều hành tự động xố tập tin sau một khoảng thời gian n ngày.
Mở : trước khi sử dụng một tập tin , một tiến trình phải mở nĩ. Mục tiêu của mở
là cho phép hệ thống một số thuộc tính và địa chỉ trong đĩa của bộ nhớ để tăng tốc độ truy xuất.
Đĩng: khi chấm dứt truy xuất, thuộc tính và địa chỉ trên đĩa khơng cịn dùng
nữa , tập tin được đĩng lại để mở rộng vùng nhớ. Một số hệ thống hạn chế tối đa số tập tin mở trong một tiến trình.
Đọc: đọc dữ liệu từ tập tin tại vị trí hiện thời của đầu đọc , nơi gọi sẽ cho biết
cần bao nhiêu dữ liệu và vị trí của buffer lưu trữ nĩ.
Ghi : ghi dữ liệu lên tập tin từ vị trí hiện thời của đầu đọc . Nếu là cuối tập tin
kích thước tập tin sẽ tăng lên , nếu đang ở giữa tập tin, dữ liệu sẽ bị ghi chồng lên.
Thêm : gần giống như ghi nhưng dữ liệu được ghi vào cuối tập tin.
Tìm : dùng để truy xuất tập tin một cách ngầu nhiên . Khi xuất hiện lời gọi hệ thống , vị trí con trỏ đang ở vị trí hiện hành được di chuyển tới vị trí cần thiết. Sau đĩ dữ liệu sẽ được đọc ghi vị trí này.
Lấy thuộc tính : lấy thuộc tính của tập tin cho tiến trình .
Thiết lập thuộc tính: thay đổi thuộc tính của tập tin một thời gian sử dụng.
Đổi tên: thay đổi tên tập tin đã tồn tại.
Thư mục
Tạo: một thư mục được tạo, nĩ rỗng, ngoại trừ ‘.’ vàø ‘..’ được đặt bởi hệ thống. Xố : xố một thư mục rỗng, thư mục ‘.’ vàø ‘..’coi như thư mục rỗng.
Mở : thư mục cĩ thể được đọc. Trước khi thư mục được đọc thì phải mở nĩ. Thí
dụ liệt kê tất cả các tập tin trong thư mục, chương trình liệt kê mở thư mục và đọc ra tên của tất cả tập tin chứa trong đĩ.
Đĩng: khi một thư mục đọc xong, đĩng lại để mở rộng vùng nhớ.
Đọc: lệnh này trả về entry tiếp theo trong thư mục đã mở. Thơng thường cĩ thể
đọc thư mục bằng lời gọi hệ thống read(), lệnh đọc thư mục luơn luơn trả về một entry dưới dạng chuẩn.
Đổi tên: thay đổi tên thư mục đã tồn tại.
Liên kết : cho phép một tập tin xuất hiện nhiều thư mục khác nhau. Khi cĩ yêu
Bỏ liên kết: nếu tập tin chỉ cịn liên kết với một thư mục, nĩ sẽ bị loại bỏ hồn
tồn tồn khỏi hệ thống, nếu nhiều thì nĩ bị giảm chỉ số liên kết.
Tập tin chia sẻ
Khi cĩ nhiều người cùng sử dụng chung một tập tin , họ cần chia seû các tập tin đĩ. Cách chia sẻ thơng thường là tập tin xuất hiện trong các thư mục là như nhau, nghĩa là một tập tin cĩ thể liên kết nhiều thư mục khác nhau.
Để liên kết được một thư mục, mỗi khối liên kết cĩ một cấu trúc dữ liệu riêng và thư mục sẽ trỏ đến cấu trúc này. Một cách khác là hệ thống tạo một tạp tin mới cĩ kiểu LINK, tập tin mới chỉ chứa những đường dẫn của tập tin được liên kết, khi cần truy xuất sẽ dựa trên tập tin LINK để xác định tập tin cần truy xuất, phương pháp này là phương pháp liên kết hình thức.
Ở phương pháp chia sẻ thơng thường việc xác định bao nhiêu mối liên kết là rất khĩ khăn. Ở phương pháp liên kết hình thức khi loại bỏ LINK tập tin khơng bị ảnh hưởng.