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

Phần 2: Kiến trúc HĐH Chorus

2.1 Khái quát chung:

Một hệ thống Chorus bao gồm một Nucleus nhỏ và một bộ hệ thống máy chủ, mà hợp tác trong bối cảnh các hệ thống con (Hình 2.1).

Hình 2.1: Kiến trúc Chorus

Điều này cung cấp cơ sở cho một hệ điều hành mở. Ở cấp độ này, sự phân tán là ẩn. Sự lựa chọn này được thực hiện để xây dựng một cơ cấu hợp lý cấp hai, với một Nucleus chung ở mức thấp nhất và gần như tự trị, các hệ thống con cung cấp các ứng dụng với hệ điều hành truyền thống.

Vì vậy, các Chorus hạt nhân không phải là cốt lõi của một hệ điều hành cụ thể, thay vì nó cung cấp công cụ chung được thiết kế để hỗ trợ một loạt các hệ thống con chủ, mà có thể cùng tồn tại bên trên của hạt nhân.

Cấu trúc này hỗ trợ các chương trình ứng dụng, mà đã được chạy trên một hệ điều hành hiện tại, theo cách tái tạo hoạt động của hệ thống giao diện bên trong một hệ thống con.

Một ví dụ cho phương pháp này được đưa ra sử dụng trong môi trường thực thi UNIX (UNIX emulation) được gọi là Chorus / MiX .

Ý tưởng kinh điển của tách các chức năng của một hệ điều hành vào các nhóm dịch vụ cung cấp bởi các máy chủ tự trị là trung tâm của Chorus. Trong các hệ thống nguyên khối, các chức năng này thường là một phần của”hạt nhân”. Tác dụng việc phân tách này làm tăng Modul, và do đó  làm linh hoạt các thành phần trong hệ thống tổng thể.

2.1.1 Các hạt nhân Chorus (Chorus Nucleus)

Hạt nhân Chorus ở cấp độ thấp nhất, quản lý các nguồn tài nguyên vật lý của một vùng. Ở mức cao nhất, nó cung cấp cơ chế cho quá trình giao tiếp giữa các vị trí (IPC). Các Nucleus gồm có bốn thành phần chính cung cấp dịch vụ cục bộ (local) và toàn hệ thống (global)

(Hình 2.2):

Chorus giám sát: sự cố treo, ngắt, có lỗi, và trường hợp ngoại lệ được chuyển đi bằng phần cứng;

Chorus quản lý thời gian thực:  kiểm soát việc phân bổ các bộ xử lý và cung cấp thành phần đồng bộ và  kế hoạch ưu tiên;

Chorus quản lý bộ nhớ ảo: có trách nhiệm điều khiển bộ nhớ ảo phần cứng và tài nguyên bộ nhớ cục bộ;

Chorus quản lý đa tiến trình giao tiếp: cung cấp thông tin không đồng bộ trao đổi và thủ tục gọi từ xa (RPC) cơ sở tại một vị trí độc lập.

Hình 2.2: Chorus Nucleus

Không có sự phụ thuộc giữa bốn thành phần hạt nhân của Chorus. Kết quả tất yếu là, việc phân phối các dịch vụ cung cấp bởi nhà Nucleus gần như ẩn. Dịch vụ tại đâu thì giải quyết với các tài nguyên tại đó và có thể được chủ yếu là quản lý chỉ sử dụng thông tin của nơi đó. Dịch vụ toàn hệ thống phải kết hợp với các hạt nhân để cung cấp phân phối.

Trong Chorus – V3 nó đã được quyết định, dựa trên hiệu quả kinh nghiệm với Chorus -V2, bao gồm trong các Nucleus một số chức năng mà có thể đã được cung cấp bởi các máy chủ hệ thống: tác nhân, cổng quản lý, quản lý tên, và quản lý RPC.

Các tiêu chuẩn cho cơ chế Chorus IPC là chính các phương tiện sử dụng để giao tiếp với quản lý trong hệ thống. Ví dụ, người quản lý bộ nhớ ảo sử dụng Chorus IPC gửi dữ liệu yêu cầu đến dịch vụ sửa lỗi.

