Hệ phân tán (phần 2)

PHẦN III

VẤN ĐỀ VÀ GIẢI PHÁP CHO VIỆC SỬ DỤNG TÀI NGUYÊN TRONG HỆ PHÂN TÁN

 

CHƯƠNG I

DỊCH VỤ TÊN VÀ VIỆC ĐỊNH DANH TÀI NGUYÊN

TRONG HỆ THỐNG

  1. Dịch vụ tên

Dịch vụ tên cũng như một dịch vụ khác, được sử dụng bởi những tiến trình client thu được những thuộc tính như địa chỉ của các nguồn tài nguyên,  đối tượng khi tên của chúng được chỉ ra. Đối tượng được đặt tên có thể có nhiều dạng và chúng có thể được quản trị bởi nhiều dịch vụ khác.

Ví dụ: Các tên thường được sử dụng để lưu trữ những địa chỉ và những chi tiết khác của người sử dụng, máy tính, những miền mạng và các dịch vụ…

Những vấn đề thiết kế cơ bản cho dịch vụ tên, như cấu trúc, quản lý không gian tên được nhận biết bởi dịch vụ, và những thao tác mà dịch vụ tên hỗ trợ chỉ ra và minh hoạ trong ngữ cảnh của mô hình dịch vụ tên. Chúng ta luôn nghiên cứu làm thế nào những dịch vụ tên được thi hành, điều khiển sự điều hướng thông suốt trong một tập các tên server khi ánh xạ một tên, lưu trữ dữ liệu tên và sao lưu dữ liệu tên để làm tăng hiệu năng và giá trị.

Những dịch vụ tên.

Một dịch vụ tên lưu trữ một cơ sở dữ liệu ràng buộc giữa một tệp tên nguyên bản và những thuộc tính của đối tượng như những người sử dụng và các máy tính tồn tại bên ngoài bất kỳ một dịch vụ đặc biệt nào. Thao tác chính hỗ trợ một dịch vụ tên là ánh xạ một tên, nghĩa là tra cứu những thuộc tính trong cơ sở dữ liệu từ một tên đã định. Những thao tác thì luôn luôn yêu cầu thiết lập những ràng buộc mới với những tên mới, xoá những ràng buộc, và đưa ra danh sách miền tên. Mặc dù chúng ta nghiên cứu tập hợp của những ràng buộc như một cơ sở dữ liệu, nó được đánh dấu như là một tên toàn cục không phải là những khoá đơn giản nhưng thường có vài thành phần phải được tra cứu trong những bản sao của cơ sở dữ liệu, được gọi là ngữ cảnh.

Quản trị tên được tách ra từ những dịch vụ mở rộng khác là do tính mở của các hệ phân tán. Một trong những hướng nổi bật nhất của vấn đề này là những dịch vụ đặt tên toàn cục.

Ví dụ: Một giao diện tên RPC được dịch thành một địa chỉ server tương đối mà không cần tra cứu trực tiếp trong bản sao, trong hầu hết những hệ thống tập trung, nơi mà dịch vụ được yêu cầu bởi một lời gọi đặc biệt của hệ thống là hoàn toàn tuyệt đối. Đặc biệt hơn, tính mở mang lại những đặc tính sau cho tên riêng biệt từ những dịch vụ khác.

-Tính thống nhất.

 Đặc tính này thường mang đến lợi ích cho việc quản trị các nguồn tài nguyên bởi những máy chủ khác nhau, hoặc những dịch vụ khác nhau xuất hiện cùng lớp với lược đồ tên.

-Tính tích hợp

 Đặc tính này không luôn cần thiết trong phạm vi chia sẻ của một hệ phân tán. Nó chỉ trở nên cần thiết khi có nhu cầu chia sẻ với những hệ thống khác, vì vậy tên các nguồn tài nguyên được thiết lập trong nhiều miền quản trị khác nhau.

– Dịch vụ tên yêu cầu chung

 Những dịch vụ tên được khởi đầu hoàn toàn đơn giản cho tới khi chúng được thiết kế, khi thấy cần thiết ràng buộc các tên với những địa chỉ trong một miền quản trị đơn, tương ứng với một mạng LAN hoặc WAN đơn. Sự liên kết  của các mạng và sự mở rộng phạm vi của các hệ phân tán sinh ra vấn đề ánh xạ tên nhiều hơn.

Dịch vụ tên cung cấp một miền dùng để định danh tài nguyên trong hệ thống. Người sử dụng thông qua các miền để truy cập vào tài nguyên của hệ thống.

Dịch vụ tên duy trì những thông tin cần thiết cho những tên được ánh xạ và cung cấp dịch vụ phân rã tên cho các máy khách. Thiết kế của chúng ảnh hưởng tới hiệu năng, tính co giãn và tính an toàn của hệ phân tán.

Dịch vụ tên cũng cung cấp các bảng ghi tài nguyên để người sử dụng có thể thông qua tên miền truy cập vào tài nguyên của hệ thống.

Bảng ghi tài nguyên: Dữ liệu vùng được lưu trữ bởi tên máy chủ và trong những file. Mỗi bản ghi ánh xạ đến tên miền của nó, ánh xạ này không được chỉ ra. Những thực thể trong bảng ánh xạ đến những chỉ mục đã được đề cập, ngoại trừ những thực thể CNAME giữ một bí danh cho tên trong miền khác, và những thực thể TXT bao gồm những thông tin khác tuỳ ý, lưu trữ lại các tên miền.

Dịch vụ tên cung cấp những dịch vụ tên miền trong hệ phân tán và dịch vụ này cũng giúp người sử dụng thông qua tên miền truy cập vào nguồn tài nguyên của hệ thống. Một tên hoặc một định danh trong hệ phân tán có thể giúp ta định vị được địa chỉ của nguồn tài nguyên hoặc đối tượng. Tên và các định danh cũng góp một phần vào việc bảo vệ các nguồn tài nguyên. Chính vì vậy, vấn đề đặt tên hoặc định danh tài nguyên trong các hệ phân tán đã được đặt ra từ lâu và có một số phương pháp định danh rất hiệu quả để quản lý tài nguyên trong các hệ phân tán.

  1. Định danh

