Hệ Điều Hành Phân Tán Chorus (Phần 1)

Cùng với sự phát triển của mạng máy tính, việc tính toán, quản lý ngày nay không chỉ đơn giản tập trung  trong máy tính đơn như trước nữa.

Nó đòi hỏi các hệ thống tính toán phải được kết hợp từ một số lượng lớn các máy tính kết nối với nhau qua 1 mạng tốc độ cao. Chúng thường được gọi là các mạng máy tính hay còn có tên khác là các Hệ phân tán. Hệ phân tán ra đời đã giúp chúng ta giản thiểu được rất nhiều chi phí về vật chất, tiền của, con người, bằng việc sử dụng một cách hợp lý tài nguyên chung. Chỉ với một con vi xử lý mà nó làm được nhiều việc trong một khoảng thời gian, chỉ với một đường truyền nhiều người có thể sử dụng.
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. 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.

Bài tiểu luận này chúng ta sẽ nghiên cứu về hệ điều hành Chorus, một hệ điều hành phân tán thông qua các nguyên lý của hệ phân tán. Bài viết đề cập đến các vấn đề kiến trúc hệ điều hành Chorus, vấn đề quản lý tiến trình, quản lý truyền thông, định danh, và các vấn đề về xử lý ngoại lệ, phần cuối là sự so sánh giữa 3 hệ điều hành phân tán Amoeba, Mach với Chorus.

Phần 1: Giới thiệu về HĐH phân tán Chorus

Ngày nay với sự phát triển của các ứng dụng máy tính, việc thiết kế một hệ thống phân tán mà các yêu cầu về vấn đề hiệu quả và khả thi đã tăng lên, nhằm phục vụ nhu cầu sử dụng trong xây dựng, hoạt động, và hành chính.
Sự tiến hóa này đã kéo theo các yêu cầu về một cấu trúc hệ thống mới mà khó có thể thực hiện chỉ bằng cách lắp ráp các hệ thống mạng lưới hợp tác. Trong phần 1 này chúng ta sẽ nghiên cứu về tổng quan về hệ điều hành Chorus gồm lịch sử ra đời và các phiên bản.

  • Hệ điều hành phân tá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. 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.

Công nghệ Chorus đã được thiết kế để xây dựng thế hệ mới mở, phân tán, một hệ điều hành có thể mở rộng. Chorus có các đăc điểm chính sau đây:

+ một kiến trúc trên nền tảng truyền thống, dựa trên một hạt nhân (Nucleus) tối thiểu có tích hợp xử lý phân tán và truyền thông ở mức thấp nhất, và đó thực hiện các dịch vụ chung được sử dụng bởi một tập các máy chủ hệ thống con.
+ một thời gian thực Nucleus cung cấp dịch vụ thời gian thực sử dụng để lập trình hệ thống;
+ một kiến trúc mô-đun cung cấp khả năng mở rộng, và cho phép cấu hình cụ thể của hệ thống và ứng dụng của nó trên một loạt các phần cứng và cấu hình mạng, bao gồm cả hệ thống song song và đa hệ thống.

Các kiến ​​trúc Chorus đã được thiết kế để đáp ứng các yêu cầu này, nền tảng của nó là một Nucleus chung chạy trên mỗi máy. Truyền thông và phân phối được quản lý ở cấp thấp nhất của Nucleus này. Hệ điều hành truyền thống được xây dựng như các hệ thống con trên của Nucleus chung và sử dụng các dịch vụ cơ bản của nó.

  • Lịch sử hệ điều hành Chorus

Chorus  là một dự án nghiên cứu trên các hệ phân tán tại INRIA1 tại Pháp 1979-1986. Ba phiên bản được phát triển, gọi tắt là CHORUS-V0, CHORUS-V1, và CHORUS-V2, dựa trên một hạt nhân theo định hướng truyền thông. Các khái niệm cơ bản để xử lý tính toán phân tán trong Chorus, cho cả hệ thống và dịch vụ ứng dụng, đó là một hạt nhân (Nucleus) quản lý việc trao đổi tin nhắn giữa các cổng thuộc các tác nhân.

Trong khi phiên bản đầu của CHORUS đã có giao diện tùy chỉnh, CHORUS-V2  tương thích với hệ thống UNIX V, và đã được sử dụng làm cơ sở để hỗ trợ các ứng dụng thử nghiệm phân tán. CHORUS-V3 là phiên bản hiện hành được  xây dựng dựa trên kinh nghiệm các CHORUS trước và tích hợp nhiều khái niệm từ các dự án nghiên cứu phát triển hệ thống phân tán.

  • Các phiên bản Chorus:

 

  • CHORUS 2V0 (1980-1982)

