Phục vụ file có trạng thái và thiếu trạng thá

Một phần của tài liệu Cơ bản về Hệ điều hành (Trang 161 - 163)

τ Đảo độ − u tiên

6.2.4.Phục vụ file có trạng thái và thiếu trạng thá

Phiên dãy thao tác file giống nh− kết nối dãy hỏi/đáp giữa khách và phục vụ file. Kết nối về bản chất là yêu cầu thiết lập và kết thúc một phiên truyền thông. Hơn nữa, tồn tại thông tin trạng thái t−ơng ứng với mỗi phiên file (kết nối). Một số thông tin trạng thái điển hình là:

- Các file đ−ợc mở và khách của chúng, - Đặc tả file và thẻ file,

- Con trỏ định vị file hiện thời, - Thông tin gắn,

- Tình trạng khóa, - Khóa phiên,

- Cache hoặc buffer.

Thông tin trạng thái đ−ợc duy trì động trong khi file đang đ−ợc sử dụng. Chúng khác với thuộc tính file (thể hiện tính chất tĩnh của file). Vì lý do gì và khi nào thông tin trạng thái là cần đến? Bắt đầu từ thông tin đầu tiên trong danh sách trên, trạng thái buộc phải chứa file nào đang đ−ợc mở và khách nào mở. Thông tin này đ−ợc th−ờng trực hoặc tại khách hoặc tại phục vụ hoặc cả hai. Tiếp theo, nhằm tránh lặp việc gọi dịch vụ th− mục cho mỗi lần truy nhập file, một đặc tả file và thẻ file của nó đ−ợc cho đối với mỗi file mở và duy trì tại nhân của khách. Đối với những lần truy nhập tiếp theo, một con trỏ định vị file ẩn t−ơng ứng với mỗi phiên file mở. Khi một file chia xẻ

đ−ợc mở bởi nhiều khách, mỗi phiên file mở có con trỏ định vị file hiện thời của nó, ngoại trừ tr−ờng hợp thừa kế. Trong những tr−ờng hợp này, clinet thừa kế file từ cha của nó và con trỏ định vị file đ−ợc chia xẻ cho QT cha và con. Con trỏ định vị file đ−ợc bảo quản cùng với thông tin về file mở. Kế tiếp trong danh sách là thông tin gắn. Nhân của khách duy trì thông tin kết nối tới file ở xa. Phục vụ không cần biết file đ−ợc gắn bởi khách nào mỗi khi file của nó đ−ợc gắn.

Để điều phối chia xẻ file, th−ờng muốn cho phép khách có năng lực khóa file. Do khóa là thông tin toàn cục chia xẻ bởi các khách, hợp lý là phục vụ file quản lý thông tin này. Một ví dụ khác về chia xẻ thông tin là khóa phiên trong truyền thông. Tồn tại một số khái niệm khi dùng khóa phiên để truyền thông an toàn giữa khách và phục vụ file. Khi xem xét trạng thái của một kết nối giữa khách với phục vụ file, đơn giản giả thiết khóa phiên là một bí mật thỏa thuận giữa phục vụ file và khách của nó, và khóa là thông tin trạng thái. Một số giao thức truyền thông an toàn hiện có dùng khóa phiên một lần. Trong tình huống này thì không cần bảo quản khóa nh− phần thông tin trạng thái. Cuối cùng, cache và buffer có thể đ−ợc dùng hoặc tại khách hoặc phục vụ nhằm rút ngắn độ trễ. Thi hành cache và buffer là hữu dụng khi yêu cầu truy nhập đ−a ra từ các QT cục bộ. Dữ liệu trong cache và buffer là thông tin trạng thái của kết nối.

Rõ ràng là thông tin trạng thái của phiên file có thể đ−ợc phân tán giữa khách và phục vụ file truyền thông. Việc phân chia thông tin trạng thái có ảnh h−ớng tới hiệu năng và quản lý của hệ thống file phân tán. Rõ ràng là, khách đòi hỏi duy trì những thông tin này. Cái gì mà phục vụ file cần đến đối với một phiên mở để phiên đ−ợc xác định. Một phục vụ file đ−ợc gọi là đủ trạng thái nếu nó duy trì thông tin trạng thái nào đó và đ−ợc gọi là thiếu trạng thái nếu nó không duy trì một thông tin nào. Khi càng biết nhiều về kết nối thì càng mềm dẻo khi thực hiện điều khiển trên nó. Tuy nhiên, ý niệm về trạng thái là cái mà cần tránh xa càng nhiều càng hợp lý trong thiết kế hệ phân tán. Phục vụ file thiếu trạng thái là dễ dàng thi hành hơn và là thứ lỗi hơn theo hỏng hóc khách và chủ so với việc l−u giữ vết của thông tin trạng thái. Sự thỏa hiệp nằm giữa mềm dẻo và đơn giản. Do hỏng hóc là th−ờng xuyên hơn trong hệ phân tán, nhiều thi hành DFS chọn thi hành dịch vụ file thiếu trạng thái. Hỏng hóc khách không ảnh h−ởng tới phục vụ file. Sụp đổ của dịch vụ file thiếu trạng thái dễ khôi phục lại và đ−ợc các khách khác nhận biết nh− là chậm trễ trả lời (hoặc không có trả lời) mà không cần phá vỡ phiên của chúng. Đối với dịch vụ file thiếu trạng thái, mỗi yêu cầu file tới phục vụ cần chứa thông tin đầy đủ về thẻ file, con trỏ định vị, khóa phiên, và các thông tin cần thiết khác. Thi hành phục vụ file thiếu trạng thái cần nhắm tới các vấn đề sau đây:

(1) Nhu cầu bất biến: Phục vụ file làm gì khi khách lặp hợp lý một yêu cầu do hỏng hóc tr−ớc đây (không nhận đ−ợc trả lời) của phục vụ ? Thực tế hay không khi cấu trúc mọi truy nhập file nh− thao tác bất biến ?

(2) Cơ chế khóa file: Làm cách nào các khách chia xẻ thi hành cơ chế khóa file dựa trên phục vụ file thiếu trạng thái ? Nên chăng cơ chế khóa file đ−ợc tích hợp vào dịch vụ giao dịch ?

(3) Quản lý khóa phiên: Làm cách nào để khóa phiên đ−ợc sinh và đ−ợc duy trì giữa khách và phục vụ file thiếu trạng thái truyền thông ? Có thể dùng khóa phiên một- lần cho mỗi lần truy nhập file ?

(4) Tính nhất quán cache: Phục vụ file có phải chịu trách nhiệm điều khiển tính nhất quán cache giữa các khách ? Ngữ nghĩa chia xẻ nào đ−ợc hỗ trợ ?

Những biện luận trên đây chỉ ra rằng, về khái niệm phục vụ file thiếu trạng thái là đơn giản và hấp dẫn, thì trong thi hành thực tế một vài thông tin trạng thái tối thiếu cần đ−ợc phục vụ duy trì. Nhu cầu bất biến và vấn đề khóa phiên chia xẻ đã đ−ợc chỉ ra

trong ch−ơng 4 khi bàn luận về thi hành RPC. Giải pháp này đ−ợc áp dụng tới phục vụ file nếu lời gọi thủ tục từ xa đ−ợc dùng để yêu cầu dịch vụ file. Khóa file và nhất quán cache đ−ợc bàn luận tiếp.

Một phần của tài liệu Cơ bản về Hệ điều hành (Trang 161 - 163)