Một tiến trình yêu cầu truy nhập vào một tài nguyên không có tên hoặc định danh, chúng ta phải dùng thuật ngữ tên để tham chiếu đến các tên đó mà những tên này được thông dịch bởi người sử dụng hoặc chương trình. Còn từ định danh là tên được chỉ, được thông dịch hoặc sử dụng chỉ bởi các chương trình.

Chúng ta nói rằng, tên là một ánh xạ khi mà nó được dịch sang một biểu mẫu, trong đó nó có thể thực hiện một thao tác trên nguồn tài nguyên hoặc một đối tượng mà nó tham chiếu. Trong hệ phân tán, một tên được ánh xạ thường dùng để định danh truyền thông cùng với những thuộc tính có thể hữu ích trong truyền thông. Biểu mẫu của định danh truyền thông phụ thuộc vào loại định danh được cung cấp trong hệ thống truyền thông mà nó sử dụng.

Ví dụ: trong truyền thông Internet một định danh truyền thông phải chứa cả hai phần định danh máy trạm (gọi là địa chỉ IP), và số hiệu một cổng truyền thông đặc biệt để định vị các máy trạm đó.

Độ phân giải của tên có thể được dẫn chứng ở vài bước dịch. Ở bước đầu tiên, một tên hoặc một định danh được ánh xạ thành mức định danh thấp, mà nó có thể được sử dụng để định rõ một nguồn tài nguyên khi truyền thông với vài thành phần phần mềm. Ở vài giai đoạn tiếp theo của chuỗi dịch này, một định danh truyền thông được phân chia thành hệ thống truyền thông con mà nó sử dụng, và hệ thống này có thể được sử dụng để truyền một yêu cầu đến người quản trị tài nguyên. Hệ thống truyền thông con phải thực hiện bước dịch xa hơn để phân chia địa chỉ mạng và thông tin luồng mà có thể chấp nhận được với tầng phần mềm mức mạng thấp.

Đặt tên trong hệ phân tán bao gồm các yêu cầu sau:

-Lựa chọn không gian tên thích hợp cho mỗi loại tài nguyên. Một không gian tên thích hợp có thể hữu hạn hoặc vô han, và có thể có cấu trúc hoặc “phẳng”. Mọi tài nguyên quản trị được đặt một tên khác nhau, bất cứ ở đâu khi chúng được định vị. Trong hệ hướng đối tượng, mọi đối tượng được đặt tên đồng nhất, chúng được cung cấp một không gian tên đơn.

-Các tên tài nguyên phải được ánh xạ thành định danh truyền thông. Thông thường điều này được thực hiên bằng cách lưu giữ những bản sao của tên và những bước dịch của nó trong dịch vụ tên. Một vài loại tài nguyên như file, được truy cập thường xuyên, cho nên sự thiết lập tên là tốt nhất ở nơi quản trị tài nguyên. Những tên cục bộ được sử dụng gần đây và những định danh ánh xạ của chúng thường được lưu trữ cục bộ của các máy client theo thứ tự để tránh truyền thông không cần thiết với tài nguyên được quản trị hoặc tên server.

Có nhiều dạng định danh và nhận biết, mỗi dịch vụ hỗ trợ những mục đích cụ thể. Vài định danh được thiết kế trở nên “gần gũi với con người” để người dùng có thể đọc, gọi lại và dùng lại chúng.

Biểu đồ tên có thể được thiết kế để bảo vệ các nguồn tài nguyên mà những nguồn tài nguyên đó nhận dạng từ những truy cập trái phép. Mỗi từ định danh được lựa chọn sao cho sự truy cập là khó khăn cho bất kì tiến trình nào không chứa từ định danh để tiến trình đó được hoạt động lại mà không có sự giúp đỡ từ dịch vụ tên, và dịch vụ tên kiểm tra tính hợp lệ của những tiến trình máy khách để điều chỉnh những từ định danh mà chúng yêu cầu. Những từ định danh thực hiện những yêu cầu này được biết đến như một năng lực tiềm tàng.

Việc đưa vào những địa chỉ mạng hoặc thông tin định vị khác tên và những từ định danh xung đột với những yêu cầu về tính trong suốt làm tăng sự khác biệt giữa tên thuần tuý và những tên khác. Tên thuần tuý là những mẫu bit đơn giản mà không có sự chú thích, chúng phải được ánh xạ bởi những danh sách tên lưu trữ với những định danh truyền thông tương ứng. Những tên khác chứa thông tin về định vị của đối tượng hoặc về đối tượng sử dụng chấp nhận được, chúng có thể được ánh xạ bằng cách thực hiện vài thuật toán trích một định danh truyền thông từ tên. Những tên mà chứa những thông tin nhúng về sự định vị của các nguồn tài nguyên chúng định danh không hợp lệ nếu nguồn tài nguyên mà tên đề cập thay đổi định vị của chúng, nếu chúng được lưu trữ, được cập nhật cơ sở dữ liệu của những tên hợp lệ, và những tên cũ hầu hết không được phân chia lại cho những tài nguyên mới.

 

 

 

 

 

 

 

 

 

CHƯƠNG II

HỆ ĐIỀU HÀNH PHÂN TÁN VÀ VẤN ĐỀ QUẢN LÍ TÀI NGUYÊN

 

  1. Hệ điều hành phân tán

