24/05/2018, 18:20

Sơ lược về hệ điều hành phân tán và hệ tự trị cộng tác

HĐH phân tán mới thực sự là một HĐH quản lý tài nguyên máy tính trên phạm vi lãnh thổ lớn. Các máy tính được kết nối lôgic (theo phần mềm) trong HĐH phân tán một cách tương đối chặt chẽ, hệ thống tài nguyên của mỗi máy tính đóng góp thực sự ...

HĐH phân tán mới thực sự là một HĐH quản lý tài nguyên máy tính trên phạm vi lãnh thổ lớn. Các máy tính được kết nối lôgic (theo phần mềm) trong HĐH phân tán một cách tương đối chặt chẽ, hệ thống tài nguyên của mỗi máy tính đóng góp thực sự vào hệ thống tài nguyên chung thống nhất và tham gia vào việc giải quyết mỗi bài toán điều phối quá trình, điều phối bộ nhớ, điều phối vào-ra v.v. HĐH phân tán, về lôgic là một hệ thống thống nhất song về vật lý lại được “phân bố” chạy trên nhiều máy tính ở các vị trí khác nhau.

Sự phát triển các trạm làm việc mạnh và những tiến bộ của công nghệ truyền thông tạo ra sự cần thiết và hợp lý để mở rộng việc chia xẻ tài nguyên thêm một bước nữa: để bao gồm dạng tổng quát hơn nữa các hoạt động cộng tác giữa một tập hợp gồm các máy tính tự trị, được kết nối bởi một mạng truyền thông. Chia xẻ tài nguyên và cộng tác các hoạt động phân tán kiểu này của môi trường tính toán là những mục tiêu chính trong thiết kế HĐH phân tán và là tiêu điểm chính của tập bài giảng này.

Cần xác định những thành phần trong một hệ phân tán kết nối lỏng là cần phân tán hay không tập trung. Tài nguyên vật lý là phân tán vì được thừa hưởng tự nhiên từ hệ kết nối lỏng. Thông tin và nhu cầu thông tin trở nên phân tán do tính tự nhiên của nó hoặc do nhu cầu tổ chức, chẳng hạn về tính hiệu quả và tính an toàn. Hơn nữa, hiệu năng hệ thống cần được nâng cao nhờ tính toán phân tán. Làm thế nào để các tài nguyên và hoạt động phân tán được quản lý và điều khiển là những trách nhiệm căn bản của HĐH phân tán. Nên chăng HĐH phân tán tự nó cũng phân tán ? Lời giải đáp là về đại thể là nên theo cách thức đó chính do tính tự nhien của nó và nhu cầu tổ chức. Điều đó đặt ra vấn đề thi hành phân tán đối với các chức năng quản trị và điều khiển của HĐH phân tán, chính là thiết kế các thuật toán phân tán. Nhu cầu về các thuật toán phân tán trong các HĐH phân tán thúc đẩy việc tích hợp hai chủ thể có quan hệ mật thiết này trong một số tài liệu.

Khi cho một HĐH phân tán trên một hệ phân tán, hy vọng có được sự che khuất các chi tiết thi hành của hệ thống đó đối với người dùng. Điều phân biệt mấu chốt giữa HĐH mạng và HĐH phân tán ở chính khái niệm trong suốt. Trong suốt là một khái niệm mới. Trong HĐH tập trung, người sử dụng chia xẻ thời gian có sự trong suốt đồng thời (concurrency transparency) nếu họ không nhận biết thực tế có nhiều người dung fkhác cũng đang chia xẻ cùng một hệ thống. Một chương trình được gọi trong suốt định vị (location transparrency) nếu như bản đồ của chương trình vào trong bộ nhớ vật lý và/hoặc bộ xử lý là bị che khuất. Trong HĐH phân tán khái niệm này còn được mở rộng tới định vị file và đồng thời truy nhập nếu file có thể nằm bất kỳ trên hệ thống lưu trữ và truy nhập nó thông qua đường dẫn lôgic hơn là vật lý. Đối với quá trình phân tán, có thể đạt được phân tán song song và phân tán hiệu năng nếu quá trình có thể được thực hiện trên một bộ xử lý bất kỳ mà không kể sự nhận biết của người dùng và không kể sự khác nhau đáng kể về hiệu năng. Còn nhiều ví dụ nữa và có giới hạn hay không ? Một hệ thống trong suốt hoàn toàn là hợp lý hoặc thậm chí chỉ hy vọng là một câu hỏi còn được bàn luận. Nói chung, tính trong suốt là một cái tốt đẹp cần có và chúng ta vẫn sử dụng nó như mở rộng mấu chốt của HĐH phân tán.