CHORUS-V0 thử nghiệm với ba khái niệm chính:
+ Các hoạt động của một tác nhân, đó là một chuỗi luân phiên các giai đoạn thực hiện liên tục và các giai đoạn giao tiếp.

+ Một ứng dụng phân tán, mà là một tập các tác nhân độc lập truyền thông độc quyền bằng cách trao đổi các thông điệp thông qua các cổng, hoặc một nhóm các cổng. Các cổng quản lý và đặt tên được thiết kế để cho phép chuyển đổi và cấu hình lại các cổng động của ứng dụng.
+ Hệ điều hành được xây dựng như một Nucleus nhỏ, đơn giản và đáng tin cậy, nhân rộng trên mỗi trang web, và bổ sung bởi các tác nhân của hệ thống phân tán phụ trách các cổng, tác nhân, files, thiết bị đầu cuối, quản lý mạng

  • CHORUS-V1 (1982-1984)

Đây là phiên bản chuyển CHORUS từ nguyên mẫu thành  một hệ thống thực. Trang web này là  SM90 đa vi máy tính – dựa trên Motorola 68000 và sau đó là 68.020 – kết nối với nhau bởi một 10Mb / s Ethernet. Trong một cấu hình đa xử lý, một bộ xử lý chạy UNIX là một hệ thống phát triển và quản lý đĩa, và lên đến bảy bộ vi xử lý khác chạy CHORUS với một hệ thống CHORUS điều khiển mạng. Các mã Pascal đã được biên dịch.
Trọng tâm chính của phiên bản này là thử nghiệm việc thực thi CHORUS trên nền kiến ​​trúc đa xử lý.
Việc thiết kế đã có một số thay đổi từ CHORUS-V0, cụ thể là:
+ Các thông điệp cấu trúc đã được xây dựng để cho phép gắn vào các giao thức và chuyển ngữ cảnh của chúng.
+ Khái niệm về thông báo hoạt động, nó biểu hiện dữ liệu, bối cảnh cho các tính toán nhúng, và đồ thị của các tính toán trong tương lai, đã được thử nghiệm với các ứng dụng chịu lỗi.

CHORUS-V1 đã được chạy vào giữa năm 1984. Nó đã được phân phối đến một vài nơi thử nghiệm, và một trong số đó vẫn còn sử dụng hệ thống.

  • CHORUS-V2 (1984-1986)

Thông qua UNIX  buộc các giao diện CHORUS phải viết lại và hệ thống các tác nhân phải thay đổi.
Tuy vậy các Nucleus, thay đổi rất ít. Các hệ thống con UNIX được phát triển một phần từ kết quả của dự án Sol (File Manager), và một phần từ đầu (Process Manager). Những khái niệm như cổng, thông điệp, các bước xử lý, và các cuộc gọi thủ tục từ xa đã được xem xét lại. Thay đổi được thực hiện cho phù hợp chặt chẽ hơn về UNIX ngữ nghĩa. Giao diện UNIX được mở rộng để hỗ trợ các ứng dụng phân phối bởi các phương tiện chức năng mới như tín hiệu phân tán, và các tập tin phân tán.

CHORUS-V2 cung cấp một cơ hội để xem xét lại toàn bộ kiến ​​trúc UNIX hạt nhân đối với hai khái niệm sau đây:
+Mô đun (Modularity): tất cả các dịch vụ UNIX được chia thành một số tác nhân độc lập. Sự phân chia này yêu cầu thiết kế của giao diện cụ thể giữa các dịch vụ UNIX mà trước đây phụ thuộc vào chia sẻ cấu trúc dữ liệu hạt nhân.
+Phân bố (Distribution): đối tượng như các tập tin và các tiến trình, quản lý bởi các tác nhân hệ thống, có thể được phân phối trong Chorus, như các dịch vụ fork  hoặc exec.

Điều này đòi hỏi sự phát triển của giao thức mới cho các dịch vụ phân tác, chẳng hạn như việc đặt tên và vị trí của đối tượng.
Công việc này cung cấp những kinh nghiệm vô giá khi nó đến sự phát triển của CHORUS-V3; CHORUS-V2 có thể được coi như là một dự thảo của các phiên bản hiện hành. CHORUS-V2 đã được chạy vào cuối năm 1986. Nó đã được ghi nhận và được sử dụng bởi nhóm nghiên cứu bên ngoài các dự án Chorus.

  • CHORUS-V3 (1987-nay)

Mục tiêu của phiên bản này là cung cấp một sản phẩm công nghiệp tích hợp tất cả các khía cạnh tích cực của các phiên bản trước của CHORUS cũng như các hệ thống khác. CHORUS cũng cung cấp một số tính năng mới đáng kể. Các phần về sau em trình bày là mô tả của phiên bản này.

(Hết phần 1)

Leave a Reply