Một mục tiêu quan trọng của việc nghiên cứu và phát triển hệ phân tán là phát triển hệ điều hành phân tán. Chúng ta có thể định nghĩa những mục tiêu hệ điều hành phân tán bằng cách so sánh với những hệ điều hành quy ước như UNIX, một hệ điều hành chuẩn. Một hệ điều hành phân tán là một tập hợp của các thành phần phần mềm, mà nó đơn giản hoá các tác vụ của chương trình và hỗ trợ trên phạm vi lớn nhất có thể của các chương trình ứng dụng. Không giống như các hệ điều hành quy ước, hệ điều hành phân tán có thể điều chỉnh và mở rộng. Các thành phần mới có thể được bổ sung vào hệ điều hành phân tán để đáp ứng những yêu cầu mới của các chương trình ứng dụng. Mô đun trong hệ điều hành phân tán dựa trên sự hỗ trợ của truyền thông giữa các mô đun.

Thiết kế hệ điều hành cho hệ thống máy tính tập trung thường được đề cập đến như một sự đồng nhất, bởi vì tập hợp của những đoạn mà chúng cung cấp cho việc sử dụng trong những chương trình ứng dụng được xác định bởi một giao diện đơn không biến đổi, giống như một hệ thống được gọi là giao diện trong UNIX. Trái lại, thiết kế của hệ điều hành phân tán không cần thiết đồng nhất bởi những chương trình ứng dụng, có thể truy cập bởi nhiều dịch vụ khác nhau, mỗi sự cung cấp của nó là một giao diện thủ tục cho việc truy cập vào các nguồn tài nguyên.

Các nguồn tài nguyên cung cấp cho các chương trình ứng dụng có thể được mở rông bằng cách thêm vào những dịch vụ mới. Sự khác biệt này phản ánh qua đặc trưng của hệ phân tán được goi là tính mở.

Trong hệ thống máy tính tập trung, hệ điều hành là tầng phần mềm chính. Nó quản trị tất cả những tài nguyên cơ bản trong hệ thống, và cung cấp những dịch vụ căn bản cho những chương trình ứng dụng, và người sử dụng. Những dịch vụ này chủ yếu được thực hiện bởi nhân của hệ điều hành trong hệ thống máy tính tập trung.

Trong hệ phân tán, chúng ta phải cung cấp những tiện ích và những dịch vụ khác cho những chương trình ứng dụng theo cách mà những dịch vụ mới có thể được thêm vào một cách thuân tiện. Để làm được việc này, chúng ta phải giới hạn vai trò của nhân trong quản trị tài nguyên cơ bản:

– Cấp phát và bảo vệ bộ nhớ.

– Khởi tạo và lập chương trình cho bộ vi xử lý.

– Truyền thông liên tiến trình.

-Điều khiển thiết bị ngoại vi.

Và chúng ta đưa vào một lớp mới của các thành phần phần cứng gọi là các dịch vụ mở rộng để cung cấp tất cả những nguồn tài nguyên, và những dịch vụ chung khác.

Chúng ta đã nói về các thành phần của hệ điều hành phân tán, và vai trò của hệ điều hành trong hệ phân tán mở. Chúng ta có thể tổng kết những điều trên bằng những đặc tính mở rộng của hệ điều hành phân tán:

Các tác vụ của hệ điều hành có thể làm cho hệ phân tán được lập trình thuận tiện hơn, vì vậy các tác vụ có thể được sử dụng để thực thi trong phạm vi lớn nhất có thể của các chương trình ứng dụng.

Hệ điều hành phân tán thực thi các tác vụ bằng cách thực thi các chương trình ứng dụng trên diện rộng, định hướng trừu tượng tài nguyên trong hệ thống phân tán.

Trong một hệ phân tán mở, hệ điều hành phân tán được thực thi bởi một tập hợp của các nhân, và các máy chủ (các tiến trình máy chủ). Không có sự phân chia rõ rệt giữa hệ điều hành phân tán (hoặc đúng hơn là các dịch vụ mở của nó) và các trình ứng dụng chạy trên nền của hệ phân tán mở đó.

Một hệ điều hành phân tán phải cung cấp những điều kiện thuận lợi gói gọn trong một mô đun, và bảo vệ cấu thành đó, trong khi các máy khách truy cập tài nguyên trên mạng diện rộng. Các nhân và các máy chủ đều quản trị các nguồn tài nguyên:

– Sự đóng gói: Cả nhân và máy chủ đều cung cấp giao diện dịch vụ có lợi cho tài nguyên của chúng, đó là thiết lập những thao tác đáp ứng yêu cầu của các máy khách. Chi tiết của việc quản lý bộ nhớ và các thiết bị để thực thi các nguồn tài nguyên, nên được ẩn đi từ các máy khách, thậm chí ngay cả khi chúng cùng nằm trong một phạm vi.

– Xử lý đồng thời: Các máy khách có thể chia sẻ các nguồn tài nguyên và truy cập vào chúng một cách đồng thời. Quản trị tài nguyên chịu trách nhiệm về tính tương tranh trong suốt.

– Bảo vệ: Các nguồn tài nguyên yêu cầu phải được bảo vệ bởi những truy cập bất hợp pháp.

– Để thực hiện cùng lúc các lời gọi tác vụ liên quan sau:

+ Sự phân giải tên: Máy chủ (hoặc nhân) quản trị một nguồn tài nguyên phải được định vị từ các định danh của nguồn tài nguyên.

+ Truyền thông: Các đối số của thao tác và kết qủa phải được truyền đi từ các nguồn tài nguyên được quản trị đến một mạng hoặc một máy tính cá nhân.

+ Lập biểu: Vấn đề này liên quan đến vấn đề tương tranh, khi một lệnh được thực thi, tiến trình của nó phải được lập biểu trong phạm vi của nhân hoặc máy chủ.