Trong các mục trước đây, hệ thống tính toán được mô tả như một hệ thống trừu tượng bao gồm các quá trình và các file. Cần bổ sung các thuật toán (chính xác hơn là các thuật toán điều khiển phân tán) mà quản lý sự thực hiện các quá trình trên các file trong hệ phân tán. Như vậy, HĐH phân tán bao gồm ba thành phần chính: điều phối các quá trình phân tán, quản trị các tài nguyên phân tán và thi hành các thuật toán phân tán. Tại mỗi nút trong hệ phân tán, giả thiết rằng tồn tại những môđun thực hiện việc quản trị tài nguyên địa phương.

Một số HĐH phân tán điển hình như AMAEBA, MACH, CHORUS, DCE được giới thiệu trong [8].

HĐH tự trị cộng tác cho một cách thức linh hoạt hơn so với HĐH phân tán. Các máy tính thành viên vừa được phép tham gia kết nối vào toàn bộ hệ thống lại vừa được phép chạy một cách độc lập. Khi tham gia vào hệ thống, tài nguyên của máy tính thành viên được toàn bộ hệ thống sử dụng (gần như theo cách thức của HĐH phân tán) còn khi máy thành viên chạy độc lập thì nó độc quyền sử dụng tài nguyên riêng. Về thực chất, trong hệ tự trị cộng tác, tính "tự trị" của máy thành viên được chú trọng hơn so với tính thống nhất lôgic của toàn bộ hệ thống.

Như vậy, nếu chỉ cần duy trì tính trong suốt ở một mức độ nào đó và hủy bỏ về cái nhìn của một hệ thống nhất lôgic của hệ đa máy tính, nhận được cách nhìn khác nhau hoàn toàn của một hệ (phần cứng và phần mềm) lỏng lẻo thuần túy. Mỗi người dùng hoặc quá trình thao tác tự trị bằng cách cung cấp các dịch vụ của mình và yêu cầu các dịch vụ từ nơi khác. Nhóm các hành động có thể được điều phối bằng việc trao đổi dịch vụ và yêu cầu. Dịch vụ mức cao có thể được cung cấp bằng cách giải quyết chúng từ những dịch vụ ở mức thấp hơn. Mọi hệ thống phần mềm có thể được định danh một cách thoải mái bằng cách tích hợp nhiều dịch vụ với sự thoả thuận nào đó theo cấu trúc. Đây là cách tiệm cận đã bắt chước cách ứng xử trong xã hội loài người: ứng xử trong hệ thống máy tính làm theo cách ứng xử trong xã hội loài người phức tạp. Đây là cách nhìn của hệ tự trị cộng tác.

Hình 1.8 minh họa một số khác biệt cơ bản giữa HĐH phân tán với hệ tự trị công tác. Hệ phân tán được đặc trưng bằng phân tích dịch vụ trong khi hệ tự trị cộng tác lại nhấn mạnh việc tích hợp dịch vụ.

Hệ tự trị cộng tác là hệ thống phần mềm định hướng dịch vụ mức cao đòi hỏi hỗ trợ cơ chế truyền thông trên đó các giao thức truyền thông mức cai đã được xây dựng. Lấy ví dụ hình ảnh cách thức giao dịch bất động sản có thể được thực hiện trong một hệ tự trị cộng tác. Người mua nhà, là một quá trình khách, có thể tạo ra một yêu cầu tới hoặc trực tiếp tới chủ ngôi nhà hoặc gián tiếp tới đại lý bất động sản (cả hai đều là quá trình phục vụ). Chủ ngôi nhà là quá trình khách tới người môi giới. Người môi giới có thể từ một đại lý bất động sản, một phục vụ lớn hơn có thể chỉ dẫn cho người mua nhà một môi giới giành riêng. Người bán là khách tới đại lý bất động sản giống như một khách tới người môi giới. Người mua có thể định vị được đại lý bất động sản nhờ xem thông tin trên Trang vàng, đã được biết đến như một quá trình phục vụ trực tiếp. Nếu ngôi nhà được chủ của nó bán trực tiếp thì người chủ có thể quảng cáo tại đâu đó nhờ quá trình phục vụ với địa chỉ đã biết. Hình 1.9 trình bày một loạt các quan hệ Client/Server của một ứng dụng hệ tự trị cộng tác. Phục vụ kiểu Trang vàng và đại lý bất động sản cung cấp dịch vụ môi giới hoặc thương mại như những dịch vụ định vị. Khái niệm mấu chốt của hệ tự trị cộng tác là tích hợp các dịch vụ thành dạng hoạt động cộng tác. Cả phần cứng và phàn mềm là tách rời và không tập trung hoàn toàn.