Các Nucleus cũng được thiết kế để dễ di động, trong đó, trong một số trường hợp, có thể ngăn cản việc sử dụng một số tính năng phần cứng nằm bên dưới. Kinh nghiệm có được từ porting các Nucleus đến các Đơn vị quản lý bộ nhớ (MMU) của ba bộ chip và có xác nhận hợp lệ sự lựa chọn này.

2.1.2 Các hệ thống con (Subsystems)

Hệ thống máy chủ làm việc hợp tác để cung cấp một giao diện hệ điều hành chặt chẽ, được gọi như là một hệ thống con.

2.1.3 Hệ thống giao diện (System Interfaces)

Một hệ thống Chorus cung cấp cấp độ khác nhau của giao diện (hình 1).

Giao diện Nucleus cung cấp truy cập trực tiếp đến dịch vụ cấp thấp của Chorus hạt nhân.

Một giao diện hệ thống con được thực hiện bởi một tập các máy chủ cùng hợp tác, và thông thường đại diện cho hệ thống điều hành trừu tượng phức tạp. Một số hệ thống con khác nhau có thể được cư trú trên một hệ thống Chorus đồng thời, cung cấp một loạt các hệ điều hành hoặc cấp cao giao diện để làm thủ tục ứng dụng khác nhau. thư viện người dùng, chẳng hạn như “C”thư viện, tăng cường hơn nữa giao diện Chorus bằng cách cung cấp cơ sở lập trình thường được sử dụng.

2.1.4 Các hệ thống con hướng đối tượng

Là một thí nghiệm nghiên cứu, một hệ thống con thứ hai đã được thực hiện bởi lập trình hướng đối tượng. Nó bao gồm ba lớp. Các lớp dưới cùng làm quản lý đối tượng theo một cách chung và có một microkernel hiệu quả cho các hệ thống hướng đối tượng. Lớp giữa cung cấp một hệ thống thời gian chạy chung. Lớp trên cùng là hệ thống thời gian chạy ngôn ngữ. Hệ thống con này, được gọi là COOL.

2.2 Cấu trúc hạt nhân (Kernel Structure)

Hạt nhân bao gồm bốn phần, như được minh họa trong hình 2.3. Ở phía dưới là các tác nhân giám sát, trong đó quản lý phần cứng và bắt bẫy, trường hợp ngoại lệ, làm gián đoạn, và chi tiết phần cứng khác, và xử lý chuyển ngữ cảnh. Nó được viết một phần trong assembler và phải được làm lại khi Chorus được chuyển đến phần cứng mới.

Hình 2.3. Cấu trúc hạt nhân

Tiếp đến bộ phận quản lý bộ nhớ ảo (virtual memory manager), xử lý một phần ở mức thấp của hệ thống phân trang. Phần lớn nhất của nó liên hệ với quản lý lưu trữ trạng thái và các khái niệm hợp lý khác, là các máy tính độc lập.

Hai bộ phận của VMM không làm tất cả công việc quản lý hệ thống phân trang với nhau. Một phần thứ ba, các ánh xạ (mapper), là bên ngoài hạt nhân và là phần cấp cao. Các giao thức giao tiếp giữa VMM và mapper cũng được xác định, do đó người dùng có thể cung cấp mappers riêng của mình.

Phần thứ ba của hạt nhân là điều hành thời gian thực (real-time executive). Nó có trách nhiệm quản lý các tiến trình, đề tài, và lập kế hoạch. Nó cũng sắp xếp để đồng bộ hóa giữa các thread cho việc loại trừ lẫn nhau và mục đích khác.

Cuối cùng, chúng ta có quản lý truyền thông liên tiến trình (interprocess communication manager), xử lý UIs, cổng, và việc gửi thông điệp trong một cách minh bạch. Nó sử dụng dịch vụ của các hoạt động thời gian thực và quản lý bộ nhớ ảo để làm công việc của mình. Bốn phần của hạt nhân được xây dựng thành các mô-đun, vì thế thay đổi phần này thì không ảnh hưởng đến các phần khác.

(Hết Phần 2)

Leave a Reply