Trong hệ điều hành, nhân có vai trò quan trọng, nó cung cấp những kỹ thuật cơ bản nhất nhưng vẫn mang tính tổng quát, nó có nhiệm vụ quản lý tài nguyên. Máy chủ có thể thích nghi với sự tự động nạp vào, thực thi đòi hỏi  những chính sách quản lý tài nguyên. Chỉ có một vài cơ sở nghiên cứu trong hệ thống phân tán, có thể nói rằng điều khiển bởi một trình đơn thuần nhất trong hệ điều hành phân tán mà mọi máy tính thi hành tương tự như nhân. Một hệ điều hành phân tán phải hiện hành trên mạng với những quy ước: Các nhân của hệ điều hành như là UNIX, mà hầu hết các trạm làm việc thi hành và nhiều ứng dụng được tồn tại.

  1. Nhân của hệ điều hành và việc quản lý tài nguyên

Hệ điều hành có thể được coi như là bộ phân phối tài nguyên của máy tính. Nhiều tài nguyên của máy tính như thời gian sử dụng CPU, vùng bộ nhớ, vùng lưu trữ tập tin, thiết bị nhập xuất v.v… Được các chương trình yêu cầu để giải quyết vấn đề. Hệ điều hành hoạt động như một bộ quản lý các tài nguyên, phân phối chúng cho các chương trình và người sử dụng khi cần thiết. Do có rất nhiều yêu cầu, hệ điều hành phải giải quyết vấn đề tranh chấp và phải quyết định cấp phát tài nguyên cho những yêu cầu theo thứ tự nào để hoạt động của máy tính là hiệu quả nhất. Một hệ điều hành cũng có thể được coi như là một chương trình kiểm soát việc sử dụng máy tính, đặc biệt là các thiết bị nhập xuất.

Nhân là một chương trình được phân biệt bởi các mã chương trình của nó, được thực thi thật sự với những đặc quyền truy cập hoàn toàn vào các nguồn tài nguyên vật lý trên các máy chủ cài đặt hệ điều hành với nhân đó. Đặc biệt, nhân có thể điều khiển đơn vị quản lý bộ nhớ và thiết lập các thanh ghi bộ vi xử lý, vì vậy không có ngã nào khác có thể truy cập vào các nguồn tài nguyên của máy. Tuy nhiên, nhân có thể cho phép mã nguồn của máy chủ truy cập vào các nguồn tài nguyên vật lý.

Nhân có thể thiết lập các không gian địa chỉ để bảo vệ các tiến trình khỏi sự truy cập của các tiến trình khác, và cung cấp cho chúng những yêu cầu về cách sắp xếp bộ nhớ ảo. Một không gian địa chỉ là một tập hợp các phạm vi định vị của bộ nhớ ảo, trong mỗi phạm vi đó, một liên kết đặc biệt của các ứng dụng truy cập bộ nhớ đúng đắn, như là ứng dụng chỉ đọc hoặc vừa đọc vừa ghi. Một tiến trình có thể không truy cập ra ngoài không gian địa chỉ bộ nhớ của nó. Các tiến trình đang thực hiện mã của nhân thi hành ở trong không gian địa chỉ của nhân, các tiến trình ứng dụng thông thường thi hành trong không gian địa chỉ riêng biệt.

Bổ sung để bảo vệ cơ sở bộ nhớ, nhiều bộ xử lý có hỗ trợ chế độ thanh ghi phần cứng, những bộ xử lý này được thiết lập ở các trạm có các lệnh đặc quyền không thực hiện, các bộ xử lý đó thường xác định các bảng bảo vệ mà hiện thời được xây dựng bởi đơn vị quản lý bộ nhớ. Một nhân tiến trình thực hiện với bộ xử lý trong chế độ đặc quyền: Nhân sắp đặt các tiến trình khác thực hiện trong chế độ người sử dụng. Thuật ngữ tiến trình người sử dụng hoặc tiến trình cấp người sử dụng thường được sử dụng để mô tả một tiến trình thực hiện ở trong chế độ của người sử dụng và có cấp không gian địa chỉ cấp người sử dụng. Nhưng chú ý rằng trong một số hệ thống, một tiến trình với không gian địa chỉ cấp người sử dụng có thể được thực hiện ở trong chế độ độc quyền, trong thứ tự điều khiển quyết định.

Trong cơ chế gọi, các nguồn tài nguyên được quản trị bởi nhân được biết đến như là một hệ thống lời gọi TRAP. Điều này được thực thi bởi lệnh mức máy TRAP mà câu lệnh được đặt trong bộ vi xử lý trong chế độ độc quyền và chuyển đến không gian địa chỉ của nhân. Phần cứng bắt bộ vi xử lý thực hiện một hàm điều khiển hỗ trợ nhân khi lệnh TRAP được thực hiện, vì vậy không một tiến trình của người sử dụng nào có thể giành được quyền điều khiển của phần cứng.

Trong các hệ thống máy tính tập trung cũng như phân tán, hệ điều hành có chức năng quản lý và bảo vệ các nguồn tài nguyên khỏi sự truy nhập bất hợp pháp khi các chương trình đang hoạt động. Cung cấp các dịch vụ cơ bản cho các chương trình ứng dụng và người sử dụng. Chính vì vậy mà vai trò của hệ điều hành đặc biệt là nhân của hệ điều hành là không thể phủ nhận trong việc quản lý các nguồn tài nguyên hệ thống. Giải pháp đưa ra cho viêc quản lý tài nguyên phụ thuộc vào nhân của hệ điều hành đó là việc thiết kế các Microkernel để việc quản lý tài nguyên có hiệu quả hơn.

Microkernel quản lí tất cả các tiến trình, quản lí bộ nhớ, …Các Microkernel có thể thay đổi kích cỡ từ khoản 10Kb đến vài trăm Kb để có thể thi hành được mã lệnh và dữ liệu tĩnh.

