τ Đảo độ − u tiên
6.2.1 File và hệ thống file
Với ng−ời dùng, file gồm 3 thành phần logic
Tên file Thuộc tính file Dữ liệu
File đ−ợc tạo ra gắn với tên t−ợng tr−ng (tên). Khi truy cập file, tên file đ−ợc ánh xạ tới số hiệu file duy nhất (ufid hoặc thẻ file), cho phép định vị đ−ợc file vật lý. Đây là chức năng nguyên thủy của dịch vụ th− mục trong hệ thống file. Các thuộc tính file điển hình là thông tin về chủ nhân, kiểu, kích th−ớc, tem thời gian và quyền truy nhập file. Các đơn vị dữ liệu trong file đ−ợc tổ chức theo cấu trúc phẳng dòng byte hoặc dãy tuần tự các khối, hoặc theo một lựa chọn khác, là cấu trúc phân cấp các bản ghi có chỉ số. Phụ thuộc vào cấu trúc file hạ tầng mà file đ−ợc truy cập theo một trong ba cách:
(1) Truy nhập tuần tự: Trong truy nhập tuần tự, với mỗi file đã mở, hệ thống duy trì
một con trỏ định vị file nhằm chỉ dẫn vị trí của đơn vị dữ liệu tiếp theo sẽ đ−ợc truy cập. Con trỏ file không phải một phần của thuộc tính file; thực chất nó là phần của trạng thái QT (dù cho con trở file đ−ợc chia xẻ giữa các QT liên quan). Mở file khởi tạo con trỏ file và bắt đầu phiên làm việc, truy nhập file tiếp theo đ−ợc diễn ra cho đến khi file đ−ợc đóng. Phiên làm việc t−ơng tự kết nối trong truyền thông mạng định h−ớng kết nối.
(2) Truy nhập trực tiếp: Khác với truy cập tuần tự (vị trí đơn vị dữ liệu đọc/ghi đã xác định), trong truy nhập trực tiếp cần chỉ dẫn rõ ràng đơn vị dữ liệu kích th−ớc-cố định bằng số hiệu khối của chúng. Mỗi thao tác đọc/ghi chứa thông tin địa chỉ đầy đủ và độc lập với thao tác đọc/ghi khác. Truy nhập file giống nh− truyền thông mạng không kết nối. Mở file là không nghiêm ngặt ngoại trừ phiên (xem trong 6.2.5) cần có ngữ nghĩa mong muốn để chia xẻ file. Bổ sung tới định nghĩa phiên, hầu hết các hệ thống file dùng lời gọi hệ thống open để thực hiện ánh xạ một lần tên file tới trình bày máy nội tại cho truy nhập file về sau và thu đ−ợc quyền truy nhập file. Đối với ph−ơng pháp truy nhập trực tiếp, thao tác open có chức năng giống định vị file look-up hơn.
(3) Truy nhập tuần tự số hiệu (chỉ số kế tiếp): Các đơn vị dữ liệu đ−ợc địa chỉ trực tiếp bằng số hiệu (khoá) gắn với mỗi khối dữ liệu. Truy nhập tuần tự số hiệu đòi hỏi duy trì chỉ số tìm kiếm trong file, cần tìm đ−ợc định vị khối cho mỗi truy nhập. Tuỳ thuộc vào dung l−ợng và tổng phí thời gian, truy nhập chỉ số th−ờng đ−ợc dùng đối với hệ thống
file lớn trong hệ thống máy tính lớn. Để giảm kích th−ớc số hiệu tìm kiếm, thông th−ờng dùng sơ đồ hai mức, là ph−ơng pháp truy nhập chỉ số kế tiếp. Một dãy cặp khóa/đối t−ợng đ−ợc bảo quản trong khối dữ liệu lớn. Cặp khóa/đối t−ợng đ−ợc định vị khi dùng số hiệu tìm kiếm để định vị khối chứa cặp này, sau đó truy nhập dữ liệu trên khối cho đến khi tìm thấy cặp khóa/đối t−ợng. Thao tác hai mức này tổ hợp các ph−ơng pháp truy nhập trực tiếp và tuần tự t−ơng tự nh− tìm thông tin theo số hiệu trong một quyển sách. Cách thức này đ−ợc dùng đối với file dữ liệu lớn, trong đó các bản ghi của file đ−ợc giữ trong bộ nhớ phụ còn bảng số hiệu đ−ợc duy trì trong bộ nhớ nguyên thủy để tìm kiếm hiệu quả.
Cấu trúc file dãy có lợi ích và thông dụng hơn do tính đơn giản và t−ơng đồng với các thiết bị l−u giữ thi hành file. Ví dụ, Unix coi rằng file là dòng kí tự của ch−ơng trình ứng dụng và dãy các khối kích th−ớc cố định trong hệ thống file. Cả hai ph−ơng pháp truy nhập tuần tự và trực tiếp đ−ợc hỗ trợ. Các ph−ơng pháp truy nhập khác đ−ợc xây dựng dựa trên nền cầu trúc file dãy.
Dịch vụ th− mục Giải pháp tên, thêm và xoá file
Dịch vụ xác thực năng lực và/hoặc danh sách điều khiển truy nhập giao dịch Quản lý đồng thời và nhân bản
Dịch vụ file
cơ sở đọc/ghi file và nhận/đặt thuộc tính Dịch vụ hệ thống Quản lí thiết bị, cache, khối
Hình 6.1 Thành phần chính trong hệ thống file
Hệ thống file tổ chức và cung cấp dịch vụ truy nhập và bảo vệ cho tập hợp file. Bốn thành phần dịch vụ chức năng chính: th− mục, xác thực, file và hệ thống. Hệ thống file hỗ trợ giao dịch lại phân chia dịch vụ file thành dịch vụ giao dịch và dịch vụ file cơ sở. Dịch vụ giao dịch có bài toán thi hành riêng (xem 6.3.3). Hình 6.1 cho ví dụ về chức năng đ−ợc mỗi dịch vụ cung cấp. Tổ chức file dữ liệu trong hệ thống file có thể là dãy hoặc phân cấp, t−ơng tự nh− lựa chọn cấu trúc nội tại của mỗi file riêng. Tuy nhiên, tự nhiên hơn khi tổ chức file theo nhiều mức, nhận đ−ợc kết quả là th− mục phân cấp và cấu trúc tên. File đ−ợc đặt tên và truy nhập theo tên đ−ờng dẫn phân cấp chẳng hạn /chow/lecture/file, nh− hình 6.2.
Để truy nhập file, đầu tiên dùng dịch vụ th− mục để định vị file. Dịch vụ th− mục ánh xạ tên phân cấp tới địa chỉ là hoàn toàn độc lập với thao tác file thực sự. Do đó tách dịch vụ th− mục từ dịch vụ file nhằm đạt đ−ợc tính đơn thể và khả chuyển. Ưu điểm chính của việc tách các dịch vụ là cho phép một dịch vụ file chung hỗ trợ đ−ợc nhiều
root
chow johnson
book paper lecture paper report
process file PRlock Btree
kiểu cấu trúc th− mục khác nhau. Th− mục là "file" chứa tên và địa chỉ của các file và th− mục con. Thao tác file th− mục là tra cứu, thêm, xóa các thực thể th− mục (điểm vào) trỏ tới các file. Phục vụ th− mục là khách của dịch vụ file để cập nhật file.
Cập nhật file phải an toàn - đó là vai trò của dịch vụ xác thực. Vị trí logic của dịch vụ xác thực cần ở giữa dịch vụ th− mục và dịch vụ file để bảo vệ file hay ở tr−ớc dịch vụ th− mục để bảo vệ th− mục. Trong thi hành thực sự (1) Dịch vụ xác thực đ−ợc trộn với dịch vụ file: dịch vụ file duy trì thông tin điều khiển truy nhập. Dịch vụ th− mục đơn thuần thực hiện giải pháp tên và cung cấp thẻ file để định vị file đ−ợc đòi hỏi trong một phục vụ file. Thao tác file đ−ợc kiểm tra để xác thực khách đ−a ra thao tác đó; (2) Dịch vụ xác thực đ−ợc trộn với dịch vụ th− mục: Dịch vụ th− mục đ−ợc bổ sung giải pháp tên để thực hiện việc kiểm tra điều khiển truy nhập. Dịch vụ th− mục duy trì thông tin điều khiển truy nhập file (và th− mục). Nếu xác thực khách để mở file đã đ−ợc kiểm tra, khách nhận đ−ợc một thẻ file và thẻ đặc quyền không làm giả để sử dụng file của khách. Đối với các truy nhập tiếp theo của dịch vụ file thì chỉ có thẻ đặc quyền là có giá trị đối với phục vụ file. Định danh khách là không thích hợp tới phục vụ file, do thẻ đặc quyền đã xác thực khách. Quy tắc xác thực truy nhập đ−ợc thảo luận chi tiết trong phần an toàn hệ điều hành.
Dịch vụ file cần cung cấp các thao tác file cơ bản là read/write khối dữ liệu và get/set thuộc tính file. Do file cần đ−ợc khởi tạo tr−ớc khi đ−ợc dùng và cần đ−ợc xoá khi không cần thiết, dịch vụ file cũng cần hỗ trợ thao tác tạo và xóa file. Tạo/xóa file bao gồm cả việc bổ sung và xóa bỏ thực thể trong th− mục nhờ dịch vụ th− mục. Chúng liên quan với dịch vụ hệ thống bên d−ới là định vị và gỡ bỏ (giải định vị) bufer và file. Dịch vụ file trở thành khách của dịch vụ th− mục và dịch vụ hệ thống.
Thao tác mở file là một thao tác đáng quan tâm trong dịch vụ file. Thao tác mở file bao gồm khởi tạo phiên làm việc các thao tác file lên một file. Nó t−ơng tự việc thiết lập kết nối khách tới phục vụ file. Dịch vụ th− mục đ−ợc thao tác mở file tra cứu chỉ một lần duy nhất. Thẻ file nhận đ−ợc khi tra cứu dịch vụ th− mục và giữ tại nhân của khách. Các thao tác read/write tiếp theo đ−ợc gửi tới dịch vụ file trực tiếp khi dùng thẻ file. Nhân l−u đ−ờng đi của kết nối, bao gồm cả con trỏ định vị file cho thao tác read/write tiếp theo. Nhiều hệ thống file còn ngầm định rằng thao tác mở file sẽ khởi tạo file mới nếu nó ch−a tồn tại. Thao tác đóng file kết thúc một phiên mở. Thao tác mở file là không thực sự cần thiết nếu quan hệ khách và phục vụ là không kết nối. Trong tr−ờng hợp nh− thế, read và write là các thao tác thực hiện ("ăn") ngay. Mỗi yêu cầu từ khách tới phục vụ file chứa thông tin cần thiết để truy nhập file.
Các dịch vụ th− mục, xác thực và file là giao diện ng−ời dùng tới hệ thống file. Dịch vụ hệ thống là giao diện hệ thống file tới phần cứng và cần trong suốt tới ng−ời dùng. Dịch vụ hệ thống cung cấp các chức năng chính yếu gồm ánh xạ địa chỉ lôgic tới địa chỉ khối vật lý, t−ơng tác tới các dịch vụ mức thiết bị đề định vị/giải phóng không gian file và thao tác file read/write thực sự. Dịch vụ hệ thống đ−ợc hỗ trợ nhờ lời gọi hệ thống tới nhân. Cuối cùng, file trong hệ thống file có thể đ−ợc cache nhằm nâng cao hiệu năng và đ−ợc nhân bản để tăng tính tin cậy. Điều quan trọng là quản lý cache và nhân bản trở thành các dịch vụ hệ thống bản chất khác của hệ thống file. Cache và nhân bản là phức tạp hơn khi chia xẻ file trong hệ phân tán. Hai vấn đề quan trọng này trong thiết kế hệ phân tán đ−ợc bàn luận trong phần sau.