Tư tưởng của hệ tự trị không tập trung hình như gượng gạo. Tuy nhiên, một mở rộng đơn giản có khái niệm Làm việc cộng tác được hỗ trợ bằng máy tính (Computer Supported Cooperative Work: CSCW). CSCW là một khung nhằm hỗ trợ phần mềm nhóm (groupware), một ứng dụng phần mềm lớn mà bao gồm các người dùng cộng tác và tài nguyên phân tán dọc theo một mạng hỗn tạp. Một ví dụ là hội thảo phân tán, trong đó cuộc mit tinh điện tử trong một mạng vật lý phân tán có thể được tổ chức. Trái ngược với triết lý máy tính đơn được chỉ cho người dùng và tài nguyên có thể thiết kế và quản trị, là sự nhận biết rõ ràng sự tồn tại đa máy tính. Người dùng, từ mạng logic của họ với mụctiêu riêng và được sẵn sàng cho điều khiển truy nhập và bảo vệ của nhóm. Hệ cộng tác không tập trung là hệ thống cungg cấp những dịch vụ chuẩn cho phép tích hợp các dịch vụ cộng tác mức cao trong một hệ thống mạng lớn. Với số lượng rất lớn đã lên phương án về mạng và con người, đây là sự tiến hóa tự nhiên của HĐH mạng và HĐH phân tán.

Nhu cầu trộn các ứng dụng hệ tự trị cộng tác có thể bùng phát một số cố gắng chuẩn hóa cho việc phát triển tương lai của phần mềm phân tán, đáng chú ý là Quá trình phân tán mở (Open Distributed Processing: ODP) và Kiến trúc môi giới yêu cầu đối tượng chung (Common Object Request Broker Architeturre: CORBA). ODP là khung hệ thống công cộng hõ trợ phân tán, liên thao tác và khả chuyển đối với các xử lý phân tán hõn tạp cả bên trong và dọc theo tổ chức tự trị. CORBA ccung cho cùng triết lý và sử dụng mô hình hướng đối tượng để thi hành yêu cầu dịch vụ trong suốt dọc theo một hệ thống phân tán đa đối tượng hỗn tạp liên kết nối. Cả ODP và CORBA dùng dịch vụ thông minh trader hoặc broker làm thuận tiện liên tương tác trong hệ tự trị cọng tác. Trang vàng và đại lý bất động sản như những thương nhân. Chúng có thể được nhìn như tuyến phần mềm liên kết quá trình khách và phục vụ và chúng phục vụ như một phần mềm lớp giữa (middleware) hỗ trợ các ứng dụng cộng tác phân tán.

-Đồng thời với tiến trình phát triển trên đây của các HĐH, việc nghiên cứu về các hệ thống xử lý song song cũng được phát triển. Tương ứng với các mô hình song song trên các hệ thống tập trung SIMD, MISD, MIMD là các mô hình SPMD (Single Program Multiple Data), MPSD, MPSD trong đó đối tượng thực hiện song song là chương trình thay cho chỉ thị (instruction).

Một hướng nghiên cứu thời sự hiện nay là mô hình tính toán cụm (Cluster Computing) trong đó việc song song hóa một cách hiệu quả là mục tiêu của các mô hình như vậy. Trong các mô hình tính toán song song thì cách thức SPMD là điển hình nhất.