Microkernel được thiết kế di động giữa các cấu trúc máy tính. Điều kiện thuân lợi của Microkernel là có cấu trúc tầng để cho các thành phần phụ thuộc vào máy làm giảm bớt tối thiểu lớp cuối. Điều này bao gồm các thủ tục điều khiển thanh ghi, quản lý đơn vị bộ nhớ, đơn vị dấu chấm động các thanh ghi, và các thủ tục cho sự giải quyết ngăn chặn các ngắt, các trường hợp khác ngoại lệ.

Các thành phần chính của Microkernel:

– Quản lý tiến trình: Điều khiển sự thích hợp của các lệnh ở mức thấp trên các tiến trình. Các điều kiện được cung cấp bởi mức này thường dùng để nâng cao các ứng dụng bằng cách cho một hệ thống con can thiệp để hỗ trợ các ngôn ngữ hoặc sự cạnh tranh trên hệ điều hành.

– Quản lý luồng: Sự thiết lập các luồng, đồng bộ và sự thiết lập chương trình. Các luồng là các hoạt động có thể thiết lập, được đính kèm với các tiến trình, và được mô tả đầy đủ. Để tăng tính thuận lợi của bộ đa vi xử lý, các luồng được lập trình để có thể truy cập vào các bộ vi xử lý. Chính sách thiết lập chương trình có thể bỏ đi ở các mô đun mức người sử dụng.

Quản lý truyền thông: Truyền thông giữa các luồng được đính kèm vào các tiến trình cục bộ khác. Trong một vài thiết kế, một mức hỗ trợ truyền thông giữa các luồng trong tiến trình từ xa thì bao gồm nhân. Trong trường hợp khác, nhân không có khái niệm xây dựng các máy tính khác trong nó, và một dịch vụ được thêm vào thì luôn được đòi hỏi trong truyền thông mở rộng.

– Quản lý bộ nhớ: Quản lý nguồn tài nguyên bộ nhớ vật lý, quản lý đơn vị bộ nhớ vật lý và các Cache phần cứng.

– Giám sát: Giải quyết ngắt, hệ thống gọi các bẫy và các trường hợp ngoại lệ khác.

CHƯƠNG III

CHIA SẺ TÀI NGUYÊN

Đôi khi vì quá quen thuộc với lợi ích của việc chia sẻ tài nguyên mà ta có thể dễ dang bỏ qua tầm quan trọng của chúng. Nhưng chia sẻ tài nguyên là một vấn đề cơ bản trong việc sử dụng tài nguyên của hệ phân tán. Lợi ích của việc chia sẻ tài nguyên đã được thừa nhận từ lâu trong các hệ thống đa người dùng.

Chia sẻ tài nguyên phần cứng và các thiết bị ngoại vi khác làm thuận tiện trong việc sử dụng và giảm giá thành.

Chia sẻ dữ liệu giải quyết rất nhiều các nhu cầu cần thiết và  ứng dụng của máy tính.

Chia sẻ file hỗ trợ việc chia sẻ lưu trữ thường trực và thông tin, cho phép các chương trình người dùng truy nhập các file từ xa không cần phải sao chép chúng đến những đĩa cục bộ, và nó cung cấp sự truy nhập đến các file từ những vị trí không có đĩa.

Chia sẻ dữ liệu và giao tác: Xem một máy chủ như là một thành phần của hệ phân tán mà nó quản trị một tài nguyên đơn. Máy chủ này gói gọn những tài nguyên mà nó quản trị, cho phép chúng được tạo ra, được truy cập, thao tác bởi các phương tiện hoạt động và có thể viện dẫn bởi các máy khách. Các thao tác có hiệu lực đến các máy khách được định nghĩa trong giao diện dịch vụ. Thông qua giao diện dịch vụ mà máy khách truy cập đến các mục dữ liệu ở máy chủ đang viện dẫn đến một trong các thao tác ở máy chủ.

Chia sẻ bộ nhớ phân tán: Là một khái niệm trừu tượng, sử dụng chia sẻ dữ liệu giữa các máy tính nhưng không chia sẻ bộ nhớ vật lý.

Sau đây, chúng ta sẽ đi sâu xem xét các vấn đề chia sẻ tài nguyên như đã nêu vắn tắt ở trên.

  1. Chia sẻ file

            I.1. Vấn đề chia sẻ file

File là sự trừu tượng hoá của việc lưu trữ thường trực. Khi được giới thiệu về lưu trữ đĩa những năm 1960, các hệ thống gồm một thành phần hệ thống file mà nó là nguyên nhân của sự tổ chức, lưu trữ, sửa chữa, định danh, chia sẻ và sự tự bảo vệ của các file. Hệ thống file cung cấp một tập các bộ thao tác chương trình, với các đặc điểm là sự trừu tượng hoá file, những nhà lập trình tự do có liên quan với những chi tiết của cách bố trí và sự chỉ định lưu trữ. Lưu trữ file được thực hiện trên các đĩa từ và môi trường lưu trữ ổn định khác.

Sự đòi hỏi dịch vụ file phân tán: Một dịch vụ file phân tán là một thành phần thiết yếu trong các hệ phân tán, sự thi hành một hàm tương tự với thành phần hệ thống file trong các hệ xử lý quy ước. Nó có thể dùng để hỗ trợ việc chia sẻ, lưu trữ thường trực và thông tin: Nó cho phép các chương trình người dùng truy nhập các file từ xa không cần phải sao chép chúng đến đĩa cục bộ và nó cung cấp sự truy cập đến các file từ những vị trí không có đĩa. Những dịch vụ khác, như là dịch vụ định danh (người kết nối), dịch vụ hợp lệ hoá người dùng và dịch vụ in ấn, có thể được thi hành một cách dễ dàng khi chúng có thể gọi vào dịch vụ file để nhận những nhu cầu của họ về việc lưu trữ thường trực.

Thiết kế được mở ra trong các dịch vụ thư mục khác, có thể dùng với một dịch vụ file phẳng đơn hỗ trợ các qui tắc định danh khác và cấu trúc thư mục và những mô đun khách hàng khác có thể được dùng để thi hành các chương trình khác. Sự mô phỏng các dịch file của các hệ thống xử lí đa dạng khác, sự tối ưu thi hành trạm làm việc khác và cấu hình dịch vụ.

Dịch vụ tệp phẳng: Dịch vụ tệp phẳng có liên quan tới các xử lý thi hành trên nội dung của file. Bộ nhận biết file độc nhất (UFIDs) được dùng để chỉ đến các file trong tất cả yêu cầu cho các xử lí dịch vụ tệp phẳng. Sự phân chia trách nhiệm giữa dịch vụ file và dịch vụ thư mục làm nền tảng cho việc sử dụng UFIDs.

Dịch vụ thư mục: Cung cấp một ánh xạ giữa các tên văn bản cho các file và tiếp theo UFDIs. Khi một file được tạo, mô đun khách hàng phải ghi lại UFDI của mỗi file trong một thư mục, đồng thời với một tên văn bản. Khi một tên văn bản của một file được ghi lại theo hướng này, những khách hàng có thể đạt được UFDI của file bởi sự trích dẫn tên văn bản của nó cho dịch vụ thư mục. Dịch vụ thư mục cung cấp các hàm cần thiết để sinh ra và cập nhật các thư mục và cho UFDIs hiện hành từ các thư mục. Nó là một khách hàng của dịch vụ tệp phẳng. Các file thư mục của nó được lưu trữ trong các file của dịch vụ file phẳng. Khi một lược đồ định danh file phân cấp được nhận làm thứ cấp, như trong UNIX, các thư mục sẽ hiểu được sự chuyển đến các thư mục khác.

Mô đun khách hàng: Mô đun khách hàng đơn chạy trong mỗi máy tính khách hàng, tương tác, mở rộng xử lý của dịch vụ tệp phẳng và dịch vụ thư mục dưới một giao diện chương trình ứng dụng đơn mà nó hữu dụng cho những chương trình mức độ người dùng trong các máy khách. Ví dụ, trong máy chủ UNIX, một mô đun khách hàng sẽ được cung cấp sự mô phỏng đầy đủ tập các xử lý file UNIX, sự thông dịch tên file nhiều phần của UNIX bởi yêu cầu tương tác đến dịch vụ thư mục. Mô đun khách hàng cũng nhận biết thông tin về vị trí mạng của dịch vụ tệp phẳng, và các quá trình dịch vụ thư mục. Cuối cùng, mô đun khách hàng có thể thực hiện một vai trò quan trọng trong việc đạt được sự thi hành đúng ý chuyển qua thi hành một vùng lưu trữ của các khối file được dùng gần đây tại máy khách.

Dịch vụ thư mục: Chúng ta sẽ định nghĩa một dịch vụ thư mục cơ bản để tạo và hỗ trợ sự ghi vào trong thư mục thứ cấp đơn giản (không phân cấp), tìm tên văn bản trong các thư mục và trả về UFDI tương ứng sau khi đăng ký người dùng. Những mức độ khác nhau của hàm chức năng sẽ được xây dựng với mô đun khách hàng để phân tách đường dẫn nhiều phần, xây dựng các thư mục phân cấp, hoặc những cấu trúc khác và thi hành các tìm kiếm phức tạp.

            1.2. Các giải pháp được thiết kế cho sự chia sẻ file

Các hệ thống file được thiết kế để lưu trữ và quản lý số lượng lớn các file, với các tiện ích cho việc tạo, định danh và xoá các file. Việc định danh các file được hỗ trợ bởi việc dùng các thư mục. Một thư mục là một file thông thường của một loại đặc biệt, mà nó cung cấp một ánh xạ từ các tên văn bản đến sự nhận biết các file bên ngoài. Trong tất cả các thư mục hệ thống, file có thể bao gồm các tên của các thư mục khác, ảnh hưởng đến lược đồ tên file có phân cấp quen thuộc, những đường dẫn nhiều thành phần của file được dùng trong UNIX và các hệ xử lí khác. Các hệ thống file cũng có khả năng đáp ứng việc điều khiển truy nhập đến file.

Trong suốt hoá việc truy nhập: Những chương trình khách hàng thì không nên nhận biết sự phân tán của các file. Một sự đơn lẻ tập hợp các xử lí được cung cấp cho sự truy nhập đến các file cục bộ và ở xa. Các chương trình được viết để xử lý trên các file cục bộ để có sự truy nhập các file từ xa mà không cần sự hỗ trợ.

Trong suốt hoá sự định vị: Những chương trình máy khách nên hiểu một không gian tên file duy nhất. Các file hoặc nhóm các file có thể được định vị lại mà không cần thay đổi đường dẫn của chúng, và các chương trình người dùng hiểu không gian tên file tương tự bất cứ lúc nào chúng được thi hành.

Trong suốt hoá sự đồng thời: Việc thay đổi một file bởi một khách hàng không gây trở ngại đến sự xử lý của các khách hàng khác truy nhập hoặc thay đổi một cách đồng thời file đó. Sự cần thiết điều khiển đồng thời việc truy nhập đến dữ liệu được chia sẻ trong nhiều ứng dụng thì được chấp nhận một cách rộng rãi, và các kỹ thuật đã được biết đến sự thi hành của nó, nhưng chúng rất tốn kém. Tất cả các dịch vụ file hiện thời tiếp theo UNIX không cung cấp sự điều khiển hiện thời (như là trong BSD UNIX) hoặc chỉ tư vấn việc khoá các file (như là trong hệ thống V UNIX).