Tính toán song song trên mạng các máy tính cá nhân, khai thác công suất dư thừa của các máy tính cá nhân trong mạng cũng là hướng đang được đặc biệt chú ý, theo đó tìm cách "tổ hợp sức mạnh" các máy tính cá nhân trong mạng thành "siêu máy tính ảo" (có người còn gọi là "siêu máy tính con nhà nghèo). Cách thức nói trên liên quan đến việc tạo dựng "cụm máy tính cá nhân" (PC-cluster) bằng một hệ thống phần mềm (thuộc dạng middleware) với tên gọi là phần mềm PC-cluster. Hiện tại có hai lớp phần mềm PC-cluster miễn phí điển hình là PVM (Parallel Vitural Machine) và MPI (Message Passing Interface). Tính đến thời điểm năm 2002, một số hệ thống PC-cluster đã được cài đặt thử nghiệm tại một số cơ quan trong nước (trong đó có khoa Công nghệ, ĐHQGHN) song hiệu quả thực sự của chúng hiện vẫn còn ở mức rất khiêm tốn.

Vấn đề thiết kế và nghiên cứu đối với HĐH tập trung (truyền thống), hoạt động trong một hệ thống có một hoặc nhiều bộ xử lý, đã được nghiên cứu tương đối dầy đủ. Tuy nhiên, với việc phát triển nhanh chóng các trạm làm việc cá nhân và mạng cục bộ dẫn đến sự phát triển nhanh chóng các khái niệm HĐH mới, là HĐH mạng và HĐH phân tán (một số tác giả, đặc biệt là các tác giả Việt kiều, dùng thuật ngữ "phân bố" thay cho thuật ngữ "phân tán" được dùng trong tài liệu này). Vấn đề quan hệ đến mạng và HĐH phân tán là mục tiêu nghiên cứu của giáo trình này. Một vấn đề khác nổi lên là phát triển các hệ thống tự động cộng tác, trong đó nhấn mạnh việc thiết kế các thuật toán phân tán trong một môi trường hệ thống mở. Một hệ thống mở liên quan đến tính mềm dẻo một cách toàn vẹn và che khuất đi sự hỗn tạp các thành phần nhằm hỗ trợ việc cộng tác nhiều cấp tại mức ứng dụng. Khái niệm này là rộng lớn hơn so với HĐH theo nghĩa truyền thống.

Việc thiết kế các thuật toán phân tán, được đòi hỏi nhằm hỗ trợ việc thi hành dịch vụ HĐH phân tán để điều phối sự thực hiện của các quá trình đồng thời có vai trò quan trọng trong nghiên cứu về HĐH phân tán. Các thuật toán thường được chỉ dẫn như các giao thức do chức năng của chúng là chủ yếu thiết lập lệnh hoặc quy tắc đối với sự hạn chế của hệ phân tán là thiếu những thông tin trạng thái hệ thống toàn cục. Mỗi quá trình có nhận thức khác nhau của hệ thống do sự thiếu vắng bộ nhớ chia xẻ và độ trễ truyền thông đáng kế giữa các quá trình. Cái nhien của họ về hệ thống thường là không đầy đủ và không mạch lạc. Phần tử bản chất nhất của thông tin toàn cục là thông tin thời gian toàn cục cỡ hệ thống, thường được chỉ dẫn như một đồng hồ toàn cục. Về mặt lý thuyết, không thể đạt được nhằm đạt được một đồng hồ toàn cục thậm chí trong hệ phân tán có một đồng hồ trung tâm chung. Bỏ qua thông tin thời gian toàn cục, sự thúc ép sự sắp xếp sự xuất hiện các sự kiện trở thành một bài toán không tầm thường. Việc xấp xỉ đồng hồ toàn cục với sự thứ lỗi thời gian nào đó và cơ chế thực hiện thứ tự sự kiện đúng đắn không cần sử dụng thông tin đồng hồ toàn cục bắt buộc phải được phát triển. Nhiều thi hành của các chức năng điều khiển mức cao chẳng hạn ĐBQT và TTQT dựa vào sự thứ lỗi (fault tolerance) thời gian và cơ chế sắp xếp sự kiện này. Độ trễ truyền thông tạo ra khó khăn lớn để đạt được thỏa thuận về trạng thái hệ thống, bản chất của các hoạt động phân tán cộng tác.

Bổ sung tới tính phức tạp do độ trễ truyền thông, thiết kế thuật toán phân tán là phức tạp hơn bởi vì nguồn lỗi và không tin cậy là phổ biến hơn trong hệ phân tán so với hệ tập trung. Thứ lỗi trong hệ phân tán là vấn đề khó tính hơn đối với các thuật toán phân tán. Bản chất là hệ thống bao gói nhiều kiểu của lỗi. Thậm chí nhiều thuật toán tập trung để ĐBQT, lập lịch, và điều khiển đồng thời .. buộc phải được xem xét kỹ lưỡng để dùng trong hệ phân tán. Thuật toán có thể được phân thành hai lớp: thuật toán không tập trung đầy đủ và thuật toán phân tán với một điều phối tập trung thứ lỗi. Loại thứ hai đơn giản hơn theo khái niệm cung cấp những cơ chế hiệu quả tồn tại nhằm kiểm soát lỗi của điều khiển tập trung và chọn những chỉ đạo mới.

Kiến trúc phần cứng của hệ phân tán cũng có vai trò quan trọng trong thi hành các thuật toán phân tán. Các phương pháp truyền thông phụ thuộc vào việc tôpô mạng là kết nối đầy đủ hay không, thông thường hay không thông thường, và truyền dữ liệulà điểm-điểm hay đa điểm. Kiến trúc thậm chí cho phép cả việc thay đổi tôpô, lỗi kết nối và các nút là tồn tại. Về phía phần mềm dữ liệu thường được nhân bản nhằm cho phép truy nhập đồng thời và đạt được độ tin cậy cao hơn. Nhân bản dữ liêu lại đưa đến vấn đề tính chặt chẽ của dữ liệu. Quản lý nhân bản dữ liệu trở thành một vấn đề cũng khó tính trong thiết kế hệ phân tán.

Dưới đây là một danh sách tổng quát các thuật toán phân tán khi lưu tâm tới những vấn đề đáng kể của hệ phân tán được tóm tắt từ những điều mô tả trên.

-Chuyển thông điệp Hệ quả của việc không có bộ nhớ chia xẻ ngụ ý rằng điều phối giữa các quá trình đồng thời bắt buộc phải thực hiện bằng CTĐ. Như vậy, thuật toán đồng bộ và nắm giữ bế tắc cần được thiết kế lại trong môi trường phân tán. Thuật toán phân tán có thể không tập trung hoàn toàn hoặc tập trung. Trong thuật toán tập trung, thuật toán bầu cử phân tán thường được đòi hỏi để thiết lập và duy trì điều khiển tập trung.

-Sự thiếu thông tin toàn cục. Hiệu lực của thuật toán phân tán phụ thuộc vào tri thức của nó về trạng thái của hệ thống. Do không hợp lý nếu đưa ra thông tin trạng thái toàn cục do độ trễ mạng và các thành phần trong hệ thống không tin cậy, tương tác giữa các quá trình bắt buộc phải dựa trên sự nhất trí nhận được từ một vài giao thức thỏa thuận nào đó. Giao thức thoả thuận tự nó là thuật toán phân tán.

-Nhân bản dữ liệu. Quản lý nhân bản dữ liệu là chức năng cơ sở của hệ thống file và cơ sở dữ liệu phân tán. Mục tiêu căn bản của giao thức là duy trì tính nhất quán (consistency). Vấn đề tương đương lôgic cần đến tán phát tin cậy (reliable broadcast). Tập các dữ liệu được nhân bản là tương tự như một nhóm thành viên được tán phát. Vấn đề này kéo theo trong HĐH hoặc CSDL cũng được nhìn nhận.

-Lỗi và khôi phục. Độ tin cậy của hệ thống có thể được nâng cao theo nghĩa thứ lỗi hoặc khôi phục tiếp sau lỗi. Tiếp cận thứ lỗi sử dụng giải pháp dư thừa hoặc đa phục vụ. Khôi phục là cách tiếp cận sẵn có trong đó trạng thái của hệ thống là được duy trì và được dùng để thực hiện lại từ điểm kiểm tra ngay trước. Thuật toán khôi phục giải quyết với việc đăng nhập vào trạng thái hệ thống, các điểm kiểm tra và nắm giữ các quá trình và thông điệp cô lập.

  1. Trình bày khái niệm và hai chức năng cơ bản của hệ điều hành.
  2. Trình bày sơ lược về quá trình tiến hóa của hệ điều hành, những nét đặc trưng nhất của mỗi lớp hệ điều hành. Nhận xét về quá trình tiến hóa đó.
  3. Trình bày những bài toán điều khiển chủ yếu nhất của hệ điều hành truyền thống và sơ bộ về một số giải pháp giải quyết mỗi bài toán đó.
  4. Khái niệm vi nhân và sơ bộ về giải pháp vi nhân.
  5. Tính mở và tính khả chuyển của hệ điều hành. Sơ bộ về giải pháp thi hành tính mở và tính khả chuyển.
0