Trong suốt hoá các lỗi sai: Sự xử lí chính xác của các dịch vụ sau khi có lỗi của một khách hàng và sự xử lý chính xác của các chương trình khách hàng trên những thông điệp bị mất và sự ngắt tạm thời của dịch vụ là mục đích chính. Các dịch vụ file giống UNIX có thể đạt được bởi việc không nhận của các máy chủ và lặp lại sự xử lý dịch vụ.

Trong suốt hoá sự thi hành: Những chương trình máy khách nên tiếp tục thi hành bình thường trong khi tải những giá trị ở dịch vụ với một sắp xếp đặc biệt.

Có 2 sự đòi hỏi quan trọng khác ảnh hưởng đến tính lợi ích của dịch vụ file phân tán.

Phần cứng và tính không đồng nhất hệ thống xử lý: Giao diện dịch vụ  được định nghĩa để phần mềm khách hàng và phục vụ có thể được thi hành trên các hệ thống và các máy tính xử lý khác. Sự đòi hỏi này là một khía cạnh quan trọng của tính mở.

Tính khả mở: Dịch vụ có thể mở rộng bởi việc phát triển sự phân chia trên phạm vi rộng của việc tải và kích cỡ mạng.

Những hình thức tiếp theo của sự rõ ràng cũng được đòi hỏi nếu tính khả mở được mở rộng để chứa được những mạng với số lượng rất lớn các vị trí hoạt động. Cho đến nay chưa có dịch vụ file đạt được tất cả chúng một cách đầy đủ. Mặc dù tất cả các dịch vụ file được phát triển gần đây xác nhận một số trong các điều đó.

Trong suốt hoá sự tái tạo: Một file có thể được trình bày bởi một vài bản sao những nội dung của nó tại các vị trí khác. Điều này có 2 lợi ích: Nó cho phép nhiều phục vụ chia sẻ việc tải các cung cấp của một dịch vụ đến những khách hàng truy nhập những tập hợp file giống nhau, làm tăng tính khả mở của dịch vụ và nó làm nổi bật khoảng sai cho có thể chấp nhận bởi sự cho phép các khách hàng định vị phục vụ khác để hiểu một bản sao của file khi bị lỗi.

Trong suốt hoá sự chuyển dời: Không có các chương trình khách hàng cũng không có người quản trị hệ thống tham gia vào các vị trí khách hàng cần được thay đổi khi các file được di chuyển. Sự cho phép tính di động các file hoặc có tính chung, tập hợp hoặc các nhãn của các file có thể bị di chuyển bởi các nhà quản trị hệ thống hoặc tính tự động.

Có vài đặc trưng không tìm thấy trong các dịch vụ file hiện thời quan trọng cho sự phát triển của các ứng dụng phân tán trong tương lai.

Hỗ trợ sự phân tán nhỏ dữ liệu: Cũng như sự tinh xảo của sự phát triển các ứng dụng phân tán, chia sẻ dữ liệu thành những đơn vị nhỏ sẽ trở nên cần thiết. Đây là một sự phản ánh nhu cầu định vị các đối tượng tác nhân gần các quá trình mà các quá trình này sử dụng và lưu trữ chúng một cách riêng lẻ trong các vị trí đó. Sự trừu tượng hoá file, mà nó được phát triển như một kiểu của việc lưu trữ thường trực trong các hệ tập trung không xác nhận nhu cầu.

Sự chấp nhận phân vùng mạng và xử lí được tách ra: Những phân vùng mạng có thể là kết quả của những thiếu sót, hoặc chúng có thể xảy ra một cách có tính toán, ví dụ khi một trạm có khả năng di chuyển được mang về. Khi một dịch vụ file bao gồm sự sao chép và lưu trữ các file, các khách hàng có thể bị ảnh hưởng khi phân vùng mạng xảy ra. Ví dụ, nhiều thuật toán sao chép yêu cầu phần lớn phần lớn mô hình để đáp ứng yêu cầu cho tất cả các bản sao hiện thời của một file. Nếu có một phân vùng mạng, một phần lớn có thể không khả dụng, ngăn cản khách hàng từ tiến trình.

  1. Chia sẻ bộ nhớ phân tán

Sự chia sẻ bộ nhớ phân tán (DSM) là một khái niệm trừu tượng sử dụng cho việc chia sẻ dữ liệu giữa các máy tính, nhưng không chia sẻ bộ nhớ vật lý. Các xử lý truy nhập bộ nhớ dùng chung phân tán cho quá trình đọc và cập nhật mọi thứ có mặt bên trong bộ nhớ hiện tại thuộc không gian địa chỉ bộ nhớ.

Đặc điểm chính của bộ nhớ dùng chung phân tán là nó không cần đến người lập trình nhúng vào các thông điệp khi đọc các ứng dụng, điều này là một trong những sức mạnh mà ta cần sử dụng bộ nhớ dùng chung phân tán. Bộ nhớ dùng chung phân tán là một công cụ chính cho các ứng dụng song song, hay các ứng dụng có sự phân tán, các nhóm ứng dụng mà trong đó các mục dữ liệu riêng biệt có thể được truy nhập trực tiếp. Bộ nhớ dùng chung phân tán nhìn tổng hợp thì ít thích hợp cho các hệ thống client-server, tuy nhiên server có thể cung cấp bộ nhớ dùng chung phân tán cho sự chia sẻ giữa các client.

Hệ thống bộ nhớ dùng chung phân tán quản lý các bản sao dữ liệu: Mỗi máy tính có một bản sao địa phương mà dữ liệu được cập nhật mới nhất được lưu vào trong bộ nhớ dùng chung phân tán tạo ra sự nhanh chóng cho tốc độ xử lí.

Bộ nhớ dùng chung phân tán là một lĩnh vực đã được nghiên cứu từ rất sớm vào những năm 1980. Một trong những thí dụ đầu tiên của sự thực thi bộ nhớ dùng chung phân tán là hệ thống tập tin Apollo Domain [Leach etal 1983], cái mà máy chủ thực hiện các xử lý là các tập tin chia sẻ từ các trạm làm việc khác nhau và chúng được ánh xạ hoàn toàn vào bên trong bộ nhớ. Thí dụ này là một hình thức chia sẻ bộ nhớ phân tán được thức hiện liên tục. Khi đó có thể tồn tại nhiều sự thi hành các xử lý hoặc một nhóm các xử lý mà cần truy cập vào hosted và chúng có thể được chia sẻ bởi một tập các xử lý khác nhau tại bất kỳ thời điểm nào.

Bộ nhớ dùng chung phân tán có ý nghĩa tạo ra một lớp bên cạnh sự phát triển của bộ nhớ, của các bộ vi xử lý có sự chia sẻ. Nhiều nghiên cứu đã đưa ra các kết quả phù hợp cho các quá trình xử lý song song trên nhiều bộ vi xử lý, và được sử dụng trong việc sử dụng phần cứng để lưu trữ và làm cực đại hoá số lượng các xử lí có thể duy trì liên tục bởi chúng [Dubois etal 1988]. Tuy nhiên trong thực tế giới hạn của sự chính xác vào khoảng 10 hay 20 xử lí. Nơi đây có sự kết nối đến các mô đun bộ nhớ trên một bus dùng

chung, sau đó lợi dụng thêm các xử lý phụ giúp cho các xử lý cho ra kết quả cuối cùng được nhanh chóng.

Các bộ nhớ của các bộ vi xử lý phân tán và các hệ thống mạng phân tán trên các nguồn khác nhau có phạm vi xử lý rất xa, bởi số lượng các xử lý hay các máy tính. Hiện nay các bộ vi xử lý có bộ nhớ chia sẻ thiết kế dùng các mô đun bộ nhớ chia sẻ nối lại với nhau bằng các hệ thống mạng tốc độ cao, cho phép các xử lí truy cập vào các không gian địa chỉ đơn giản. Một vấn đề trung tâm đã theo đuổi bởi một nhóm nghiên cứu bộ nhớ dùng chung phân tán và bộ vi xử lý là khả năng đầu tư vào bên trong tri thức của các thuật toán chia sẻ bộ nhớ và sự kết hợp với các phần mềm có thể tạm thời điều khiển nhiều hơn có thể làm thay đổi kiến trúc của bộ nhớ phân tán.

Thông điệp chuyển qua chống lại bộ nhớ dùng chung phân tán: Như một kỹ thuật truyền thông, bộ nhớ dùng chung phân tán có thể cho phép các thông điệp gửi qua khá hơn các yêu cầu cơ bản của sự truyền thông, cũng từ đây các ứng dụng song song sẽ được xử lí, trong từng xử lí có sự đòi hỏi phải sử dụng sự truyền thông không đồng bộ. Hệ thống bộ nhớ dùng chung phân tán và thông điệp gửi qua gần như là quá trình lập trình có thể tạo ra sự tương phản.

Liệu có hay không một bộ nhớ dùng chung phân tán được ưa chuộng với những thông điệp ngẫu nhiên cho các ứng dụng riêng biệt. Bộ nhớ dùng chung phân tán là một công cụ có nhiều triển vọng, nó có nền tảng phụ thuộc lên trên năng suất với những gì nó thi hành.

Hướng tiếp cận của bộ nhớ dùng chung phân tán: Có 3 hướng tiếp cận chính cho sự thực thi chia sẻ bộ nhớ phân tán. Điều này bao gồm quá trình sử dụng phần cứng, bộ nhớ ảo hay thư viện hỗ trợ. Lưu ý rằng chúng không nhất thiết phải mang các đặc trưng của nhau.

Nền tảng phần cứng: Một số kiến trúc vi xử lý như Dash [Lenoski etal 1992], PLUS [Birinai và Ravishankar 1990] liên kết các phần cứng để tạo ra các xử lý các quá trình truyền tải và lưu trữ áp dụng chế độ địa chỉ của bộ nhớ dùng chung phân tán, và truyền thông với các bộ nhớ từ xa như là một thứ yếu để mà thi hành chúng. Những thiết kế phân cấp bên trong các clusters của các mô hình bộ nhớ và các bộ xử lý thì được kết nối qua một mạng tốc độ cao. Điều này được tập trung vào các xử lý ở các vị trí khác có tầm quan trọng hơn những xử lý thông thường với giới hạn là 10 hay nhiều hơn thế, chúng có thể cung cấp nhiều trên một đường bus phổ biến. Bộ vi xử lí mô hình mẫu bản sao của Dash có 64 nút.

Có thể nhìn bộ nhớ dùng chung phân tán đang trình bày tương ứng như với các byte đối tượng chia sẻ hay các mục dữ liệu không thể biến đối được.

Byte định hướng: Byte định hướng trên bộ nhớ dùng chung phân tán có thể được truy nhập như một bộ ảo thông thường.

Các đối tượng chia sẻ: Một thuận lợi trong việc kiểm tra có hiệu quả việc chia sẻ bộ nhớ là có thể xem bộ nhớ như một tập hợp của nhiều đối tượng, mà quá trình đồng bộ hoá có thể được ứng dụng tại các cấp độ hoạt động của đối tượng. Orca nhìn tổng quan bộ nhớ dùng chung phân tán như một tập hợp của nhiều đối tượng được chia sẻ và tự động xếp theo thứ tự hoạt động theo các đối tượng đã được quy định.

Dữ liệu bất định: Cả 2 Agora và Linda nhìn bộ nhớ dùng chung phân tán như một tập hợp của nhiều mục dữ liệu bất định, mà mọi quá trình xử lý đều có thể được đọc. Các xử lí phải thay thế các mục dữ liệu trong bản thân chúng.

(Hết phần 2)

Leave a Reply